@any-touch/recognizer
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -1,7 +0,41 @@ | ||
import { RECOGNIZER_STATUS } from '@any-touch/shared'; | ||
import type { Input, Computed, ComputeWrapFunction } from '@any-touch/shared'; | ||
import { RecognizerStatus } from '@any-touch/shared'; | ||
export { default as recognizeForPressMoveLike } from './recognizeForPressMoveLike'; | ||
export { default as canResetStatusForPressMoveLike } from './resetStatusForPressMoveLike'; | ||
export default function <D, O>(defaultOptions: D, options?: O): D & O & { | ||
status: RECOGNIZER_STATUS; | ||
set: (key: string, value: string | number) => void; | ||
}; | ||
export { default as resetStatusForPressMoveLike } from './resetStatusForPressMoveLike'; | ||
export default abstract class { | ||
name: string; | ||
disabled: boolean; | ||
isRecognized: boolean; | ||
status: RecognizerStatus; | ||
options: { | ||
[k: string]: any; | ||
}; | ||
recognizerMap: Record<string, this>; | ||
computeFunctions: ComputeWrapFunction[]; | ||
constructor(options: { | ||
name: string; | ||
[k: string]: number | string; | ||
}); | ||
/** | ||
* 设置识别器 | ||
* @param options 选项 | ||
*/ | ||
set(options?: Record<string, any>): this; | ||
/** | ||
* 验证触点数量 | ||
* @param pointLength 触点数 | ||
*/ | ||
isValidPointLength(pointLength: number): boolean; | ||
/** | ||
* 适用于大部分移动类型的手势, | ||
* 如pan/rotate/pinch/swipe | ||
* @param computed 计算值 | ||
*/ | ||
abstract recognize(computed: Computed, callback: (type: string, ...payload: any[]) => void): void; | ||
/** | ||
* 校验输入数据 | ||
* @param {Input} 计算数据 | ||
* @returns {Boolean} 校验结果 | ||
*/ | ||
abstract test(input: Input): boolean; | ||
} |
@@ -1,10 +0,10 @@ | ||
import { RECOGNIZER_STATUS, STAGE } from '@any-touch/shared'; | ||
import { __assign } from 'tslib'; | ||
import { STATUS_END, STATUS_CANCELLED, STATUS_RECOGNIZED, STATUS_FAILED, STATUS_POSSIBLE, STATUS_START, STATUS_MOVE, INPUT_MOVE, INPUT_END, INPUT_CANCEL, INPUT_START } from '@any-touch/shared'; | ||
var _a; | ||
var ACTION_MAP = (_a = {}, | ||
_a[RECOGNIZER_STATUS.START] = STAGE.START, | ||
_a[RECOGNIZER_STATUS.MOVE] = STAGE.MOVE, | ||
_a[RECOGNIZER_STATUS.END] = STAGE.END, | ||
_a[RECOGNIZER_STATUS.CANCELLED] = STAGE.CANCEL, | ||
_a); | ||
function resetStatus (recognizer) { | ||
if (-1 !== [STATUS_END, STATUS_CANCELLED, STATUS_RECOGNIZED, STATUS_FAILED].indexOf(recognizer.status)) { | ||
recognizer.status = STATUS_POSSIBLE; | ||
} | ||
} | ||
function flow(isVaild, lastStatus, stage) { | ||
@@ -14,29 +14,29 @@ var _a, _b, _c, _d, _e, _f, _g; | ||
1: (_a = {}, | ||
_a[RECOGNIZER_STATUS.POSSIBLE] = (_b = {}, | ||
_b[STAGE.MOVE] = RECOGNIZER_STATUS.START, | ||
_b[STAGE.END] = RECOGNIZER_STATUS.FAILED, | ||
_b[STAGE.CANCEL] = RECOGNIZER_STATUS.FAILED, | ||
_a[STATUS_POSSIBLE] = (_b = {}, | ||
_b[INPUT_MOVE] = STATUS_START, | ||
_b[INPUT_END] = STATUS_FAILED, | ||
_b[INPUT_CANCEL] = STATUS_FAILED, | ||
_b), | ||
_a[RECOGNIZER_STATUS.START] = (_c = {}, | ||
_c[STAGE.MOVE] = RECOGNIZER_STATUS.MOVE, | ||
_c[STAGE.END] = RECOGNIZER_STATUS.END, | ||
_c[STAGE.CANCEL] = RECOGNIZER_STATUS.CANCELLED, | ||
_a[STATUS_START] = (_c = {}, | ||
_c[INPUT_MOVE] = STATUS_MOVE, | ||
_c[INPUT_END] = STATUS_END, | ||
_c[INPUT_CANCEL] = STATUS_CANCELLED, | ||
_c), | ||
_a[RECOGNIZER_STATUS.MOVE] = (_d = {}, | ||
_d[STAGE.MOVE] = RECOGNIZER_STATUS.MOVE, | ||
_d[STAGE.END] = RECOGNIZER_STATUS.END, | ||
_d[STAGE.CANCEL] = RECOGNIZER_STATUS.CANCELLED, | ||
_a[STATUS_MOVE] = (_d = {}, | ||
_d[INPUT_MOVE] = STATUS_MOVE, | ||
_d[INPUT_END] = STATUS_END, | ||
_d[INPUT_CANCEL] = STATUS_CANCELLED, | ||
_d), | ||
_a), | ||
0: (_e = {}, | ||
_e[RECOGNIZER_STATUS.START] = (_f = {}, | ||
_f[STAGE.MOVE] = RECOGNIZER_STATUS.FAILED, | ||
_f[STAGE.END] = RECOGNIZER_STATUS.FAILED, | ||
_f[STAGE.CANCEL] = RECOGNIZER_STATUS.CANCELLED, | ||
_e[STATUS_START] = (_f = {}, | ||
_f[INPUT_MOVE] = STATUS_FAILED, | ||
_f[INPUT_END] = STATUS_FAILED, | ||
_f[INPUT_CANCEL] = STATUS_CANCELLED, | ||
_f), | ||
_e[RECOGNIZER_STATUS.MOVE] = (_g = {}, | ||
_g[STAGE.START] = RECOGNIZER_STATUS.FAILED, | ||
_g[STAGE.MOVE] = RECOGNIZER_STATUS.FAILED, | ||
_g[STAGE.END] = RECOGNIZER_STATUS.END, | ||
_g[STAGE.CANCEL] = RECOGNIZER_STATUS.CANCELLED, | ||
_e[STATUS_MOVE] = (_g = {}, | ||
_g[INPUT_START] = STATUS_FAILED, | ||
_g[INPUT_MOVE] = STATUS_FAILED, | ||
_g[INPUT_END] = STATUS_FAILED, | ||
_g[INPUT_CANCEL] = STATUS_CANCELLED, | ||
_g), | ||
@@ -48,12 +48,14 @@ _e) | ||
} | ||
function recognizeForPressMoveLike (computed, test, name, status, emit, after) { | ||
var isVaild = test(computed); | ||
var newStatus = flow(isVaild, status, computed.stage); | ||
var isRecognizedNow = ([RECOGNIZER_STATUS.START, RECOGNIZER_STATUS.MOVE]).includes(newStatus); | ||
after([isRecognizedNow, newStatus]); | ||
if (isRecognizedNow) { | ||
function recognizeForPressMoveLike (recognizer, computed, emit) { | ||
var isVaild = recognizer.test(computed); | ||
resetStatus(recognizer); | ||
var stage = computed.stage; | ||
recognizer.status = flow(isVaild, recognizer.status, stage); | ||
recognizer.isRecognized = [STATUS_START, STATUS_MOVE].includes(recognizer.status); | ||
var name = recognizer.name, status = recognizer.status, isRecognized = recognizer.isRecognized; | ||
if (isRecognized) { | ||
emit(name); | ||
} | ||
if (isRecognizedNow || ([RECOGNIZER_STATUS.END, RECOGNIZER_STATUS.CANCELLED]).includes(newStatus)) { | ||
emit(name + ACTION_MAP[newStatus]); | ||
if (isRecognized || [STATUS_END, STATUS_CANCELLED].includes(recognizer.status)) { | ||
emit(name + status); | ||
} | ||
@@ -63,17 +65,25 @@ return isVaild; | ||
function resetStatusForPressMoveLike (status) { | ||
return [RECOGNIZER_STATUS.END, RECOGNIZER_STATUS.CANCELLED, RECOGNIZER_STATUS.RECOGNIZED, RECOGNIZER_STATUS.FAILED].includes(status) ? RECOGNIZER_STATUS.POSSIBLE : status; | ||
} | ||
function index (defaultOptions, options) { | ||
var _context = Object.assign({}, defaultOptions, options, { | ||
status: RECOGNIZER_STATUS.POSSIBLE, | ||
set: function (key, value) { | ||
_context[key] = value; | ||
var default_1 = (function () { | ||
function default_1(options) { | ||
this.disabled = false; | ||
this.isRecognized = false; | ||
this.status = STATUS_POSSIBLE; | ||
this.recognizerMap = {}; | ||
this.computeFunctions = []; | ||
this.options = options; | ||
this.name = this.options.name; | ||
} | ||
default_1.prototype.set = function (options) { | ||
if (void 0 !== options) { | ||
this.options = __assign(__assign({}, this.options), options); | ||
} | ||
}); | ||
return _context; | ||
} | ||
return this; | ||
}; | ||
default_1.prototype.isValidPointLength = function (pointLength) { | ||
return this.options.pointLength === pointLength; | ||
}; | ||
return default_1; | ||
}()); | ||
export default index; | ||
export { resetStatusForPressMoveLike as canResetStatusForPressMoveLike, recognizeForPressMoveLike }; | ||
export default default_1; | ||
export { recognizeForPressMoveLike, resetStatus as resetStatusForPressMoveLike }; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var E,S=require("@any-touch/shared"),T=((E={})[S.RECOGNIZER_STATUS.START]=S.STAGE.START,E[S.RECOGNIZER_STATUS.MOVE]=S.STAGE.MOVE,E[S.RECOGNIZER_STATUS.END]=S.STAGE.END,E[S.RECOGNIZER_STATUS.CANCELLED]=S.STAGE.CANCEL,E);exports.canResetStatusForPressMoveLike=function(E){return[S.RECOGNIZER_STATUS.END,S.RECOGNIZER_STATUS.CANCELLED,S.RECOGNIZER_STATUS.RECOGNIZED,S.RECOGNIZER_STATUS.FAILED].includes(E)?S.RECOGNIZER_STATUS.POSSIBLE:E},exports.default=function(E,T){var A=Object.assign({},E,T,{status:S.RECOGNIZER_STATUS.POSSIBLE,set:function(E,S){A[E]=S}});return A},exports.recognizeForPressMoveLike=function(E,A,R,C,N,G){var O=A(E),I=function(E,T,A){var R,C,N,G,O,I,e,_={1:(R={},R[S.RECOGNIZER_STATUS.POSSIBLE]=(C={},C[S.STAGE.MOVE]=S.RECOGNIZER_STATUS.START,C[S.STAGE.END]=S.RECOGNIZER_STATUS.FAILED,C[S.STAGE.CANCEL]=S.RECOGNIZER_STATUS.FAILED,C),R[S.RECOGNIZER_STATUS.START]=(N={},N[S.STAGE.MOVE]=S.RECOGNIZER_STATUS.MOVE,N[S.STAGE.END]=S.RECOGNIZER_STATUS.END,N[S.STAGE.CANCEL]=S.RECOGNIZER_STATUS.CANCELLED,N),R[S.RECOGNIZER_STATUS.MOVE]=(G={},G[S.STAGE.MOVE]=S.RECOGNIZER_STATUS.MOVE,G[S.STAGE.END]=S.RECOGNIZER_STATUS.END,G[S.STAGE.CANCEL]=S.RECOGNIZER_STATUS.CANCELLED,G),R),0:(O={},O[S.RECOGNIZER_STATUS.START]=(I={},I[S.STAGE.MOVE]=S.RECOGNIZER_STATUS.FAILED,I[S.STAGE.END]=S.RECOGNIZER_STATUS.FAILED,I[S.STAGE.CANCEL]=S.RECOGNIZER_STATUS.CANCELLED,I),O[S.RECOGNIZER_STATUS.MOVE]=(e={},e[S.STAGE.START]=S.RECOGNIZER_STATUS.FAILED,e[S.STAGE.MOVE]=S.RECOGNIZER_STATUS.FAILED,e[S.STAGE.END]=S.RECOGNIZER_STATUS.END,e[S.STAGE.CANCEL]=S.RECOGNIZER_STATUS.CANCELLED,e),O)}[Number(E)][T];return void 0!==_&&_[A]||T}(O,C,E.stage),e=[S.RECOGNIZER_STATUS.START,S.RECOGNIZER_STATUS.MOVE].includes(I);return G([e,I]),e&&N(R),(e||[S.RECOGNIZER_STATUS.END,S.RECOGNIZER_STATUS.CANCELLED].includes(I))&&N(R+T[I]),O}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var T=require("tslib"),S=require("@any-touch/shared");function t(T){-1!==[S.STATUS_END,S.STATUS_CANCELLED,S.STATUS_RECOGNIZED,S.STATUS_FAILED].indexOf(T.status)&&(T.status=S.STATUS_POSSIBLE)}var s=function(){function t(T){this.disabled=!1,this.isRecognized=!1,this.status=S.STATUS_POSSIBLE,this.recognizerMap={},this.computeFunctions=[],this.options=T,this.name=this.options.name}return t.prototype.set=function(S){return void 0!==S&&(this.options=T.__assign(T.__assign({},this.options),S)),this},t.prototype.isValidPointLength=function(T){return this.options.pointLength===T},t}();exports.default=s,exports.recognizeForPressMoveLike=function(T,s,e){var A=T.test(s);t(T);var _=s.stage;T.status=function(T,t,s){var e,A,_,i,E,U,n,o={1:(e={},e[S.STATUS_POSSIBLE]=(A={},A[S.INPUT_MOVE]=S.STATUS_START,A[S.INPUT_END]=S.STATUS_FAILED,A[S.INPUT_CANCEL]=S.STATUS_FAILED,A),e[S.STATUS_START]=(_={},_[S.INPUT_MOVE]=S.STATUS_MOVE,_[S.INPUT_END]=S.STATUS_END,_[S.INPUT_CANCEL]=S.STATUS_CANCELLED,_),e[S.STATUS_MOVE]=(i={},i[S.INPUT_MOVE]=S.STATUS_MOVE,i[S.INPUT_END]=S.STATUS_END,i[S.INPUT_CANCEL]=S.STATUS_CANCELLED,i),e),0:(E={},E[S.STATUS_START]=(U={},U[S.INPUT_MOVE]=S.STATUS_FAILED,U[S.INPUT_END]=S.STATUS_FAILED,U[S.INPUT_CANCEL]=S.STATUS_CANCELLED,U),E[S.STATUS_MOVE]=(n={},n[S.INPUT_START]=S.STATUS_FAILED,n[S.INPUT_MOVE]=S.STATUS_FAILED,n[S.INPUT_END]=S.STATUS_FAILED,n[S.INPUT_CANCEL]=S.STATUS_CANCELLED,n),E)}[Number(T)][t];return void 0!==o&&o[s]||t}(A,T.status,_),T.isRecognized=[S.STATUS_START,S.STATUS_MOVE].includes(T.status);var i=T.name,E=T.status,U=T.isRecognized;return U&&e(i),(U||[S.STATUS_END,S.STATUS_CANCELLED].includes(T.status))&&e(i+E),A},exports.resetStatusForPressMoveLike=t; |
@@ -1,12 +0,11 @@ | ||
import { EventTrigger, Computed, RECOGNIZER_STATUS } from '@any-touch/shared'; | ||
import { EventTrigger, Computed } from '@any-touch/shared'; | ||
import Recognizer from './index'; | ||
/** | ||
* 适用于移动类型手势的识别函数 | ||
* @param computed 计算数据 | ||
* @param test 测试函数 | ||
* @param name 手势名称 | ||
* @param status 当前识别器状态 | ||
* @param emit 事件触发器 | ||
* @param after 识别后触发,无论成功/失败 | ||
* @returns 是否识别 | ||
* 适用于大部分移动类型的手势, | ||
* 如pan/rotate/pinch/swipe | ||
* @param recognizer 识别器实例 | ||
* @param computed 当前输入 | ||
* @param emit at实例上的emit函数 | ||
* @returns 是否通过test | ||
*/ | ||
export default function (computed: Computed, test: (c: Computed) => boolean, name: string, status: RECOGNIZER_STATUS, emit: EventTrigger, after: ([isRecognized, status]: [boolean, RECOGNIZER_STATUS]) => void): boolean; | ||
export default function (recognizer: Recognizer, computed: Computed, emit: EventTrigger): boolean; |
@@ -1,2 +0,2 @@ | ||
import { RECOGNIZER_STATUS } from '@any-touch/shared'; | ||
export default function (status: RECOGNIZER_STATUS): any; | ||
import Recognizer from './index'; | ||
export default function (recognizer: Recognizer): void; |
{ | ||
"name": "@any-touch/recognizer", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "any-touch的识别器的基类.", | ||
@@ -11,4 +11,3 @@ "main": "./dist/index", | ||
"dependencies": { | ||
"@any-touch/shared": "^1.0.4", | ||
"tslib": "^2.0.1" | ||
"@any-touch/shared": "^1.0.5" | ||
}, | ||
@@ -22,3 +21,3 @@ "files": [ | ||
"sideEffects": false, | ||
"gitHead": "bf4837c370cf89353eff7911b7d2c772198fa301" | ||
"gitHead": "bf4d9191714dd0852ca76a335d5a232af36a691e" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9204
1
143
- Removedtslib@^2.0.1
- Removedtslib@2.7.0(transitive)
Updated@any-touch/shared@^1.0.5