@wcardinal/wcardinal-ui 0.410.0 → 0.411.0

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.
@@ -19,6 +19,7 @@ var UtilGestureEasing = /** @class */ (function () {
19
19
  this._dt = 0;
20
20
  this._dtw = 0;
21
21
  this._t = 0;
22
+ this._duration = 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1);
22
23
  this._animation = new DAnimationBase({
23
24
  onTime: function (t) {
24
25
  _this.onEase(t);
@@ -27,7 +28,7 @@ var UtilGestureEasing = /** @class */ (function () {
27
28
  _this.onEaseEnd();
28
29
  },
29
30
  timing: DAnimationTimings.LINEAR,
30
- duration: 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1)
31
+ duration: this._duration
31
32
  });
32
33
  this._onMove = onMove;
33
34
  this._onEnd = onEnd;
@@ -108,6 +109,11 @@ var UtilGestureEasing = /** @class */ (function () {
108
109
  }
109
110
  };
110
111
  UtilGestureEasing.prototype.onEnd = function (ldt) {
112
+ var d0 = this._duration;
113
+ var d = d0 - ldt;
114
+ if (d <= 0) {
115
+ return this.onEaseEnd();
116
+ }
111
117
  this.updateHistoriesSorted(ldt);
112
118
  var sorted = this._historiesSorted;
113
119
  var sortedLength = sorted.length;
@@ -132,22 +138,27 @@ var UtilGestureEasing = /** @class */ (function () {
132
138
  dx *= w;
133
139
  dy *= w;
134
140
  ds *= w;
135
- dt *= w;
141
+ dt *= w * (d0 / d); // Effectively, this lowers the velocity (dx, dy, ds) by d / d0.
136
142
  this._dx = dx;
137
143
  this._dy = dy;
138
144
  this._ds = ds;
139
145
  this._dt = dt;
140
146
  // Start animation
141
147
  var animation = this._animation;
142
- var d = animation.duration;
143
- this._t = -ldt / d;
148
+ animation.duration = d;
149
+ this._t = 0;
144
150
  this._dtw = d / dt;
145
151
  animation.start();
146
152
  };
147
153
  UtilGestureEasing.prototype.onEase = function (t) {
148
154
  var ot = this._t;
149
155
  this._t = t;
150
- // Note: Integral of (1-x) is x (1 - 0.5 x) + c.
156
+ // Note: Integral_{x=ot...t} (1-x) dx
157
+ // = [x (1 - 0.5 x)]_{x=ot...t}
158
+ // = t (1 - 0.5 t) - ot (1 - 0.5 ot)
159
+ // = t - ot - 0.5 t t + 0.5 ot ot
160
+ // = (t - ot) - 0.5 (t + ot) (t - ot)
161
+ // = (1 - 0.5 (t + ot)) * (t - ot)
151
162
  var w = (1 - 0.5 * (t + ot)) * (t - ot) * this._dtw;
152
163
  this._onMove(this._dx * w, this._dy * w, 1 + (this._ds - 1) * w, t);
153
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"util-gesture-easing.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-easing.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DAnimation } from \"../d-animation\";\nimport { DAnimationBase } from \"../d-animation-base\";\nimport { DAnimationTimings } from \"../d-animation-timings\";\nimport { UtilGestureEasingHistory } from \"./util-gesture-easing-history\";\n\nexport type UtilGestureEasingOnMove = (dx: number, dy: number, ds: number, time: number) => void;\nexport type UtilGestureEasingOnEnd = () => void;\n\nexport interface UtilGestureEasingOptions {\n\tduration?: number;\n}\n\nexport class UtilGestureEasing {\n\tprotected static HISTORY_CAPACITY = 5;\n\tprotected _histories: UtilGestureEasingHistory[];\n\tprotected _historiesSorted: UtilGestureEasingHistory[];\n\tprotected _historyBegin: number;\n\tprotected _historyEnd: number;\n\tprotected _animation: DAnimation;\n\tprotected _dx: number;\n\tprotected _dy: number;\n\tprotected _ds: number;\n\tprotected _dt: number;\n\tprotected _dtw: number;\n\tprotected _t: number;\n\tprotected _onMove: UtilGestureEasingOnMove;\n\tprotected _onEnd: UtilGestureEasingOnEnd;\n\n\tconstructor(\n\t\tonMove: UtilGestureEasingOnMove,\n\t\tonEnd: UtilGestureEasingOnEnd,\n\t\toptions?: UtilGestureEasingOptions\n\t) {\n\t\tthis._histories = [];\n\t\tthis._historiesSorted = [];\n\t\tthis._historyBegin = 0;\n\t\tthis._historyEnd = -1;\n\t\tthis._dx = 0;\n\t\tthis._dy = 0;\n\t\tthis._ds = 0;\n\t\tthis._dt = 0;\n\t\tthis._dtw = 0;\n\t\tthis._t = 0;\n\t\tthis._animation = new DAnimationBase({\n\t\t\tonTime: (t: number): void => {\n\t\t\t\tthis.onEase(t);\n\t\t\t},\n\t\t\tonEnd: (): void => {\n\t\t\t\tthis.onEaseEnd();\n\t\t\t},\n\t\t\ttiming: DAnimationTimings.LINEAR,\n\t\t\tduration: 333 * (options?.duration ?? 1)\n\t\t});\n\t\tthis._onMove = onMove;\n\t\tthis._onEnd = onEnd;\n\t}\n\n\tonStart(): void {\n\t\t// History\n\t\tconst histories = this._histories;\n\t\tfor (let i = histories.length, imax = UtilGestureEasing.HISTORY_CAPACITY; i < imax; ++i) {\n\t\t\thistories.push(new UtilGestureEasingHistory(0, 0, 1, 0));\n\t\t}\n\t\tthis._historyBegin = 0;\n\t\tthis._historyEnd = -1;\n\n\t\t// Stop animation\n\t\tthis._animation.stop();\n\t}\n\n\tonMove(dx: number, dy: number, ds: number, dt: number): void {\n\t\tconst capacity = UtilGestureEasing.HISTORY_CAPACITY;\n\n\t\tconst oldHistoryEnd = this._historyEnd;\n\t\tconst newHistoryEnd = (oldHistoryEnd + 1) % capacity;\n\t\tthis._historyEnd = newHistoryEnd;\n\n\t\tconst oldHistoryBegin = this._historyBegin;\n\t\tif (\n\t\t\tnewHistoryEnd < oldHistoryEnd ||\n\t\t\t(0 <= oldHistoryEnd && oldHistoryEnd < oldHistoryBegin)\n\t\t) {\n\t\t\tthis._historyBegin = (oldHistoryBegin + 1) % capacity;\n\t\t}\n\n\t\tthis._histories[newHistoryEnd].set(dx, dy, ds, dt);\n\t}\n\n\tprotected updateHistoriesSorted(dt: number): number {\n\t\tconst unsorted = this._histories;\n\t\tconst sorted = this._historiesSorted;\n\t\tconst begin = this._historyBegin;\n\t\tconst end = this._historyEnd;\n\t\tconst length = unsorted.length;\n\t\tconst threshold = 160;\n\t\tif (end < 0) {\n\t\t\tsorted.length = 0;\n\t\t\treturn dt;\n\t\t} else if (end < begin) {\n\t\t\tlet total = dt;\n\t\t\tsorted.length = 0;\n\t\t\tfor (let i = end; 0 <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let i = length - 1; begin <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn total;\n\t\t} else {\n\t\t\tlet total = dt;\n\t\t\tsorted.length = 0;\n\t\t\tfor (let i = end; begin <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn total;\n\t\t}\n\t}\n\n\tonEnd(ldt: number): void {\n\t\tthis.updateHistoriesSorted(ldt);\n\t\tconst sorted = this._historiesSorted;\n\t\tconst sortedLength = sorted.length;\n\t\tif (sortedLength <= 0) {\n\t\t\treturn this.onEaseEnd();\n\t\t}\n\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\t\tlet ds = 0;\n\t\tlet dt = 0;\n\t\tfor (let i = 0; i < sortedLength; ++i) {\n\t\t\tconst history = sorted[i];\n\t\t\tdx += history.dx;\n\t\t\tdy += history.dy;\n\t\t\tds += history.ds;\n\t\t\tdt += history.dt;\n\t\t}\n\t\tif (dt <= 0) {\n\t\t\treturn this.onEaseEnd();\n\t\t}\n\n\t\tconst w = 1 / sortedLength;\n\t\tdx *= w;\n\t\tdy *= w;\n\t\tds *= w;\n\t\tdt *= w;\n\t\tthis._dx = dx;\n\t\tthis._dy = dy;\n\t\tthis._ds = ds;\n\t\tthis._dt = dt;\n\n\t\t// Start animation\n\t\tconst animation = this._animation;\n\t\tconst d = animation.duration;\n\t\tthis._t = -ldt / d;\n\t\tthis._dtw = d / dt;\n\t\tanimation.start();\n\t}\n\n\tprotected onEase(t: number): void {\n\t\tconst ot = this._t;\n\t\tthis._t = t;\n\t\t// Note: Integral of (1-x) is x (1 - 0.5 x) + c.\n\t\tconst w = (1 - 0.5 * (t + ot)) * (t - ot) * this._dtw;\n\t\tthis._onMove(this._dx * w, this._dy * w, 1 + (this._ds - 1) * w, t);\n\t}\n\n\tprotected onEaseEnd(): void {\n\t\tthis._onEnd();\n\t}\n\n\tstop(): void {\n\t\tthis._animation.stop();\n\t}\n}\n"]}
1
+ {"version":3,"file":"util-gesture-easing.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-easing.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DAnimation } from \"../d-animation\";\nimport { DAnimationBase } from \"../d-animation-base\";\nimport { DAnimationTimings } from \"../d-animation-timings\";\nimport { UtilGestureEasingHistory } from \"./util-gesture-easing-history\";\n\nexport type UtilGestureEasingOnMove = (dx: number, dy: number, ds: number, time: number) => void;\nexport type UtilGestureEasingOnEnd = () => void;\n\nexport interface UtilGestureEasingOptions {\n\tduration?: number;\n}\n\nexport class UtilGestureEasing {\n\tprotected static HISTORY_CAPACITY = 5;\n\tprotected _histories: UtilGestureEasingHistory[];\n\tprotected _historiesSorted: UtilGestureEasingHistory[];\n\tprotected _historyBegin: number;\n\tprotected _historyEnd: number;\n\tprotected _animation: DAnimation;\n\tprotected _dx: number;\n\tprotected _dy: number;\n\tprotected _ds: number;\n\tprotected _dt: number;\n\tprotected _dtw: number;\n\tprotected _t: number;\n\tprotected _onMove: UtilGestureEasingOnMove;\n\tprotected _onEnd: UtilGestureEasingOnEnd;\n\tprotected _duration: number;\n\n\tconstructor(\n\t\tonMove: UtilGestureEasingOnMove,\n\t\tonEnd: UtilGestureEasingOnEnd,\n\t\toptions?: UtilGestureEasingOptions\n\t) {\n\t\tthis._histories = [];\n\t\tthis._historiesSorted = [];\n\t\tthis._historyBegin = 0;\n\t\tthis._historyEnd = -1;\n\t\tthis._dx = 0;\n\t\tthis._dy = 0;\n\t\tthis._ds = 0;\n\t\tthis._dt = 0;\n\t\tthis._dtw = 0;\n\t\tthis._t = 0;\n\t\tthis._duration = 333 * (options?.duration ?? 1);\n\t\tthis._animation = new DAnimationBase({\n\t\t\tonTime: (t: number): void => {\n\t\t\t\tthis.onEase(t);\n\t\t\t},\n\t\t\tonEnd: (): void => {\n\t\t\t\tthis.onEaseEnd();\n\t\t\t},\n\t\t\ttiming: DAnimationTimings.LINEAR,\n\t\t\tduration: this._duration\n\t\t});\n\t\tthis._onMove = onMove;\n\t\tthis._onEnd = onEnd;\n\t}\n\n\tonStart(): void {\n\t\t// History\n\t\tconst histories = this._histories;\n\t\tfor (let i = histories.length, imax = UtilGestureEasing.HISTORY_CAPACITY; i < imax; ++i) {\n\t\t\thistories.push(new UtilGestureEasingHistory(0, 0, 1, 0));\n\t\t}\n\t\tthis._historyBegin = 0;\n\t\tthis._historyEnd = -1;\n\n\t\t// Stop animation\n\t\tthis._animation.stop();\n\t}\n\n\tonMove(dx: number, dy: number, ds: number, dt: number): void {\n\t\tconst capacity = UtilGestureEasing.HISTORY_CAPACITY;\n\n\t\tconst oldHistoryEnd = this._historyEnd;\n\t\tconst newHistoryEnd = (oldHistoryEnd + 1) % capacity;\n\t\tthis._historyEnd = newHistoryEnd;\n\n\t\tconst oldHistoryBegin = this._historyBegin;\n\t\tif (\n\t\t\tnewHistoryEnd < oldHistoryEnd ||\n\t\t\t(0 <= oldHistoryEnd && oldHistoryEnd < oldHistoryBegin)\n\t\t) {\n\t\t\tthis._historyBegin = (oldHistoryBegin + 1) % capacity;\n\t\t}\n\n\t\tthis._histories[newHistoryEnd].set(dx, dy, ds, dt);\n\t}\n\n\tprotected updateHistoriesSorted(dt: number): number {\n\t\tconst unsorted = this._histories;\n\t\tconst sorted = this._historiesSorted;\n\t\tconst begin = this._historyBegin;\n\t\tconst end = this._historyEnd;\n\t\tconst length = unsorted.length;\n\t\tconst threshold = 160;\n\t\tif (end < 0) {\n\t\t\tsorted.length = 0;\n\t\t\treturn dt;\n\t\t} else if (end < begin) {\n\t\t\tlet total = dt;\n\t\t\tsorted.length = 0;\n\t\t\tfor (let i = end; 0 <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let i = length - 1; begin <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn total;\n\t\t} else {\n\t\t\tlet total = dt;\n\t\t\tsorted.length = 0;\n\t\t\tfor (let i = end; begin <= i; --i) {\n\t\t\t\tconst history = unsorted[i];\n\t\t\t\tif (total + history.dt < threshold) {\n\t\t\t\t\ttotal += history.dt;\n\t\t\t\t\tsorted.push(history);\n\t\t\t\t} else {\n\t\t\t\t\treturn total;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn total;\n\t\t}\n\t}\n\n\tonEnd(ldt: number): void {\n\t\tconst d0 = this._duration;\n\t\tconst d = d0 - ldt;\n\t\tif (d <= 0) {\n\t\t\treturn this.onEaseEnd();\n\t\t}\n\n\t\tthis.updateHistoriesSorted(ldt);\n\t\tconst sorted = this._historiesSorted;\n\t\tconst sortedLength = sorted.length;\n\t\tif (sortedLength <= 0) {\n\t\t\treturn this.onEaseEnd();\n\t\t}\n\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\t\tlet ds = 0;\n\t\tlet dt = 0;\n\t\tfor (let i = 0; i < sortedLength; ++i) {\n\t\t\tconst history = sorted[i];\n\t\t\tdx += history.dx;\n\t\t\tdy += history.dy;\n\t\t\tds += history.ds;\n\t\t\tdt += history.dt;\n\t\t}\n\t\tif (dt <= 0) {\n\t\t\treturn this.onEaseEnd();\n\t\t}\n\n\t\tconst w = 1 / sortedLength;\n\t\tdx *= w;\n\t\tdy *= w;\n\t\tds *= w;\n\t\tdt *= w * (d0 / d); // Effectively, this lowers the velocity (dx, dy, ds) by d / d0.\n\t\tthis._dx = dx;\n\t\tthis._dy = dy;\n\t\tthis._ds = ds;\n\t\tthis._dt = dt;\n\n\t\t// Start animation\n\t\tconst animation = this._animation;\n\t\tanimation.duration = d;\n\t\tthis._t = 0;\n\t\tthis._dtw = d / dt;\n\t\tanimation.start();\n\t}\n\n\tprotected onEase(t: number): void {\n\t\tconst ot = this._t;\n\t\tthis._t = t;\n\t\t// Note: Integral_{x=ot...t} (1-x) dx\n\t\t// = [x (1 - 0.5 x)]_{x=ot...t}\n\t\t// = t (1 - 0.5 t) - ot (1 - 0.5 ot)\n\t\t// = t - ot - 0.5 t t + 0.5 ot ot\n\t\t// = (t - ot) - 0.5 (t + ot) (t - ot)\n\t\t// = (1 - 0.5 (t + ot)) * (t - ot)\n\t\tconst w = (1 - 0.5 * (t + ot)) * (t - ot) * this._dtw;\n\t\tthis._onMove(this._dx * w, this._dy * w, 1 + (this._ds - 1) * w, t);\n\t}\n\n\tprotected onEaseEnd(): void {\n\t\tthis._onEnd();\n\t}\n\n\tstop(): void {\n\t\tthis._animation.stop();\n\t}\n}\n"]}
@@ -195,6 +195,7 @@ var UtilGesture = /** @class */ (function () {
195
195
  if (target == null || !target.state.isGesturing) {
196
196
  return;
197
197
  }
198
+ var oldTime = data.time;
198
199
  if (!data.end(e)) {
199
200
  return;
200
201
  }
@@ -226,7 +227,7 @@ var UtilGesture = /** @class */ (function () {
226
227
  }
227
228
  var easing = data.easing;
228
229
  if (easing) {
229
- easing.onEnd(e.data.originalEvent.timeStamp - data.time);
230
+ easing.onEnd(data.time - oldTime);
230
231
  }
231
232
  else {
232
233
  this.deleteData(data);
@@ -1 +1 @@
1
- {"version":3,"file":"util-gesture.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, utils } from \"pixi.js\";\nimport { DApplicationTarget } from \"../d-application-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { UtilGestureModifier } from \"./util-gesture-modifier\";\nimport { UtilGestureModifiers } from \"./util-gesture-modifiers\";\nimport { UtilGestureData } from \"./util-gesture-data\";\nimport { UtilGestureEasing, UtilGestureEasingOptions } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\n\nexport interface UtilGestureTarget extends DApplicationTarget {\n\tstate: DBaseStateSet;\n}\nexport type UtilGestureOnMove<TARGET> = (\n\ttarget: TARGET,\n\tdx: number,\n\tdy: number,\n\tx: number,\n\ty: number,\n\tds: number\n) => void;\nexport type UtilGestureOnStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnStop<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureChecker<TARGET> = (\n\te: InteractionEvent,\n\tmodifier: UtilGestureModifier,\n\ttarget: TARGET\n) => boolean;\n\nexport interface UtilGestureCheckerOptions<TARGET> {\n\tstart?: UtilGestureChecker<TARGET>;\n\tmove?: UtilGestureChecker<TARGET>;\n}\n\nexport interface UtilGestureOnEasingOptions<TARGET> {\n\tstart?: UtilGestureOnEasingStart<TARGET>;\n\tend?: UtilGestureOnEasingEnd<TARGET>;\n}\n\nexport interface UtilGestureOnOptions<TARGET> {\n\tstart?: UtilGestureOnStart<TARGET>;\n\tmove?: UtilGestureOnMove<TARGET>;\n\tend?: UtilGestureOnEnd<TARGET>;\n\tstop?: UtilGestureOnStop<TARGET>;\n\teasing?: UtilGestureOnEasingOptions<TARGET>;\n}\n\nexport interface UtilGestureOptions<TARGET> {\n\t/**\n\t * True to restrict to touch gestures only.\n\t */\n\ttouch?: boolean;\n\n\t/**\n\t * Expected mouse modifiers\n\t */\n\tmodifier?: UtilGestureModifier;\n\n\t/**\n\t * Checker options\n\t */\n\tchecker?: UtilGestureCheckerOptions<TARGET>;\n\n\t/**\n\t * Easing options\n\t */\n\teasing?: boolean | UtilGestureEasingOptions;\n\n\t/** Binds the pointerdown event of the given target. */\n\tbind?: TARGET & utils.EventEmitter;\n\n\t/** Event options */\n\ton?: UtilGestureOnOptions<TARGET>;\n}\n\nexport class UtilGesture<TARGET extends UtilGestureTarget> {\n\tprotected _onStart?: UtilGestureOnStart<TARGET>;\n\tprotected _onMove?: UtilGestureOnMove<TARGET>;\n\tprotected _onEnd?: UtilGestureOnEnd<TARGET>;\n\tprotected _onStop?: UtilGestureOnStop<TARGET>;\n\tprotected _onEasingStart?: UtilGestureOnEasingStart<TARGET>;\n\tprotected _onEasingEnd?: UtilGestureOnEasingEnd<TARGET>;\n\tprotected _modifier: UtilGestureModifier;\n\tprotected _checkerStart: UtilGestureChecker<TARGET>;\n\tprotected _checkerMove: UtilGestureChecker<TARGET>;\n\tprotected _easing?: boolean | UtilGestureEasingOptions;\n\tprotected _touch: boolean;\n\n\tprotected _unused: Array<UtilGestureData<TARGET>>;\n\tprotected _used: Map<TARGET, UtilGestureData<TARGET>>;\n\n\tconstructor(options: UtilGestureOptions<TARGET>) {\n\t\tconst on = options.on;\n\t\tif (on) {\n\t\t\tthis._onStart = on.start;\n\t\t\tthis._onMove = on.move;\n\t\t\tthis._onEnd = on.end;\n\t\t\tthis._onStop = on.stop;\n\t\t\tconst easing = on.easing;\n\t\t\tif (easing != null) {\n\t\t\t\tthis._onEasingStart = easing.start;\n\t\t\t\tthis._onEasingEnd = easing.end;\n\t\t\t}\n\t\t}\n\t\tthis._modifier = options?.modifier ?? UtilGestureModifier.NONE;\n\t\tconst checker = options.checker;\n\t\tconst defaultChecker = UtilGestureModifiers.match;\n\t\tthis._checkerStart = checker?.start ?? defaultChecker;\n\t\tthis._checkerMove = checker?.move ?? defaultChecker;\n\t\tthis._easing = options.easing;\n\t\tthis._touch = !!options.touch;\n\n\t\tthis._unused = [];\n\t\tthis._used = new Map<TARGET, UtilGestureData<TARGET>>();\n\n\t\tconst bind = options.bind;\n\t\tif (bind != null) {\n\t\t\tthis.bind(bind);\n\t\t}\n\t}\n\n\tprotected newData(target: TARGET): UtilGestureData<TARGET> {\n\t\tconst used = this._used;\n\t\tconst result = used.get(target);\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tconst poped = this._unused.pop();\n\t\tif (poped != null) {\n\t\t\tused.set(target, poped);\n\t\t\treturn poped;\n\t\t}\n\t\tconst created = new UtilGestureData<TARGET>();\n\t\tcreated.easing = this.newEasing(created);\n\t\tcreated.onMove = this.newOnMove(created);\n\t\tcreated.onEnd = this.newOnEnd(created);\n\t\tused.set(target, created);\n\t\treturn created;\n\t}\n\n\tprotected newEasing(data: UtilGestureData<TARGET>): UtilGestureEasing | undefined {\n\t\tconst easing = this._easing;\n\t\tif (easing == null || easing !== false) {\n\t\t\tconst onEasingMoveBound = (dx: number, dy: number, ds: number, time: number): void => {\n\t\t\t\tthis.onEasingMove(dx, dy, ds, time, data);\n\t\t\t};\n\t\t\tconst onEasingEndBound = (): void => {\n\t\t\t\tthis.onEasingEnd(data);\n\t\t\t};\n\t\t\treturn new UtilGestureEasing(\n\t\t\t\tonEasingMoveBound,\n\t\t\t\tonEasingEndBound,\n\t\t\t\tthis.toEasingOptions(easing)\n\t\t\t);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected toEasingOptions(\n\t\toptions?: true | UtilGestureEasingOptions\n\t): UtilGestureEasingOptions | undefined {\n\t\treturn options == null || options === true ? undefined : options;\n\t}\n\n\tprotected deleteData(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target) {\n\t\t\tif (this._used.delete(target)) {\n\t\t\t\tdata.target = undefined;\n\t\t\t\tdata.pointers.clear();\n\t\t\t\tthis._unused.push(data);\n\t\t\t}\n\t\t}\n\t}\n\n\tbind(target: TARGET & utils.EventEmitter): this {\n\t\ttarget.on(UtilPointerEvent.down, (e: InteractionEvent): void => {\n\t\t\tthis.onDown(target, e);\n\t\t});\n\t\treturn this;\n\t}\n\n\tprotected isTouch(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\treturn true;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\treturn oe.pointerType !== \"mouse\";\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tonDown(target: TARGET, e: InteractionEvent): void {\n\t\tif (this._touch && !this.isTouch(e)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._checkerStart(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\tif (target.state.isGesturing) {\n\t\t\tthis._used.get(target)?.start(e);\n\t\t} else {\n\t\t\t// User-defined handler\n\t\t\tconst onStart = this._onStart;\n\t\t\tif (onStart != null) {\n\t\t\t\tonStart(target);\n\t\t\t}\n\n\t\t\tconst data = this.newData(target);\n\t\t\tdata.target = target;\n\t\t\ttarget.state.isGesturing = true;\n\n\t\t\t// Interaction manager\n\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\tdata.interactionManager = interactionManager;\n\n\t\t\t// Update the center\n\t\t\tdata.start(e);\n\n\t\t\t// Easing util\n\t\t\tconst easing = data.easing;\n\t\t\tif (easing) {\n\t\t\t\teasing.onStart();\n\t\t\t}\n\n\t\t\t// Event handler\n\t\t\tdata.bind(e);\n\t\t}\n\t}\n\n\tprotected newOnMove(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onMove(e, data);\n\t\t};\n\t}\n\n\tprotected newOnEnd(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onEnd(e, data);\n\t\t};\n\t}\n\n\tprotected onMove(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.isUpdatable(e) || !this._checkerMove(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the center\n\t\tconst center = data.center;\n\t\tconst oldCenterX = center.x;\n\t\tconst oldCenterY = center.y;\n\t\tconst oldScale = data.scale;\n\t\tconst oldTime = data.time;\n\t\tdata.update(e);\n\t\tconst newCenterX = center.x;\n\t\tconst newCenterY = center.y;\n\t\tconst newScale = data.scale;\n\t\tconst newTime = data.time;\n\n\t\t// Calculate the position\n\t\tconst dx = newCenterX - oldCenterX;\n\t\tconst dy = newCenterY - oldCenterY;\n\t\tconst dt = newTime - oldTime;\n\t\tconst epsilon = 0.00001;\n\t\tconst ds = epsilon < oldScale && epsilon < newScale ? newScale / oldScale : 1;\n\n\t\t// Easing\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onMove(dx, dy, ds, dt);\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onMove = this._onMove;\n\t\tif (onMove != null) {\n\t\t\tif (dx !== 0 || dy !== 0 || ds !== 1) {\n\t\t\t\tonMove(target, dx, dy, newCenterX, newCenterY, ds);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEnd(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.end(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// State\n\t\ttarget.state.isGesturing = false;\n\n\t\t// Remove event handlers\n\t\tconst interactionManager = data.interactionManager;\n\t\tdata.interactionManager = undefined;\n\t\tif (interactionManager) {\n\t\t\tconst onMoveBound = data.onMove;\n\t\t\tif (onMoveBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMoveBound);\n\t\t\t}\n\t\t\tconst onEndBound = data.onEnd;\n\t\t\tif (onEndBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEndBound);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEndBound);\n\t\t\t}\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onEnd = this._onEnd;\n\t\tif (onEnd != null) {\n\t\t\tonEnd(target);\n\t\t}\n\n\t\t// Start the Easing\n\t\tconst onEasingStart = this._onEasingStart;\n\t\tif (onEasingStart) {\n\t\t\tonEasingStart(data.target!);\n\t\t}\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onEnd(e.data.originalEvent.timeStamp - data.time);\n\t\t} else {\n\t\t\tthis.deleteData(data);\n\t\t\tconst onEasingEnd = this._onEasingEnd;\n\t\t\tif (onEasingEnd) {\n\t\t\t\tonEasingEnd(data.target!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEasingMove(\n\t\tdx: number,\n\t\tdy: number,\n\t\tds: number,\n\t\ttime: number,\n\t\tdata: UtilGestureData<TARGET>\n\t): void {\n\t\tconst target = data.target;\n\t\tif (target == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst onMove = this._onMove;\n\t\tif (onMove == null) {\n\t\t\treturn;\n\t\t}\n\t\tif (dx === 0 && dy === 0 && ds === 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst center = data.center;\n\t\tconst x = center.x + dx;\n\t\tconst y = center.y + dy;\n\t\tcenter.set(x, y);\n\t\tonMove(data.target!, dx, dy, x, y, ds);\n\t}\n\n\tprotected onEasingEnd(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tthis.deleteData(data);\n\t\tconst onEasingEnd = this._onEasingEnd;\n\t\tif (onEasingEnd && target != null) {\n\t\t\tonEasingEnd(target);\n\t\t}\n\t}\n\n\tstop(target: TARGET): void {\n\t\tconst data = this._used.get(target);\n\t\tif (data == null) {\n\t\t\treturn;\n\t\t}\n\t\tdata.easing?.stop();\n\t\tthis.deleteData(data);\n\t\tconst onStop = this._onStop;\n\t\tif (onStop) {\n\t\t\tonStop(target);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"util-gesture.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, utils } from \"pixi.js\";\nimport { DApplicationTarget } from \"../d-application-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { UtilGestureModifier } from \"./util-gesture-modifier\";\nimport { UtilGestureModifiers } from \"./util-gesture-modifiers\";\nimport { UtilGestureData } from \"./util-gesture-data\";\nimport { UtilGestureEasing, UtilGestureEasingOptions } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\n\nexport interface UtilGestureTarget extends DApplicationTarget {\n\tstate: DBaseStateSet;\n}\nexport type UtilGestureOnMove<TARGET> = (\n\ttarget: TARGET,\n\tdx: number,\n\tdy: number,\n\tx: number,\n\ty: number,\n\tds: number\n) => void;\nexport type UtilGestureOnStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnStop<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingStart<TARGET> = (target: TARGET) => void;\nexport type UtilGestureOnEasingEnd<TARGET> = (target: TARGET) => void;\nexport type UtilGestureChecker<TARGET> = (\n\te: InteractionEvent,\n\tmodifier: UtilGestureModifier,\n\ttarget: TARGET\n) => boolean;\n\nexport interface UtilGestureCheckerOptions<TARGET> {\n\tstart?: UtilGestureChecker<TARGET>;\n\tmove?: UtilGestureChecker<TARGET>;\n}\n\nexport interface UtilGestureOnEasingOptions<TARGET> {\n\tstart?: UtilGestureOnEasingStart<TARGET>;\n\tend?: UtilGestureOnEasingEnd<TARGET>;\n}\n\nexport interface UtilGestureOnOptions<TARGET> {\n\tstart?: UtilGestureOnStart<TARGET>;\n\tmove?: UtilGestureOnMove<TARGET>;\n\tend?: UtilGestureOnEnd<TARGET>;\n\tstop?: UtilGestureOnStop<TARGET>;\n\teasing?: UtilGestureOnEasingOptions<TARGET>;\n}\n\nexport interface UtilGestureOptions<TARGET> {\n\t/**\n\t * True to restrict to touch gestures only.\n\t */\n\ttouch?: boolean;\n\n\t/**\n\t * Expected mouse modifiers\n\t */\n\tmodifier?: UtilGestureModifier;\n\n\t/**\n\t * Checker options\n\t */\n\tchecker?: UtilGestureCheckerOptions<TARGET>;\n\n\t/**\n\t * Easing options\n\t */\n\teasing?: boolean | UtilGestureEasingOptions;\n\n\t/** Binds the pointerdown event of the given target. */\n\tbind?: TARGET & utils.EventEmitter;\n\n\t/** Event options */\n\ton?: UtilGestureOnOptions<TARGET>;\n}\n\nexport class UtilGesture<TARGET extends UtilGestureTarget> {\n\tprotected _onStart?: UtilGestureOnStart<TARGET>;\n\tprotected _onMove?: UtilGestureOnMove<TARGET>;\n\tprotected _onEnd?: UtilGestureOnEnd<TARGET>;\n\tprotected _onStop?: UtilGestureOnStop<TARGET>;\n\tprotected _onEasingStart?: UtilGestureOnEasingStart<TARGET>;\n\tprotected _onEasingEnd?: UtilGestureOnEasingEnd<TARGET>;\n\tprotected _modifier: UtilGestureModifier;\n\tprotected _checkerStart: UtilGestureChecker<TARGET>;\n\tprotected _checkerMove: UtilGestureChecker<TARGET>;\n\tprotected _easing?: boolean | UtilGestureEasingOptions;\n\tprotected _touch: boolean;\n\n\tprotected _unused: Array<UtilGestureData<TARGET>>;\n\tprotected _used: Map<TARGET, UtilGestureData<TARGET>>;\n\n\tconstructor(options: UtilGestureOptions<TARGET>) {\n\t\tconst on = options.on;\n\t\tif (on) {\n\t\t\tthis._onStart = on.start;\n\t\t\tthis._onMove = on.move;\n\t\t\tthis._onEnd = on.end;\n\t\t\tthis._onStop = on.stop;\n\t\t\tconst easing = on.easing;\n\t\t\tif (easing != null) {\n\t\t\t\tthis._onEasingStart = easing.start;\n\t\t\t\tthis._onEasingEnd = easing.end;\n\t\t\t}\n\t\t}\n\t\tthis._modifier = options?.modifier ?? UtilGestureModifier.NONE;\n\t\tconst checker = options.checker;\n\t\tconst defaultChecker = UtilGestureModifiers.match;\n\t\tthis._checkerStart = checker?.start ?? defaultChecker;\n\t\tthis._checkerMove = checker?.move ?? defaultChecker;\n\t\tthis._easing = options.easing;\n\t\tthis._touch = !!options.touch;\n\n\t\tthis._unused = [];\n\t\tthis._used = new Map<TARGET, UtilGestureData<TARGET>>();\n\n\t\tconst bind = options.bind;\n\t\tif (bind != null) {\n\t\t\tthis.bind(bind);\n\t\t}\n\t}\n\n\tprotected newData(target: TARGET): UtilGestureData<TARGET> {\n\t\tconst used = this._used;\n\t\tconst result = used.get(target);\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tconst poped = this._unused.pop();\n\t\tif (poped != null) {\n\t\t\tused.set(target, poped);\n\t\t\treturn poped;\n\t\t}\n\t\tconst created = new UtilGestureData<TARGET>();\n\t\tcreated.easing = this.newEasing(created);\n\t\tcreated.onMove = this.newOnMove(created);\n\t\tcreated.onEnd = this.newOnEnd(created);\n\t\tused.set(target, created);\n\t\treturn created;\n\t}\n\n\tprotected newEasing(data: UtilGestureData<TARGET>): UtilGestureEasing | undefined {\n\t\tconst easing = this._easing;\n\t\tif (easing == null || easing !== false) {\n\t\t\tconst onEasingMoveBound = (dx: number, dy: number, ds: number, time: number): void => {\n\t\t\t\tthis.onEasingMove(dx, dy, ds, time, data);\n\t\t\t};\n\t\t\tconst onEasingEndBound = (): void => {\n\t\t\t\tthis.onEasingEnd(data);\n\t\t\t};\n\t\t\treturn new UtilGestureEasing(\n\t\t\t\tonEasingMoveBound,\n\t\t\t\tonEasingEndBound,\n\t\t\t\tthis.toEasingOptions(easing)\n\t\t\t);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected toEasingOptions(\n\t\toptions?: true | UtilGestureEasingOptions\n\t): UtilGestureEasingOptions | undefined {\n\t\treturn options == null || options === true ? undefined : options;\n\t}\n\n\tprotected deleteData(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target) {\n\t\t\tif (this._used.delete(target)) {\n\t\t\t\tdata.target = undefined;\n\t\t\t\tdata.pointers.clear();\n\t\t\t\tthis._unused.push(data);\n\t\t\t}\n\t\t}\n\t}\n\n\tbind(target: TARGET & utils.EventEmitter): this {\n\t\ttarget.on(UtilPointerEvent.down, (e: InteractionEvent): void => {\n\t\t\tthis.onDown(target, e);\n\t\t});\n\t\treturn this;\n\t}\n\n\tprotected isTouch(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\treturn true;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\treturn oe.pointerType !== \"mouse\";\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tonDown(target: TARGET, e: InteractionEvent): void {\n\t\tif (this._touch && !this.isTouch(e)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._checkerStart(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\tif (target.state.isGesturing) {\n\t\t\tthis._used.get(target)?.start(e);\n\t\t} else {\n\t\t\t// User-defined handler\n\t\t\tconst onStart = this._onStart;\n\t\t\tif (onStart != null) {\n\t\t\t\tonStart(target);\n\t\t\t}\n\n\t\t\tconst data = this.newData(target);\n\t\t\tdata.target = target;\n\t\t\ttarget.state.isGesturing = true;\n\n\t\t\t// Interaction manager\n\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\tdata.interactionManager = interactionManager;\n\n\t\t\t// Update the center\n\t\t\tdata.start(e);\n\n\t\t\t// Easing util\n\t\t\tconst easing = data.easing;\n\t\t\tif (easing) {\n\t\t\t\teasing.onStart();\n\t\t\t}\n\n\t\t\t// Event handler\n\t\t\tdata.bind(e);\n\t\t}\n\t}\n\n\tprotected newOnMove(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onMove(e, data);\n\t\t};\n\t}\n\n\tprotected newOnEnd(data: UtilGestureData<TARGET>): (e: InteractionEvent) => void {\n\t\treturn (e: InteractionEvent): void => {\n\t\t\tthis.onEnd(e, data);\n\t\t};\n\t}\n\n\tprotected onMove(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.isUpdatable(e) || !this._checkerMove(e, this._modifier, target)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update the center\n\t\tconst center = data.center;\n\t\tconst oldCenterX = center.x;\n\t\tconst oldCenterY = center.y;\n\t\tconst oldScale = data.scale;\n\t\tconst oldTime = data.time;\n\t\tdata.update(e);\n\t\tconst newCenterX = center.x;\n\t\tconst newCenterY = center.y;\n\t\tconst newScale = data.scale;\n\t\tconst newTime = data.time;\n\n\t\t// Calculate the position\n\t\tconst dx = newCenterX - oldCenterX;\n\t\tconst dy = newCenterY - oldCenterY;\n\t\tconst dt = newTime - oldTime;\n\t\tconst epsilon = 0.00001;\n\t\tconst ds = epsilon < oldScale && epsilon < newScale ? newScale / oldScale : 1;\n\n\t\t// Easing\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onMove(dx, dy, ds, dt);\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onMove = this._onMove;\n\t\tif (onMove != null) {\n\t\t\tif (dx !== 0 || dy !== 0 || ds !== 1) {\n\t\t\t\tonMove(target, dx, dy, newCenterX, newCenterY, ds);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEnd(e: InteractionEvent, data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tif (target == null || !target.state.isGesturing) {\n\t\t\treturn;\n\t\t}\n\t\tconst oldTime = data.time;\n\t\tif (!data.end(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// State\n\t\ttarget.state.isGesturing = false;\n\n\t\t// Remove event handlers\n\t\tconst interactionManager = data.interactionManager;\n\t\tdata.interactionManager = undefined;\n\t\tif (interactionManager) {\n\t\t\tconst onMoveBound = data.onMove;\n\t\t\tif (onMoveBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMoveBound);\n\t\t\t}\n\t\t\tconst onEndBound = data.onEnd;\n\t\t\tif (onEndBound) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEndBound);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEndBound);\n\t\t\t}\n\t\t}\n\n\t\t// Call the user-defined handler\n\t\tconst onEnd = this._onEnd;\n\t\tif (onEnd != null) {\n\t\t\tonEnd(target);\n\t\t}\n\n\t\t// Start the Easing\n\t\tconst onEasingStart = this._onEasingStart;\n\t\tif (onEasingStart) {\n\t\t\tonEasingStart(data.target!);\n\t\t}\n\t\tconst easing = data.easing;\n\t\tif (easing) {\n\t\t\teasing.onEnd(data.time - oldTime);\n\t\t} else {\n\t\t\tthis.deleteData(data);\n\t\t\tconst onEasingEnd = this._onEasingEnd;\n\t\t\tif (onEasingEnd) {\n\t\t\t\tonEasingEnd(data.target!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onEasingMove(\n\t\tdx: number,\n\t\tdy: number,\n\t\tds: number,\n\t\ttime: number,\n\t\tdata: UtilGestureData<TARGET>\n\t): void {\n\t\tconst target = data.target;\n\t\tif (target == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst onMove = this._onMove;\n\t\tif (onMove == null) {\n\t\t\treturn;\n\t\t}\n\t\tif (dx === 0 && dy === 0 && ds === 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst center = data.center;\n\t\tconst x = center.x + dx;\n\t\tconst y = center.y + dy;\n\t\tcenter.set(x, y);\n\t\tonMove(data.target!, dx, dy, x, y, ds);\n\t}\n\n\tprotected onEasingEnd(data: UtilGestureData<TARGET>): void {\n\t\tconst target = data.target;\n\t\tthis.deleteData(data);\n\t\tconst onEasingEnd = this._onEasingEnd;\n\t\tif (onEasingEnd && target != null) {\n\t\t\tonEasingEnd(target);\n\t\t}\n\t}\n\n\tstop(target: TARGET): void {\n\t\tconst data = this._used.get(target);\n\t\tif (data == null) {\n\t\t\treturn;\n\t\t}\n\t\tdata.easing?.stop();\n\t\tthis.deleteData(data);\n\t\tconst onStop = this._onStop;\n\t\tif (onStop) {\n\t\t\tonStop(target);\n\t\t}\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -14357,6 +14357,13 @@ var DBase = /** @class */ (function (_super) {
14357
14357
  get: function () {
14358
14358
  return this._weight;
14359
14359
  },
14360
+ set: function (weight) {
14361
+ if (this._weight !== weight) {
14362
+ this._weight = weight;
14363
+ this.toHierarchyDirty();
14364
+ DApplications.update(this);
14365
+ }
14366
+ },
14360
14367
  enumerable: false,
14361
14368
  configurable: true
14362
14369
  });
@@ -15809,6 +15816,7 @@ var UtilGestureEasing = /** @class */ (function () {
15809
15816
  this._dt = 0;
15810
15817
  this._dtw = 0;
15811
15818
  this._t = 0;
15819
+ this._duration = 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1);
15812
15820
  this._animation = new DAnimationBase({
15813
15821
  onTime: function (t) {
15814
15822
  _this.onEase(t);
@@ -15817,7 +15825,7 @@ var UtilGestureEasing = /** @class */ (function () {
15817
15825
  _this.onEaseEnd();
15818
15826
  },
15819
15827
  timing: DAnimationTimings.LINEAR,
15820
- duration: 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1)
15828
+ duration: this._duration
15821
15829
  });
15822
15830
  this._onMove = onMove;
15823
15831
  this._onEnd = onEnd;
@@ -15898,6 +15906,11 @@ var UtilGestureEasing = /** @class */ (function () {
15898
15906
  }
15899
15907
  };
15900
15908
  UtilGestureEasing.prototype.onEnd = function (ldt) {
15909
+ var d0 = this._duration;
15910
+ var d = d0 - ldt;
15911
+ if (d <= 0) {
15912
+ return this.onEaseEnd();
15913
+ }
15901
15914
  this.updateHistoriesSorted(ldt);
15902
15915
  var sorted = this._historiesSorted;
15903
15916
  var sortedLength = sorted.length;
@@ -15922,22 +15935,27 @@ var UtilGestureEasing = /** @class */ (function () {
15922
15935
  dx *= w;
15923
15936
  dy *= w;
15924
15937
  ds *= w;
15925
- dt *= w;
15938
+ dt *= w * (d0 / d); // Effectively, this lowers the velocity (dx, dy, ds) by d / d0.
15926
15939
  this._dx = dx;
15927
15940
  this._dy = dy;
15928
15941
  this._ds = ds;
15929
15942
  this._dt = dt;
15930
15943
  // Start animation
15931
15944
  var animation = this._animation;
15932
- var d = animation.duration;
15933
- this._t = -ldt / d;
15945
+ animation.duration = d;
15946
+ this._t = 0;
15934
15947
  this._dtw = d / dt;
15935
15948
  animation.start();
15936
15949
  };
15937
15950
  UtilGestureEasing.prototype.onEase = function (t) {
15938
15951
  var ot = this._t;
15939
15952
  this._t = t;
15940
- // Note: Integral of (1-x) is x (1 - 0.5 x) + c.
15953
+ // Note: Integral_{x=ot...t} (1-x) dx
15954
+ // = [x (1 - 0.5 x)]_{x=ot...t}
15955
+ // = t (1 - 0.5 t) - ot (1 - 0.5 ot)
15956
+ // = t - ot - 0.5 t t + 0.5 ot ot
15957
+ // = (t - ot) - 0.5 (t + ot) (t - ot)
15958
+ // = (1 - 0.5 (t + ot)) * (t - ot)
15941
15959
  var w = (1 - 0.5 * (t + ot)) * (t - ot) * this._dtw;
15942
15960
  this._onMove(this._dx * w, this._dy * w, 1 + (this._ds - 1) * w, t);
15943
15961
  };
@@ -16142,6 +16160,7 @@ var UtilGesture = /** @class */ (function () {
16142
16160
  if (target == null || !target.state.isGesturing) {
16143
16161
  return;
16144
16162
  }
16163
+ var oldTime = data.time;
16145
16164
  if (!data.end(e)) {
16146
16165
  return;
16147
16166
  }
@@ -16173,7 +16192,7 @@ var UtilGesture = /** @class */ (function () {
16173
16192
  }
16174
16193
  var easing = data.easing;
16175
16194
  if (easing) {
16176
- easing.onEnd(e.data.originalEvent.timeStamp - data.time);
16195
+ easing.onEnd(data.time - oldTime);
16177
16196
  }
16178
16197
  else {
16179
16198
  this.deleteData(data);
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.410.0
2
+ Winter Cardinal UI v0.411.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -14354,6 +14354,13 @@
14354
14354
  get: function () {
14355
14355
  return this._weight;
14356
14356
  },
14357
+ set: function (weight) {
14358
+ if (this._weight !== weight) {
14359
+ this._weight = weight;
14360
+ this.toHierarchyDirty();
14361
+ DApplications.update(this);
14362
+ }
14363
+ },
14357
14364
  enumerable: false,
14358
14365
  configurable: true
14359
14366
  });
@@ -15806,6 +15813,7 @@
15806
15813
  this._dt = 0;
15807
15814
  this._dtw = 0;
15808
15815
  this._t = 0;
15816
+ this._duration = 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1);
15809
15817
  this._animation = new DAnimationBase({
15810
15818
  onTime: function (t) {
15811
15819
  _this.onEase(t);
@@ -15814,7 +15822,7 @@
15814
15822
  _this.onEaseEnd();
15815
15823
  },
15816
15824
  timing: DAnimationTimings.LINEAR,
15817
- duration: 333 * ((_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1)
15825
+ duration: this._duration
15818
15826
  });
15819
15827
  this._onMove = onMove;
15820
15828
  this._onEnd = onEnd;
@@ -15895,6 +15903,11 @@
15895
15903
  }
15896
15904
  };
15897
15905
  UtilGestureEasing.prototype.onEnd = function (ldt) {
15906
+ var d0 = this._duration;
15907
+ var d = d0 - ldt;
15908
+ if (d <= 0) {
15909
+ return this.onEaseEnd();
15910
+ }
15898
15911
  this.updateHistoriesSorted(ldt);
15899
15912
  var sorted = this._historiesSorted;
15900
15913
  var sortedLength = sorted.length;
@@ -15919,22 +15932,27 @@
15919
15932
  dx *= w;
15920
15933
  dy *= w;
15921
15934
  ds *= w;
15922
- dt *= w;
15935
+ dt *= w * (d0 / d); // Effectively, this lowers the velocity (dx, dy, ds) by d / d0.
15923
15936
  this._dx = dx;
15924
15937
  this._dy = dy;
15925
15938
  this._ds = ds;
15926
15939
  this._dt = dt;
15927
15940
  // Start animation
15928
15941
  var animation = this._animation;
15929
- var d = animation.duration;
15930
- this._t = -ldt / d;
15942
+ animation.duration = d;
15943
+ this._t = 0;
15931
15944
  this._dtw = d / dt;
15932
15945
  animation.start();
15933
15946
  };
15934
15947
  UtilGestureEasing.prototype.onEase = function (t) {
15935
15948
  var ot = this._t;
15936
15949
  this._t = t;
15937
- // Note: Integral of (1-x) is x (1 - 0.5 x) + c.
15950
+ // Note: Integral_{x=ot...t} (1-x) dx
15951
+ // = [x (1 - 0.5 x)]_{x=ot...t}
15952
+ // = t (1 - 0.5 t) - ot (1 - 0.5 ot)
15953
+ // = t - ot - 0.5 t t + 0.5 ot ot
15954
+ // = (t - ot) - 0.5 (t + ot) (t - ot)
15955
+ // = (1 - 0.5 (t + ot)) * (t - ot)
15938
15956
  var w = (1 - 0.5 * (t + ot)) * (t - ot) * this._dtw;
15939
15957
  this._onMove(this._dx * w, this._dy * w, 1 + (this._ds - 1) * w, t);
15940
15958
  };
@@ -16139,6 +16157,7 @@
16139
16157
  if (target == null || !target.state.isGesturing) {
16140
16158
  return;
16141
16159
  }
16160
+ var oldTime = data.time;
16142
16161
  if (!data.end(e)) {
16143
16162
  return;
16144
16163
  }
@@ -16170,7 +16189,7 @@
16170
16189
  }
16171
16190
  var easing = data.easing;
16172
16191
  if (easing) {
16173
- easing.onEnd(e.data.originalEvent.timeStamp - data.time);
16192
+ easing.onEnd(data.time - oldTime);
16174
16193
  }
16175
16194
  else {
16176
16195
  this.deleteData(data);