@any-touch/recognizer
Advanced tools
Comparing version 0.7.0 to 0.7.1
@@ -1,5 +0,13 @@ | ||
import { Input, ComputeConstructor } from '@any-touch/shared'; | ||
import { Input } from '@any-touch/shared'; | ||
import { SupportStatus } from '@any-touch/shared'; | ||
export { default as recognizeForPressMoveLike } from './recognizeForPressMoveLike'; | ||
export { default as resetStatusForPressMoveLike } from './resetStatusForPressMoveLike'; | ||
declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; | ||
interface ComputeFunction { | ||
(input: Input): Record<string, any> | void; | ||
} | ||
interface GenComputeFunction { | ||
(): ComputeFunction; | ||
_id: string; | ||
} | ||
export default abstract class { | ||
@@ -16,3 +24,3 @@ name: string; | ||
computed: Record<string, any>; | ||
usedComputeFunctionMap: Record<string, any>; | ||
computeFunctionMap: Record<string, any>; | ||
input?: Input; | ||
@@ -35,9 +43,6 @@ constructor(options: { | ||
* 缓存计算函数的结果 | ||
* 注意: | ||
* 为了避免压缩后函数名发生变化, 所以default export后面必须跟着类名 | ||
* https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/name | ||
* @param {StdClass[]} 计算函数 | ||
* @param {Array} 计算函数的参数 | ||
* @param Cs 计算函数 | ||
* @param input 计算函数的参数 | ||
*/ | ||
protected compute(Cs: ComputeConstructor[], ...args: any[]): unknown; | ||
protected compute<T extends GenComputeFunction>(Cs: T[], input: Input): UnionToIntersection<Exclude<ReturnType<ReturnType<T>>, void>>; | ||
/** | ||
@@ -44,0 +49,0 @@ * 适用于大部分移动类型的手势, |
@@ -72,11 +72,11 @@ 'use strict'; | ||
function default_1(options) { | ||
this.options = options; | ||
this.name = this.options.name; | ||
this.disabled = false; | ||
this.status = shared.STATUS_POSSIBLE; | ||
this.isRecognized = false; | ||
this.recognizerMap = {}; | ||
this.computedGroup = {}; | ||
this.computed = {}; | ||
this.computedGroup = {}; | ||
this.usedComputeFunctionMap = {}; | ||
this.recognizerMap = {}; | ||
this.computeFunctionMap = {}; | ||
this.options = options; | ||
this.name = this.options.name; | ||
} | ||
@@ -92,9 +92,5 @@ default_1.prototype.set = function (options) { | ||
}; | ||
default_1.prototype.compute = function (Cs) { | ||
var e_1, _a, _b; | ||
var args = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
args[_i - 1] = arguments[_i]; | ||
} | ||
var flatMap = Object.create(null); | ||
default_1.prototype.compute = function (Cs, input) { | ||
var e_1, _a; | ||
var computed = Object.create(null); | ||
try { | ||
@@ -104,8 +100,10 @@ for (var Cs_1 = tslib.__values(Cs), Cs_1_1 = Cs_1.next(); !Cs_1_1.done; Cs_1_1 = Cs_1.next()) { | ||
var _id = C._id; | ||
var _c = this, computedGroup = _c.computedGroup, usedComputeFunctionMap = _c.usedComputeFunctionMap; | ||
if (void 0 === usedComputeFunctionMap[_id]) { | ||
usedComputeFunctionMap[_id] = new C(); | ||
var _b = this, computedGroup = _b.computedGroup, computeFunctionMap = _b.computeFunctionMap; | ||
if (void 0 === computeFunctionMap[_id]) { | ||
computeFunctionMap[_id] = C(); | ||
} | ||
computedGroup[_id] = computedGroup[_id] || (_b = usedComputeFunctionMap[_id]).compute.apply(_b, tslib.__spread(args)); | ||
flatMap = tslib.__assign(tslib.__assign({}, flatMap), computedGroup[_id]); | ||
computedGroup[_id] = computedGroup[_id] || computeFunctionMap[_id](input); | ||
for (var key in computedGroup[_id]) { | ||
computed[key] = computedGroup[_id][key]; | ||
} | ||
} | ||
@@ -120,4 +118,3 @@ } | ||
} | ||
this.computed = flatMap; | ||
return flatMap; | ||
return computed; | ||
}; | ||
@@ -124,0 +121,0 @@ return default_1; |
@@ -1,2 +0,2 @@ | ||
import { __assign, __values, __spread } from 'tslib'; | ||
import { __assign, __values } 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'; | ||
@@ -68,11 +68,11 @@ | ||
function default_1(options) { | ||
this.options = options; | ||
this.name = this.options.name; | ||
this.disabled = false; | ||
this.status = STATUS_POSSIBLE; | ||
this.isRecognized = false; | ||
this.recognizerMap = {}; | ||
this.computedGroup = {}; | ||
this.computed = {}; | ||
this.computedGroup = {}; | ||
this.usedComputeFunctionMap = {}; | ||
this.recognizerMap = {}; | ||
this.computeFunctionMap = {}; | ||
this.options = options; | ||
this.name = this.options.name; | ||
} | ||
@@ -88,9 +88,5 @@ default_1.prototype.set = function (options) { | ||
}; | ||
default_1.prototype.compute = function (Cs) { | ||
var e_1, _a, _b; | ||
var args = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
args[_i - 1] = arguments[_i]; | ||
} | ||
var flatMap = Object.create(null); | ||
default_1.prototype.compute = function (Cs, input) { | ||
var e_1, _a; | ||
var computed = Object.create(null); | ||
try { | ||
@@ -100,8 +96,10 @@ for (var Cs_1 = __values(Cs), Cs_1_1 = Cs_1.next(); !Cs_1_1.done; Cs_1_1 = Cs_1.next()) { | ||
var _id = C._id; | ||
var _c = this, computedGroup = _c.computedGroup, usedComputeFunctionMap = _c.usedComputeFunctionMap; | ||
if (void 0 === usedComputeFunctionMap[_id]) { | ||
usedComputeFunctionMap[_id] = new C(); | ||
var _b = this, computedGroup = _b.computedGroup, computeFunctionMap = _b.computeFunctionMap; | ||
if (void 0 === computeFunctionMap[_id]) { | ||
computeFunctionMap[_id] = C(); | ||
} | ||
computedGroup[_id] = computedGroup[_id] || (_b = usedComputeFunctionMap[_id]).compute.apply(_b, __spread(args)); | ||
flatMap = __assign(__assign({}, flatMap), computedGroup[_id]); | ||
computedGroup[_id] = computedGroup[_id] || computeFunctionMap[_id](input); | ||
for (var key in computedGroup[_id]) { | ||
computed[key] = computedGroup[_id][key]; | ||
} | ||
} | ||
@@ -116,4 +114,3 @@ } | ||
} | ||
this.computed = flatMap; | ||
return flatMap; | ||
return computed; | ||
}; | ||
@@ -120,0 +117,0 @@ return default_1; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var tslib=require("tslib"),shared=require("@any-touch/shared");function resetStatus(e){-1!==[shared.STATUS_END,shared.STATUS_CANCELLED,shared.STATUS_RECOGNIZED,shared.STATUS_FAILED].indexOf(e.status)&&(e.status=shared.STATUS_POSSIBLE)}function flow(e,s,t){var r,a,T,i,o,d,S,h={1:(r={},r[shared.STATUS_POSSIBLE]=(a={},a[shared.INPUT_MOVE]=shared.STATUS_START,a),r[shared.STATUS_START]=(T={},T[shared.INPUT_MOVE]=shared.STATUS_MOVE,T[shared.INPUT_END]=shared.STATUS_END,T[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,T),r[shared.STATUS_MOVE]=(i={},i[shared.INPUT_MOVE]=shared.STATUS_MOVE,i[shared.INPUT_END]=shared.STATUS_END,i[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,i),r),0:(o={},o[shared.STATUS_START]=(d={},d[shared.INPUT_MOVE]=shared.STATUS_CANCELLED,d[shared.INPUT_END]=shared.STATUS_END,d[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,d),o[shared.STATUS_MOVE]=(S={},S[shared.INPUT_START]=shared.STATUS_FAILED,S[shared.INPUT_MOVE]=shared.STATUS_CANCELLED,S[shared.INPUT_END]=shared.STATUS_END,S[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,S),o)};return void 0!==h[Number(e)][s]&&h[Number(e)][s][t]||s}function recognizeForPressMoveLike(e,s,t){var r=e.test(s);resetStatus(e);var a=s.inputType;e.status=flow(r,e.status,a);var T=e.computed;e.isRecognized=[shared.STATUS_START,shared.STATUS_MOVE].includes(e.status);var i=e.name,o=e.status,d=e.isRecognized;return d&&t(i,T),(d||[shared.STATUS_END,shared.STATUS_CANCELLED].includes(e.status))&&t(i+o,T),r}var default_1=function(){function e(e){this.options=e,this.name=this.options.name,this.disabled=!1,this.status=shared.STATUS_POSSIBLE,this.isRecognized=!1,this.computed={},this.computedGroup={},this.usedComputeFunctionMap={},this.recognizerMap={}}return e.prototype.set=function(e){return void 0!==e&&(this.options=tslib.__assign(tslib.__assign({},this.options),e)),this},e.prototype.isValidPointLength=function(e){return 0===this.options.pointLength||this.options.pointLength===e},e.prototype.compute=function(e){for(var s,t,r,a=[],T=1;T<arguments.length;T++)a[T-1]=arguments[T];var i=Object.create(null);try{for(var o=tslib.__values(e),d=o.next();!d.done;d=o.next()){var S=d.value,h=S._id,n=this,_=n.computedGroup,u=n.usedComputeFunctionMap;void 0===u[h]&&(u[h]=new S),_[h]=_[h]||(r=u[h]).compute.apply(r,tslib.__spread(a)),i=tslib.__assign(tslib.__assign({},i),_[h])}}catch(e){s={error:e}}finally{try{d&&!d.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return this.computed=i,i},e}();exports.default=default_1,exports.recognizeForPressMoveLike=recognizeForPressMoveLike,exports.resetStatusForPressMoveLike=resetStatus; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var tslib=require("tslib"),shared=require("@any-touch/shared");function resetStatus(e){-1!==[shared.STATUS_END,shared.STATUS_CANCELLED,shared.STATUS_RECOGNIZED,shared.STATUS_FAILED].indexOf(e.status)&&(e.status=shared.STATUS_POSSIBLE)}function flow(e,s,r){var t,a,T,i,o,S,d,h={1:(t={},t[shared.STATUS_POSSIBLE]=(a={},a[shared.INPUT_MOVE]=shared.STATUS_START,a),t[shared.STATUS_START]=(T={},T[shared.INPUT_MOVE]=shared.STATUS_MOVE,T[shared.INPUT_END]=shared.STATUS_END,T[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,T),t[shared.STATUS_MOVE]=(i={},i[shared.INPUT_MOVE]=shared.STATUS_MOVE,i[shared.INPUT_END]=shared.STATUS_END,i[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,i),t),0:(o={},o[shared.STATUS_START]=(S={},S[shared.INPUT_MOVE]=shared.STATUS_CANCELLED,S[shared.INPUT_END]=shared.STATUS_END,S[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,S),o[shared.STATUS_MOVE]=(d={},d[shared.INPUT_START]=shared.STATUS_FAILED,d[shared.INPUT_MOVE]=shared.STATUS_CANCELLED,d[shared.INPUT_END]=shared.STATUS_END,d[shared.INPUT_CANCEL]=shared.STATUS_CANCELLED,d),o)};return void 0!==h[Number(e)][s]&&h[Number(e)][s][r]||s}function recognizeForPressMoveLike(e,s,r){var t=e.test(s);resetStatus(e);var a=s.inputType;e.status=flow(t,e.status,a);var T=e.computed;e.isRecognized=[shared.STATUS_START,shared.STATUS_MOVE].includes(e.status);var i=e.name,o=e.status,S=e.isRecognized;return S&&r(i,T),(S||[shared.STATUS_END,shared.STATUS_CANCELLED].includes(e.status))&&r(i+o,T),t}var default_1=function(){function e(e){this.disabled=!1,this.status=shared.STATUS_POSSIBLE,this.isRecognized=!1,this.recognizerMap={},this.computedGroup={},this.computed={},this.computeFunctionMap={},this.options=e,this.name=this.options.name}return e.prototype.set=function(e){return void 0!==e&&(this.options=tslib.__assign(tslib.__assign({},this.options),e)),this},e.prototype.isValidPointLength=function(e){return 0===this.options.pointLength||this.options.pointLength===e},e.prototype.compute=function(e,s){var r,t,a=Object.create(null);try{for(var T=tslib.__values(e),i=T.next();!i.done;i=T.next()){var o=i.value,S=o._id,d=this.computedGroup,h=this.computeFunctionMap;for(var n in void 0===h[S]&&(h[S]=o()),d[S]=d[S]||h[S](s),d[S])a[n]=d[S][n]}}catch(e){r={error:e}}finally{try{i&&!i.done&&(t=T.return)&&t.call(T)}finally{if(r)throw r.error}}return a},e}();exports.default=default_1,exports.recognizeForPressMoveLike=recognizeForPressMoveLike,exports.resetStatusForPressMoveLike=resetStatus; |
{ | ||
"name": "@any-touch/recognizer", | ||
"version": "0.7.0", | ||
"version": "0.7.1", | ||
"description": "any-touch的识别器的基类.", | ||
@@ -11,3 +11,3 @@ "main": "./dist/index", | ||
"dependencies": { | ||
"@any-touch/shared": "^0.7.0" | ||
"@any-touch/shared": "^0.7.1" | ||
}, | ||
@@ -21,3 +21,3 @@ "files": [ | ||
"sideEffects": false, | ||
"gitHead": "31d10e40b19d87bc393b0486fe69670f37dc97f3" | ||
"gitHead": "3f10c7e8681ed792b78ff76c15deae6e3ca606c7" | ||
} |
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
16367
308
Updated@any-touch/shared@^0.7.1