@wcardinal/wcardinal-ui 0.427.0 → 0.428.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.
- package/dist/types/wcardinal/ui/d-chart-plot-area-twofold-sub-base.d.ts +4 -0
- package/dist/types/wcardinal/ui/d-chart-plot-area.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-chart-selection-container-impl.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-chart-selection-container.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-chart-selection-gridline-x.d.ts +2 -1
- package/dist/types/wcardinal/ui/d-chart-selection-gridline-y.d.ts +2 -1
- package/dist/types/wcardinal/ui/d-chart-selection-marker.d.ts +3 -2
- package/dist/types/wcardinal/ui/d-chart-selection-shape-base.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-chart-selection-shape.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-chart-selection-simple.d.ts +10 -2
- package/dist/types/wcardinal/ui/d-view-gesture-impl.d.ts +3 -2
- package/dist/types/wcardinal/ui/d-view-to-target.d.ts +5 -1
- package/dist/types/wcardinal/ui/d-view.d.ts +11 -2
- package/dist/types/wcardinal/ui/util/index.d.ts +2 -0
- package/dist/types/wcardinal/ui/util/util-gesture-data.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-gesture-tap.d.ts +26 -0
- package/dist/types/wcardinal/ui/util/util-gesture-target.d.ts +5 -0
- package/dist/types/wcardinal/ui/util/util-gesture.d.ts +8 -6
- package/dist/wcardinal/ui/d-chart-plot-area-twofold-sub-base.js +14 -0
- package/dist/wcardinal/ui/d-chart-plot-area-twofold-sub-base.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-plot-area.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-container-impl.js +3 -3
- package/dist/wcardinal/ui/d-chart-selection-container-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-container.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-gridline-x.js +1 -1
- package/dist/wcardinal/ui/d-chart-selection-gridline-x.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-gridline-y.js +1 -1
- package/dist/wcardinal/ui/d-chart-selection-gridline-y.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-marker.js +4 -3
- package/dist/wcardinal/ui/d-chart-selection-marker.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-shape-base.js +1 -1
- package/dist/wcardinal/ui/d-chart-selection-shape-base.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-shape.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-simple.js +49 -21
- package/dist/wcardinal/ui/d-chart-selection-simple.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-selection-sub-impl.js +3 -2
- package/dist/wcardinal/ui/d-chart-selection-sub-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram.js +11 -2
- package/dist/wcardinal/ui/d-diagram.js.map +1 -1
- package/dist/wcardinal/ui/d-view-gesture-impl.js +18 -3
- package/dist/wcardinal/ui/d-view-gesture-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-view-to-target.js.map +1 -1
- package/dist/wcardinal/ui/d-view.js.map +1 -1
- package/dist/wcardinal/ui/util/index.js +2 -0
- package/dist/wcardinal/ui/util/index.js.map +1 -1
- package/dist/wcardinal/ui/util/util-gesture-data.js +1 -0
- package/dist/wcardinal/ui/util/util-gesture-data.js.map +1 -1
- package/dist/wcardinal/ui/util/util-gesture-tap.js +148 -0
- package/dist/wcardinal/ui/util/util-gesture-tap.js.map +1 -0
- package/dist/wcardinal/ui/util/util-gesture-target.js +2 -0
- package/dist/wcardinal/ui/util/util-gesture-target.js.map +1 -0
- package/dist/wcardinal/ui/util/util-gesture.js +26 -15
- package/dist/wcardinal/ui/util/util-gesture.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +274 -53
- package/dist/wcardinal-ui.js +274 -53
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-gesture-data.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAwC,KAAK,EAAE,MAAM,SAAS,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;IAWC;QACC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACf,CAAC;IAED,+BAAK,GAAL,UAAM,CAAmB;QACxB,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,WAAW,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qCAAW,GAAX,UAAY,CAAmB;QAC9B,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,WAAW,IAAI,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,gCAAM,GAAN,UAAO,CAAmB;QACzB,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,WAAW,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAAG,GAAH,UAAI,CAAmB;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,SAAS,IAAI,EAAE,EAAE;YACpB,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;SAChC;aAAM,IAAI,WAAW,IAAI,EAAE,EAAE;YAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,8BAAI,GAAJ,UAAK,CAAmB;QACvB,IAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,kBAAkB,EAAE;YACvB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,EAAE;gBACX,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aACrD;YACD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,EAAE;gBACV,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAClD,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACzD,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACtD;SACD;IACF,CAAC;IAED,gCAAM,GAAN;QACC,IAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,kBAAkB,EAAE;YACvB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,EAAE;gBACX,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aACtD;YACD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,EAAE;gBACV,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACnD,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC1D,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACvD;SACD;IACF,CAAC;IAES,kCAAQ,GAAlB,UAAmB,CAAmB;QACrC,IAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;QACzB,IAAI,SAAS,IAAI,EAAE,EAAE;YACpB,IAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;YAC3B,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,GAAG,aAAa,EAAE;gBACtB,oBAAoB;gBACpB,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACrD,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;oBACzB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;iBACzB;gBACD,OAAO,IAAI,aAAa,CAAC;gBACzB,OAAO,IAAI,aAAa,CAAC;gBACzB,IAAI,kBAAkB,EAAE;oBACvB,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;iBAChE;qBAAM;oBACN,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;iBAC7B;gBAED,IAAI,CAAC,GAAG,aAAa,EAAE;oBACtB,iDAAiD;oBACjD,IAAI,cAAc,GAAG,CAAC,CAAC;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;wBACrD,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;wBACnC,IAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;wBACnC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;qBAC7D;oBACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACvC;aACD;SACD;aAAM,IAAI,WAAW,IAAI,EAAE,EAAE;YAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,GAAG,YAAY,EAAE;gBACrB,oBAAoB;gBACpB,IAAI,SAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,SAAO,GAAG,CAAC,CAAC;gBAChB,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;oBACxB,SAAO,IAAI,OAAO,CAAC,OAAO,CAAC;oBAC3B,SAAO,IAAI,OAAO,CAAC,OAAO,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,SAAO,IAAI,YAAY,CAAC;gBACxB,SAAO,IAAI,YAAY,CAAC;gBACxB,IAAI,kBAAkB,EAAE;oBACvB,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAO,EAAE,SAAO,CAAC,CAAC;iBAChE;qBAAM;oBACN,MAAM,CAAC,GAAG,CAAC,SAAO,EAAE,SAAO,CAAC,CAAC;iBAC7B;gBAED,IAAI,CAAC,GAAG,YAAY,EAAE;oBACrB,iDAAiD;oBACjD,IAAI,gBAAc,GAAG,CAAC,CAAC;oBACvB,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;wBACxB,IAAM,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,SAAO,CAAC;wBACrC,IAAM,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,SAAO,CAAC;wBACrC,gBAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAc,CAAC,CAAC;iBACvC;aACD;SACD;aAAM;YACN,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/B;IACF,CAAC;IACF,sBAAC;AAAD,CAAC,AAhKD,IAgKC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, InteractionManager, Point } from \"pixi.js\";\nimport { UtilGestureEasing } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\n\nexport class UtilGestureData<TARGET> {\n\ttarget?: TARGET;\n\tpointers: Map<number, PointerEvent>;\n\tinteractionManager?: InteractionManager;\n\tcenter: Point;\n\tscale: number;\n\ttime: number;\n\tonMove?: (e: InteractionEvent) => void;\n\tonEnd?: (e: InteractionEvent) => void;\n\teasing?: UtilGestureEasing;\n\n\tconstructor() {\n\t\tthis.pointers = new Map<number, PointerEvent>();\n\t\tthis.center = new Point();\n\t\tthis.scale = 0;\n\t\tthis.time = 0;\n\t}\n\n\tstart(e: InteractionEvent): void {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\tthis.pointers.set(oe.pointerId, oe);\n\t\t}\n\t\tthis.doUpdate(e);\n\t}\n\n\tisUpdatable(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\treturn this.pointers.has(oe.pointerId);\n\t\t}\n\t\treturn true;\n\t}\n\n\tupdate(e: InteractionEvent): void {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\tthis.pointers.set(oe.pointerId, oe);\n\t\t}\n\t\tthis.doUpdate(e);\n\t}\n\n\tend(e: InteractionEvent): boolean {\n\t\tlet result = true;\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\tresult = oe.touches.length <= 0;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\tconst pointers = this.pointers;\n\t\t\tpointers.delete(oe.pointerId);\n\t\t\tresult = pointers.size <= 0;\n\t\t}\n\t\tthis.doUpdate(e);\n\t\treturn result;\n\t}\n\n\tbind(e: InteractionEvent): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tif (interactionManager) {\n\t\t\tconst onMove = this.onMove;\n\t\t\tif (onMove) {\n\t\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\t}\n\t\t\tconst onEnd = this.onEnd;\n\t\t\tif (onEnd) {\n\t\t\t\tinteractionManager.on(UtilPointerEvent.up, onEnd);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onEnd);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onEnd);\n\t\t\t}\n\t\t}\n\t}\n\n\tunbind(): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tif (interactionManager) {\n\t\t\tconst onMove = this.onMove;\n\t\t\tif (onMove) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t}\n\t\t\tconst onEnd = this.onEnd;\n\t\t\tif (onEnd) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEnd);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onEnd);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEnd);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate(e: InteractionEvent): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tconst center = this.center;\n\t\tconst oe = e.data.originalEvent;\n\t\tthis.scale = 0;\n\t\tthis.time = oe.timeStamp;\n\t\tif (\"touches\" in oe) {\n\t\t\tconst touches = oe.touches;\n\t\t\tconst touchesLength = touches.length;\n\t\t\tif (0 < touchesLength) {\n\t\t\t\t// Update the center\n\t\t\t\tlet centerX = 0;\n\t\t\t\tlet centerY = 0;\n\t\t\t\tfor (let i = 0, imax = touches.length; i < imax; ++i) {\n\t\t\t\t\tconst touch = touches[i];\n\t\t\t\t\tcenterX += touch.clientX;\n\t\t\t\t\tcenterY += touch.clientY;\n\t\t\t\t}\n\t\t\t\tcenterX /= touchesLength;\n\t\t\t\tcenterY /= touchesLength;\n\t\t\t\tif (interactionManager) {\n\t\t\t\t\tinteractionManager.mapPositionToPoint(center, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\tcenter.set(centerX, centerY);\n\t\t\t\t}\n\n\t\t\t\tif (1 < touchesLength) {\n\t\t\t\t\t// Calculate the maximum distance from the center\n\t\t\t\t\tlet squareDistance = 0;\n\t\t\t\t\tfor (let i = 1, imax = touches.length; i < imax; ++i) {\n\t\t\t\t\t\tconst touch = touches[i];\n\t\t\t\t\t\tconst dx = touch.clientX - centerX;\n\t\t\t\t\t\tconst dy = touch.clientY - centerY;\n\t\t\t\t\t\tsquareDistance = Math.max(squareDistance, dx * dx + dy * dy);\n\t\t\t\t\t}\n\t\t\t\t\tthis.scale = Math.sqrt(squareDistance);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\tconst pointers = this.pointers;\n\t\t\tconst pointersSize = pointers.size;\n\t\t\tif (0 < pointersSize) {\n\t\t\t\t// Update the center\n\t\t\t\tlet centerX = 0;\n\t\t\t\tlet centerY = 0;\n\t\t\t\tpointers.forEach((pointer): void => {\n\t\t\t\t\tcenterX += pointer.clientX;\n\t\t\t\t\tcenterY += pointer.clientY;\n\t\t\t\t});\n\t\t\t\tcenterX /= pointersSize;\n\t\t\t\tcenterY /= pointersSize;\n\t\t\t\tif (interactionManager) {\n\t\t\t\t\tinteractionManager.mapPositionToPoint(center, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\tcenter.set(centerX, centerY);\n\t\t\t\t}\n\n\t\t\t\tif (1 < pointersSize) {\n\t\t\t\t\t// Calculate the maximum distance from the center\n\t\t\t\t\tlet squareDistance = 0;\n\t\t\t\t\tpointers.forEach((pointer): void => {\n\t\t\t\t\t\tconst dx = pointer.clientX - centerX;\n\t\t\t\t\t\tconst dy = pointer.clientY - centerY;\n\t\t\t\t\t\tsquareDistance = Math.max(squareDistance, dx * dx + dy * dy);\n\t\t\t\t\t});\n\t\t\t\t\tthis.scale = Math.sqrt(squareDistance);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcenter.copyFrom(e.data.global);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util-gesture-data.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-data.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, InteractionManager, Point } from \"pixi.js\";\nimport { UtilGestureEasing } from \"./util-gesture-easing\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\n\nexport class UtilGestureData<TARGET> {\n\ttarget?: TARGET;\n\tpointers: Map<number, PointerEvent>;\n\tinteractionManager?: InteractionManager;\n\tcenter: Point;\n\tscale: number;\n\ttime: number;\n\tdistance: number;\n\tonMove?: (e: InteractionEvent) => void;\n\tonEnd?: (e: InteractionEvent) => void;\n\teasing?: UtilGestureEasing;\n\n\tconstructor() {\n\t\tthis.pointers = new Map<number, PointerEvent>();\n\t\tthis.center = new Point();\n\t\tthis.scale = 0;\n\t\tthis.time = 0;\n\t\tthis.distance = 0;\n\t}\n\n\tstart(e: InteractionEvent): void {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\tthis.pointers.set(oe.pointerId, oe);\n\t\t}\n\t\tthis.doUpdate(e);\n\t}\n\n\tisUpdatable(e: InteractionEvent): boolean {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\treturn this.pointers.has(oe.pointerId);\n\t\t}\n\t\treturn true;\n\t}\n\n\tupdate(e: InteractionEvent): void {\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"pointerId\" in oe) {\n\t\t\tthis.pointers.set(oe.pointerId, oe);\n\t\t}\n\t\tthis.doUpdate(e);\n\t}\n\n\tend(e: InteractionEvent): boolean {\n\t\tlet result = true;\n\t\tconst oe = e.data.originalEvent;\n\t\tif (\"touches\" in oe) {\n\t\t\tresult = oe.touches.length <= 0;\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\tconst pointers = this.pointers;\n\t\t\tpointers.delete(oe.pointerId);\n\t\t\tresult = pointers.size <= 0;\n\t\t}\n\t\tthis.doUpdate(e);\n\t\treturn result;\n\t}\n\n\tbind(e: InteractionEvent): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tif (interactionManager) {\n\t\t\tconst onMove = this.onMove;\n\t\t\tif (onMove) {\n\t\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\t}\n\t\t\tconst onEnd = this.onEnd;\n\t\t\tif (onEnd) {\n\t\t\t\tinteractionManager.on(UtilPointerEvent.up, onEnd);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onEnd);\n\t\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onEnd);\n\t\t\t}\n\t\t}\n\t}\n\n\tunbind(): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tif (interactionManager) {\n\t\t\tconst onMove = this.onMove;\n\t\t\tif (onMove) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t}\n\t\t\tconst onEnd = this.onEnd;\n\t\t\tif (onEnd) {\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onEnd);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onEnd);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onEnd);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate(e: InteractionEvent): void {\n\t\tconst interactionManager = this.interactionManager;\n\t\tconst center = this.center;\n\t\tconst oe = e.data.originalEvent;\n\t\tthis.scale = 0;\n\t\tthis.time = oe.timeStamp;\n\t\tif (\"touches\" in oe) {\n\t\t\tconst touches = oe.touches;\n\t\t\tconst touchesLength = touches.length;\n\t\t\tif (0 < touchesLength) {\n\t\t\t\t// Update the center\n\t\t\t\tlet centerX = 0;\n\t\t\t\tlet centerY = 0;\n\t\t\t\tfor (let i = 0, imax = touches.length; i < imax; ++i) {\n\t\t\t\t\tconst touch = touches[i];\n\t\t\t\t\tcenterX += touch.clientX;\n\t\t\t\t\tcenterY += touch.clientY;\n\t\t\t\t}\n\t\t\t\tcenterX /= touchesLength;\n\t\t\t\tcenterY /= touchesLength;\n\t\t\t\tif (interactionManager) {\n\t\t\t\t\tinteractionManager.mapPositionToPoint(center, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\tcenter.set(centerX, centerY);\n\t\t\t\t}\n\n\t\t\t\tif (1 < touchesLength) {\n\t\t\t\t\t// Calculate the maximum distance from the center\n\t\t\t\t\tlet squareDistance = 0;\n\t\t\t\t\tfor (let i = 1, imax = touches.length; i < imax; ++i) {\n\t\t\t\t\t\tconst touch = touches[i];\n\t\t\t\t\t\tconst dx = touch.clientX - centerX;\n\t\t\t\t\t\tconst dy = touch.clientY - centerY;\n\t\t\t\t\t\tsquareDistance = Math.max(squareDistance, dx * dx + dy * dy);\n\t\t\t\t\t}\n\t\t\t\t\tthis.scale = Math.sqrt(squareDistance);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\"pointerId\" in oe) {\n\t\t\tconst pointers = this.pointers;\n\t\t\tconst pointersSize = pointers.size;\n\t\t\tif (0 < pointersSize) {\n\t\t\t\t// Update the center\n\t\t\t\tlet centerX = 0;\n\t\t\t\tlet centerY = 0;\n\t\t\t\tpointers.forEach((pointer): void => {\n\t\t\t\t\tcenterX += pointer.clientX;\n\t\t\t\t\tcenterY += pointer.clientY;\n\t\t\t\t});\n\t\t\t\tcenterX /= pointersSize;\n\t\t\t\tcenterY /= pointersSize;\n\t\t\t\tif (interactionManager) {\n\t\t\t\t\tinteractionManager.mapPositionToPoint(center, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\tcenter.set(centerX, centerY);\n\t\t\t\t}\n\n\t\t\t\tif (1 < pointersSize) {\n\t\t\t\t\t// Calculate the maximum distance from the center\n\t\t\t\t\tlet squareDistance = 0;\n\t\t\t\t\tpointers.forEach((pointer): void => {\n\t\t\t\t\t\tconst dx = pointer.clientX - centerX;\n\t\t\t\t\t\tconst dy = pointer.clientY - centerY;\n\t\t\t\t\t\tsquareDistance = Math.max(squareDistance, dx * dx + dy * dy);\n\t\t\t\t\t});\n\t\t\t\t\tthis.scale = Math.sqrt(squareDistance);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcenter.copyFrom(e.data.global);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 Toshiba Corporation
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { DApplications } from "../d-applications";
|
|
6
|
+
import { UtilGestureData } from "./util-gesture-data";
|
|
7
|
+
import { UtilPointerEvent } from "./util-pointer-event";
|
|
8
|
+
var UtilGestureTap = /** @class */ (function () {
|
|
9
|
+
function UtilGestureTap(on, options) {
|
|
10
|
+
var _a;
|
|
11
|
+
this._onTap = on === null || on === void 0 ? void 0 : on.tap;
|
|
12
|
+
this._threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : 10;
|
|
13
|
+
this._unused = [];
|
|
14
|
+
this._used = new Map();
|
|
15
|
+
}
|
|
16
|
+
UtilGestureTap.prototype.newData = function (target) {
|
|
17
|
+
var used = this._used;
|
|
18
|
+
var result = used.get(target);
|
|
19
|
+
if (result != null) {
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
var poped = this._unused.pop();
|
|
23
|
+
if (poped != null) {
|
|
24
|
+
used.set(target, poped);
|
|
25
|
+
return poped;
|
|
26
|
+
}
|
|
27
|
+
var created = new UtilGestureData();
|
|
28
|
+
created.easing = undefined;
|
|
29
|
+
created.onMove = this.newOnMove(created);
|
|
30
|
+
created.onEnd = this.newOnEnd(created);
|
|
31
|
+
used.set(target, created);
|
|
32
|
+
return created;
|
|
33
|
+
};
|
|
34
|
+
UtilGestureTap.prototype.deleteData = function (data) {
|
|
35
|
+
var target = data.target;
|
|
36
|
+
if (target) {
|
|
37
|
+
if (this._used.delete(target)) {
|
|
38
|
+
data.target = undefined;
|
|
39
|
+
data.pointers.clear();
|
|
40
|
+
this._unused.push(data);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
UtilGestureTap.prototype.newOnMove = function (data) {
|
|
45
|
+
var _this = this;
|
|
46
|
+
return function (e) {
|
|
47
|
+
_this.onMove(e, data);
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
UtilGestureTap.prototype.newOnEnd = function (data) {
|
|
51
|
+
var _this = this;
|
|
52
|
+
return function (e) {
|
|
53
|
+
_this.onEnd(e, data);
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
UtilGestureTap.prototype.onDown = function (target, e) {
|
|
57
|
+
var _a;
|
|
58
|
+
if (this._onTap == null) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
var layer = DApplications.getLayer(target);
|
|
62
|
+
if (layer == null) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
e.stopPropagation();
|
|
66
|
+
if (target.state.isGesturing) {
|
|
67
|
+
(_a = this._used.get(target)) === null || _a === void 0 ? void 0 : _a.start(e);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
var data = this.newData(target);
|
|
71
|
+
data.target = target;
|
|
72
|
+
data.distance = 0;
|
|
73
|
+
target.state.isGesturing = true;
|
|
74
|
+
// Interaction manager
|
|
75
|
+
var interactionManager = layer.renderer.plugins.interaction;
|
|
76
|
+
data.interactionManager = interactionManager;
|
|
77
|
+
// Update the center
|
|
78
|
+
data.start(e);
|
|
79
|
+
// Event handler
|
|
80
|
+
data.bind(e);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
UtilGestureTap.prototype.onMove = function (e, data) {
|
|
84
|
+
var target = data.target;
|
|
85
|
+
if (target == null || !target.state.isGesturing) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!data.isUpdatable(e)) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Update the center
|
|
92
|
+
var center = data.center;
|
|
93
|
+
var oldCenterX = center.x;
|
|
94
|
+
var oldCenterY = center.y;
|
|
95
|
+
data.update(e);
|
|
96
|
+
var newCenterX = center.x;
|
|
97
|
+
var newCenterY = center.y;
|
|
98
|
+
// Calculate the position
|
|
99
|
+
var dx = newCenterX - oldCenterX;
|
|
100
|
+
var dy = newCenterY - oldCenterY;
|
|
101
|
+
// Distance
|
|
102
|
+
data.distance += Math.abs(dx) + Math.abs(dy);
|
|
103
|
+
};
|
|
104
|
+
UtilGestureTap.prototype.onEnd = function (e, data) {
|
|
105
|
+
var target = data.target;
|
|
106
|
+
if (target == null || !target.state.isGesturing) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (!data.end(e)) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
// State
|
|
113
|
+
target.state.isGesturing = false;
|
|
114
|
+
// Remove event handlers
|
|
115
|
+
var interactionManager = data.interactionManager;
|
|
116
|
+
data.interactionManager = undefined;
|
|
117
|
+
if (interactionManager) {
|
|
118
|
+
var onMoveBound = data.onMove;
|
|
119
|
+
if (onMoveBound) {
|
|
120
|
+
interactionManager.off(UtilPointerEvent.move, onMoveBound);
|
|
121
|
+
}
|
|
122
|
+
var onEndBound = data.onEnd;
|
|
123
|
+
if (onEndBound) {
|
|
124
|
+
interactionManager.off(UtilPointerEvent.up, onEndBound);
|
|
125
|
+
interactionManager.off(UtilPointerEvent.cancel, onEndBound);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Tap
|
|
129
|
+
this.end(target, data, e);
|
|
130
|
+
// Delete this data
|
|
131
|
+
this.deleteData(data);
|
|
132
|
+
};
|
|
133
|
+
UtilGestureTap.prototype.end = function (target, data, e) {
|
|
134
|
+
var onTap = this._onTap;
|
|
135
|
+
if (onTap && data.distance < this._threshold) {
|
|
136
|
+
onTap(target, e);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
UtilGestureTap.prototype.stop = function (target) {
|
|
140
|
+
var data = this._used.get(target);
|
|
141
|
+
if (data != null) {
|
|
142
|
+
this.deleteData(data);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
return UtilGestureTap;
|
|
146
|
+
}());
|
|
147
|
+
export { UtilGestureTap };
|
|
148
|
+
//# sourceMappingURL=util-gesture-tap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-gesture-tap.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-tap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAaxD;IAMC,wBAAY,EAAoC,EAAE,OAAuC;;QACxF,IAAI,CAAC,MAAM,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,CAAC;IAES,gCAAO,GAAjB,UAAkB,MAAc;QAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC;SACd;QACD,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC;SACb;QACD,IAAM,OAAO,GAAG,IAAI,eAAe,EAAU,CAAC;QAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IAChB,CAAC;IAES,mCAAU,GAApB,UAAqB,IAA6B;QACjD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACD;IACF,CAAC;IAES,kCAAS,GAAnB,UAAoB,IAA6B;QAAjD,iBAIC;QAHA,OAAO,UAAC,CAAmB;YAC1B,KAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;IACH,CAAC;IAES,iCAAQ,GAAlB,UAAmB,IAA6B;QAAhD,iBAIC;QAHA,OAAO,UAAC,CAAmB;YAC1B,KAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;IACH,CAAC;IAED,+BAAM,GAAN,UAAO,MAAc,EAAE,CAAmB;;QACzC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACxB,OAAO;SACP;QACD,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,OAAO;SACP;QACD,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACjC;aAAM;YACN,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAEhC,sBAAsB;YACtB,IAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAE7C,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEd,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACb;IACF,CAAC;IAES,+BAAM,GAAhB,UAAiB,CAAmB,EAAE,IAA6B;QAClE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAChD,OAAO;SACP;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACzB,OAAO;SACP;QAED,oBAAoB;QACpB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5B,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAE5B,yBAAyB;QACzB,IAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;QACnC,IAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;QAEnC,WAAW;QACX,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAES,8BAAK,GAAf,UAAgB,CAAmB,EAAE,IAA6B;QACjE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAChD,OAAO;SACP;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACjB,OAAO;SACP;QAED,QAAQ;QACR,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAEjC,wBAAwB;QACxB,IAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,kBAAkB,EAAE;YACvB,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,WAAW,EAAE;gBAChB,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aAC3D;YACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC9B,IAAI,UAAU,EAAE;gBACf,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACxD,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;aAC5D;SACD;QAED,MAAM;QACN,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1B,mBAAmB;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,4BAAG,GAAH,UAAI,MAAc,EAAE,IAA6B,EAAE,CAAmB;QACrE,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;YAC7C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACjB;IACF,CAAC;IAED,6BAAI,GAAJ,UAAK,MAAc;QAClB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,IAAI,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACtB;IACF,CAAC;IACF,qBAAC;AAAD,CAAC,AA5JD,IA4JC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent } from \"pixi.js\";\nimport { DApplications } from \"../d-applications\";\nimport { UtilGestureData } from \"./util-gesture-data\";\nimport { UtilPointerEvent } from \"./util-pointer-event\";\nimport { UtilGestureTarget } from \"./util-gesture-target\";\n\nexport type UtilGestureOnTap<TARGET> = (target: TARGET, e: InteractionEvent) => void;\n\nexport interface UtilGestureTapOnOptions<TARGET> {\n\ttap?: UtilGestureOnTap<TARGET>;\n}\n\nexport interface UtilGestureTapOptions<TARGET> {\n\tthreshold?: number;\n}\n\nexport class UtilGestureTap<TARGET extends UtilGestureTarget> {\n\tprotected _onTap?: UtilGestureOnTap<TARGET>;\n\tprotected _threshold: number;\n\tprotected _unused: Array<UtilGestureData<TARGET>>;\n\tprotected _used: Map<TARGET, UtilGestureData<TARGET>>;\n\n\tconstructor(on?: UtilGestureTapOnOptions<TARGET>, options?: UtilGestureTapOptions<TARGET>) {\n\t\tthis._onTap = on?.tap;\n\t\tthis._threshold = options?.threshold ?? 10;\n\t\tthis._unused = [];\n\t\tthis._used = new Map<TARGET, UtilGestureData<TARGET>>();\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 = undefined;\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 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\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\tonDown(target: TARGET, e: InteractionEvent): void {\n\t\tif (this._onTap == null) {\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\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\tconst data = this.newData(target);\n\t\t\tdata.target = target;\n\t\t\tdata.distance = 0;\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// Event handler\n\t\t\tdata.bind(e);\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)) {\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\tdata.update(e);\n\t\tconst newCenterX = center.x;\n\t\tconst newCenterY = center.y;\n\n\t\t// Calculate the position\n\t\tconst dx = newCenterX - oldCenterX;\n\t\tconst dy = newCenterY - oldCenterY;\n\n\t\t// Distance\n\t\tdata.distance += Math.abs(dx) + Math.abs(dy);\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// Tap\n\t\tthis.end(target, data, e);\n\n\t\t// Delete this data\n\t\tthis.deleteData(data);\n\t}\n\n\tend(target: TARGET, data: UtilGestureData<TARGET>, e: InteractionEvent): void {\n\t\tconst onTap = this._onTap;\n\t\tif (onTap && data.distance < this._threshold) {\n\t\t\tonTap(target, e);\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\tthis.deleteData(data);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-gesture-target.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-gesture-target.ts"],"names":[],"mappings":"","sourcesContent":["import { DApplicationTarget } from \"../d-application-like\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\n\nexport interface UtilGestureTarget extends DApplicationTarget {\n\tstate: DBaseStateSet;\n}\n"]}
|
|
@@ -8,6 +8,7 @@ import { UtilGestureModifiers } from "./util-gesture-modifiers";
|
|
|
8
8
|
import { UtilGestureData } from "./util-gesture-data";
|
|
9
9
|
import { UtilGestureEasing } from "./util-gesture-easing";
|
|
10
10
|
import { UtilPointerEvent } from "./util-pointer-event";
|
|
11
|
+
import { UtilGestureTap } from "./util-gesture-tap";
|
|
11
12
|
var UtilGesture = /** @class */ (function () {
|
|
12
13
|
function UtilGesture(options) {
|
|
13
14
|
var _a, _b, _c;
|
|
@@ -32,6 +33,7 @@ var UtilGesture = /** @class */ (function () {
|
|
|
32
33
|
this._touch = !!options.touch;
|
|
33
34
|
this._unused = [];
|
|
34
35
|
this._used = new Map();
|
|
36
|
+
this._tap = new UtilGestureTap(options.on, options.tap);
|
|
35
37
|
var bind = options.bind;
|
|
36
38
|
if (bind != null) {
|
|
37
39
|
this.bind(bind);
|
|
@@ -104,10 +106,10 @@ var UtilGesture = /** @class */ (function () {
|
|
|
104
106
|
UtilGesture.prototype.onDown = function (target, e) {
|
|
105
107
|
var _a;
|
|
106
108
|
if (this._touch && !this.isTouch(e)) {
|
|
107
|
-
return;
|
|
109
|
+
return this._tap.onDown(target, e);
|
|
108
110
|
}
|
|
109
111
|
if (!this._checkerStart(e, this._modifier, target)) {
|
|
110
|
-
return;
|
|
112
|
+
return this._tap.onDown(target, e);
|
|
111
113
|
}
|
|
112
114
|
var layer = DApplications.getLayer(target);
|
|
113
115
|
if (layer == null) {
|
|
@@ -125,6 +127,7 @@ var UtilGesture = /** @class */ (function () {
|
|
|
125
127
|
}
|
|
126
128
|
var data = this.newData(target);
|
|
127
129
|
data.target = target;
|
|
130
|
+
data.distance = 0;
|
|
128
131
|
target.state.isGesturing = true;
|
|
129
132
|
// Interaction manager
|
|
130
133
|
var interactionManager = layer.renderer.plugins.interaction;
|
|
@@ -177,6 +180,8 @@ var UtilGesture = /** @class */ (function () {
|
|
|
177
180
|
var dt = newTime - oldTime;
|
|
178
181
|
var epsilon = 0.00001;
|
|
179
182
|
var ds = epsilon < oldScale && epsilon < newScale ? newScale / oldScale : 1;
|
|
183
|
+
// Distance
|
|
184
|
+
data.distance += Math.abs(dx) + Math.abs(dy);
|
|
180
185
|
// Easing
|
|
181
186
|
var easing = data.easing;
|
|
182
187
|
if (easing) {
|
|
@@ -220,6 +225,8 @@ var UtilGesture = /** @class */ (function () {
|
|
|
220
225
|
if (onEnd != null) {
|
|
221
226
|
onEnd(target);
|
|
222
227
|
}
|
|
228
|
+
// Tap
|
|
229
|
+
this._tap.end(target, data, e);
|
|
223
230
|
// Start the Easing
|
|
224
231
|
var onEasingStart = this._onEasingStart;
|
|
225
232
|
if (onEasingStart) {
|
|
@@ -253,27 +260,31 @@ var UtilGesture = /** @class */ (function () {
|
|
|
253
260
|
var x = center.x + dx;
|
|
254
261
|
var y = center.y + dy;
|
|
255
262
|
center.set(x, y);
|
|
256
|
-
onMove(
|
|
263
|
+
onMove(target, dx, dy, x, y, ds);
|
|
257
264
|
};
|
|
258
265
|
UtilGesture.prototype.onEasingEnd = function (data) {
|
|
259
266
|
var target = data.target;
|
|
260
267
|
this.deleteData(data);
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
onEasingEnd
|
|
268
|
+
if (target != null) {
|
|
269
|
+
var onEasingEnd = this._onEasingEnd;
|
|
270
|
+
if (onEasingEnd) {
|
|
271
|
+
onEasingEnd(target);
|
|
272
|
+
}
|
|
264
273
|
}
|
|
265
274
|
};
|
|
266
275
|
UtilGesture.prototype.stop = function (target) {
|
|
267
|
-
|
|
276
|
+
this._tap.stop(target);
|
|
268
277
|
var data = this._used.get(target);
|
|
269
|
-
if (data
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
onStop
|
|
278
|
+
if (data != null) {
|
|
279
|
+
var easing = data.easing;
|
|
280
|
+
if (easing != null) {
|
|
281
|
+
easing.stop();
|
|
282
|
+
}
|
|
283
|
+
this.deleteData(data);
|
|
284
|
+
var onStop = this._onStop;
|
|
285
|
+
if (onStop) {
|
|
286
|
+
onStop(target);
|
|
287
|
+
}
|
|
277
288
|
}
|
|
278
289
|
};
|
|
279
290
|
return UtilGesture;
|
|
@@ -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\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
|
+
{"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 { DApplications } from \"../d-applications\";\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\";\nimport { UtilGestureTap, UtilGestureTapOnOptions, UtilGestureTapOptions } from \"./util-gesture-tap\";\nimport { UtilGestureTarget } from \"./util-gesture-target\";\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> extends UtilGestureTapOnOptions<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/**\n\t * Tap options\n\t */\n\ttap?: UtilGestureTapOptions<TARGET>;\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\tprotected _tap: UtilGestureTap<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\tthis._tap = new UtilGestureTap(options.on, options.tap);\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 this._tap.onDown(target, e);\n\t\t}\n\t\tif (!this._checkerStart(e, this._modifier, target)) {\n\t\t\treturn this._tap.onDown(target, e);\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\tdata.distance = 0;\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// Distance\n\t\tdata.distance += Math.abs(dx) + Math.abs(dy);\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// Tap\n\t\tthis._tap.end(target, data, e);\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(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\tif (target != null) {\n\t\t\tconst onEasingEnd = this._onEasingEnd;\n\t\t\tif (onEasingEnd) {\n\t\t\t\tonEasingEnd(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tstop(target: TARGET): void {\n\t\tthis._tap.stop(target);\n\n\t\tconst data = this._used.get(target);\n\t\tif (data != null) {\n\t\t\tconst easing = data.easing;\n\t\t\tif (easing != null) {\n\t\t\t\teasing.stop();\n\t\t\t}\n\t\t\tthis.deleteData(data);\n\t\t\tconst onStop = this._onStop;\n\t\t\tif (onStop) {\n\t\t\t\tonStop(target);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|