@adrianbutt/evutils 1.0.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/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/cjs/index/index.d.ts +7 -0
- package/dist/cjs/src/BasicEventManager.d.ts +95 -0
- package/dist/cjs/src/index.d.ts +1 -0
- package/dist/cjs/src/mapped/EvForwarder.d.ts +265 -0
- package/dist/cjs/src/mapped/index.d.ts +1 -0
- package/dist/cjs/src/mapped/utils.d.ts +36 -0
- package/dist/mjs/index/index.d.ts +7 -0
- package/dist/mjs/index/index.js +8 -0
- package/dist/mjs/index/index.js.map +1 -0
- package/dist/mjs/package.json +3 -0
- package/dist/mjs/src/BasicEventManager.d.ts +95 -0
- package/dist/mjs/src/BasicEventManager.js +225 -0
- package/dist/mjs/src/BasicEventManager.js.map +1 -0
- package/dist/mjs/src/index.d.ts +1 -0
- package/dist/mjs/src/index.js +2 -0
- package/dist/mjs/src/index.js.map +1 -0
- package/dist/mjs/src/mapped/EvForwarder.d.ts +265 -0
- package/dist/mjs/src/mapped/EvForwarder.js +330 -0
- package/dist/mjs/src/mapped/EvForwarder.js.map +1 -0
- package/dist/mjs/src/mapped/index.d.ts +1 -0
- package/dist/mjs/src/mapped/index.js +2 -0
- package/dist/mjs/src/mapped/index.js.map +1 -0
- package/dist/mjs/src/mapped/utils.d.ts +36 -0
- package/dist/mjs/src/mapped/utils.js +242 -0
- package/dist/mjs/src/mapped/utils.js.map +1 -0
- package/dist/web/evutils.js +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { BasicEventManager } from "../../src/BasicEventManager.js";
|
|
2
|
+
import { paramCheck, parseEvParamForwardInstructionStr, parseEvParamConditionStr } from "../../src/mapped/utils.js";
|
|
3
|
+
/**
|
|
4
|
+
* Operator for param verification.
|
|
5
|
+
* @sortStrategy source-order
|
|
6
|
+
*/
|
|
7
|
+
export var EvParamOperator;
|
|
8
|
+
(function (EvParamOperator) {
|
|
9
|
+
/**
|
|
10
|
+
* Whether the parameter does not exist.
|
|
11
|
+
* <br> NOTE: No suffix is expected after using EXISTS.
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // would check if the param at index 1 does exist (ie arguments >= 2 in length)
|
|
15
|
+
* '1_'
|
|
16
|
+
* // is functionally equivalent to having NO operator
|
|
17
|
+
* '1'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
EvParamOperator["EXISTS"] = "_";
|
|
21
|
+
/**
|
|
22
|
+
* Whether the parameter does not exist.
|
|
23
|
+
* <br> NOTE: No suffix is expected after using NOT_EXISTS.
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // would check if the param at index 1 does not exist (ie arguments < 2 in length)
|
|
27
|
+
* '1!'
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
EvParamOperator["NOT_EXISTS"] = "!";
|
|
31
|
+
/**
|
|
32
|
+
* Whether the value is equal to a string
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // would check if the param at index 1 IS 'monday'
|
|
36
|
+
* '1="monday"'
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
EvParamOperator["EQUAL"] = "=";
|
|
40
|
+
/**
|
|
41
|
+
* Whether the value is not equal to a string
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* // would check if the param at index 1 is NOT 'monday'
|
|
45
|
+
* '1!="monday"'
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
EvParamOperator["NOT_EQUAL"] = "!=";
|
|
49
|
+
/**
|
|
50
|
+
* Whether the value ends with a string
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* // would check if the param at index 1 starts with 'mon'
|
|
54
|
+
* '1^="mon"'
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
EvParamOperator["STARTS_WITH"] = "^=";
|
|
58
|
+
/**
|
|
59
|
+
* Whether the value ends with a string
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* // would check if the param at index 1 ends with 'day'
|
|
63
|
+
* '1$="day"'
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
EvParamOperator["ENDS_WITH"] = "$=";
|
|
67
|
+
/**
|
|
68
|
+
* Whether the value contains a string
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* // would check if the param at index 1 contains the string 'day'
|
|
72
|
+
* '1*="day"'
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
EvParamOperator["CONTAINS"] = "*=";
|
|
76
|
+
/**
|
|
77
|
+
* Exact match for space separated words
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* // would check if the param at index 1 was equal to 'monday' or 'tuesday'
|
|
81
|
+
* '1~="monday tuesday"'
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
EvParamOperator["MATCHES_WORD"] = "~=";
|
|
85
|
+
})(EvParamOperator || (EvParamOperator = {}));
|
|
86
|
+
/**
|
|
87
|
+
* Event forwarder
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* const rootEvMgr = new BasicEventManager();
|
|
92
|
+
* const evFwder = new EvForwarder({
|
|
93
|
+
* eventReceiver: rootEvMgr,
|
|
94
|
+
* eventMaps: [{
|
|
95
|
+
* eventName: "FoodEvent",
|
|
96
|
+
* paramConditions: [],
|
|
97
|
+
* paramForwardInstructions: []
|
|
98
|
+
* }, {
|
|
99
|
+
* eventName: "FoodEvent",
|
|
100
|
+
* forwardedEventName: "AteFood",
|
|
101
|
+
* paramConditions: ['0="Ate"'],
|
|
102
|
+
* paramForwardInstructions: ["2"]
|
|
103
|
+
* }, {
|
|
104
|
+
* eventName: "FoodEvent",
|
|
105
|
+
* forwardedEventName: "AteSnack",
|
|
106
|
+
* paramConditions: ['0="Ate"', '1="Snack"'],
|
|
107
|
+
* paramForwardInstructions: ["2"]
|
|
108
|
+
* }],
|
|
109
|
+
* autoEnable: true
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* const handleFoodEvent = function () {};
|
|
113
|
+
* const handleAteFood = function () {};
|
|
114
|
+
* const handleAteSnack = function () {};
|
|
115
|
+
* evFwder.on("FoodEvent", handleFoodEvent);
|
|
116
|
+
* evFwder.on("AteFood", handleAteFood);
|
|
117
|
+
* evFwder.on("AteSnack", handleAteSnack);
|
|
118
|
+
*
|
|
119
|
+
* rootEvMgr.trigger("FoodEvent", []);
|
|
120
|
+
* rootEvMgr.trigger("FoodEvent", ["Ate", "Snack", "Chocolate"]);
|
|
121
|
+
* rootEvMgr.trigger("FoodEvent", ["Ate", "Snack", "Biscuit"]);
|
|
122
|
+
* rootEvMgr.trigger("FoodEvent", ["Ate", "Meal", "Sandwich"]);
|
|
123
|
+
* rootEvMgr.trigger("FoodEvent", ["Drank", "Soft", "Lemonade"]);
|
|
124
|
+
* rootEvMgr.trigger("FoodEvent", ["Drank", "Hard", "Vodka"]);
|
|
125
|
+
*
|
|
126
|
+
* // handleFoodEvent invocations:
|
|
127
|
+
* // handleFoodEvent();
|
|
128
|
+
* // handleFoodEvent("Ate", "Snack", "Chocolate");
|
|
129
|
+
* // handleFoodEvent("Ate", "Snack", "Biscuit");
|
|
130
|
+
* // handleFoodEvent("Ate", "Meal", "Sandwich");
|
|
131
|
+
* // handleFoodEvent("Drank", "Soft", "Lemonade");
|
|
132
|
+
* // handleFoodEvent("Drank", "Hard", "Vodka");
|
|
133
|
+
*
|
|
134
|
+
* // handleAteFood invocations:
|
|
135
|
+
* // handleAteFood("Chocolate");
|
|
136
|
+
* // handleAteFood("Biscuit");
|
|
137
|
+
* // handleAteFood("Sandwich");
|
|
138
|
+
*
|
|
139
|
+
* // handleAteSnack invocations:
|
|
140
|
+
* // handleAteSnack("Chocolate");
|
|
141
|
+
* // handleAteSnack("Biscuit");
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export class EvForwarder {
|
|
145
|
+
_evReceiver;
|
|
146
|
+
_evMgr;
|
|
147
|
+
_evMaps;
|
|
148
|
+
_active;
|
|
149
|
+
constructor(options) {
|
|
150
|
+
this._evReceiver = options.eventReceiver;
|
|
151
|
+
this._evMgr = new BasicEventManager();
|
|
152
|
+
this._evMaps = (options.eventMaps || []).map(rawMap => new InternalEventMap({
|
|
153
|
+
evMap: rawMap,
|
|
154
|
+
sender: this._evMgr
|
|
155
|
+
}));
|
|
156
|
+
if (options.autoEnable ?? true) {
|
|
157
|
+
this.active = true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Whether the forwarder should forward events or not.
|
|
162
|
+
*/
|
|
163
|
+
get active() {
|
|
164
|
+
return !!this._active;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Whether the forwarder should forward events or not.
|
|
168
|
+
*/
|
|
169
|
+
set active(to) {
|
|
170
|
+
delete this._active;
|
|
171
|
+
if (to) {
|
|
172
|
+
this._active = true;
|
|
173
|
+
}
|
|
174
|
+
this._refreshListeners();
|
|
175
|
+
}
|
|
176
|
+
on(eventName, handler, context) {
|
|
177
|
+
return this._evMgr.on.apply(this._evMgr, arguments);
|
|
178
|
+
}
|
|
179
|
+
off(eventName, handler, context) {
|
|
180
|
+
return this._evMgr.off.apply(this._evMgr, arguments);
|
|
181
|
+
}
|
|
182
|
+
register(toState, eventName, handler, context) {
|
|
183
|
+
return this._evMgr.register.apply(this._evMgr, arguments);
|
|
184
|
+
}
|
|
185
|
+
_refreshListeners() {
|
|
186
|
+
let evMaps = this._evMaps;
|
|
187
|
+
let evReceiver = this._evReceiver;
|
|
188
|
+
for (let i = 0; i < evMaps.length; i++) {
|
|
189
|
+
// always deregister
|
|
190
|
+
let curMap = evMaps[i];
|
|
191
|
+
if (!curMap) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
let eventName = curMap.evMap.eventName;
|
|
195
|
+
let handler = curMap.handler;
|
|
196
|
+
evReceiver.off(eventName, handler);
|
|
197
|
+
if (this._active) {
|
|
198
|
+
evReceiver.on(eventName, handler);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
class InternalEventMap {
|
|
204
|
+
evMap;
|
|
205
|
+
handler;
|
|
206
|
+
constructor(options) {
|
|
207
|
+
this.evMap = InternalEventMap.extractMap(options.evMap);
|
|
208
|
+
this.handler = InternalEventMap.generateDefaultHandler(this, options.sender);
|
|
209
|
+
}
|
|
210
|
+
static getforwardedEventName(forEvMap) {
|
|
211
|
+
return forEvMap.forwardedEventName ?? forEvMap.eventName;
|
|
212
|
+
}
|
|
213
|
+
static extractMap(from) {
|
|
214
|
+
let ret = {
|
|
215
|
+
eventName: from.eventName,
|
|
216
|
+
forwardedEventName: from.forwardedEventName,
|
|
217
|
+
paramConditions: (from.paramConditions || []).map(raw => InternalEventMap.extractParamCondition(raw)),
|
|
218
|
+
paramForwardInstructions: (from.paramForwardInstructions || []).map(raw => InternalEventMap.extractParamForwardInstruction(raw))
|
|
219
|
+
};
|
|
220
|
+
return ret;
|
|
221
|
+
}
|
|
222
|
+
static extractParamCondition(from) {
|
|
223
|
+
if (typeof from === "string") {
|
|
224
|
+
return parseEvParamConditionStr(from);
|
|
225
|
+
}
|
|
226
|
+
return from;
|
|
227
|
+
}
|
|
228
|
+
static extractParamForwardInstruction(from) {
|
|
229
|
+
if (typeof from === "string") {
|
|
230
|
+
return parseEvParamForwardInstructionStr(from);
|
|
231
|
+
}
|
|
232
|
+
return from;
|
|
233
|
+
}
|
|
234
|
+
static generateDefaultHandler(forInternalEvMap, sender) {
|
|
235
|
+
const forEvMap = forInternalEvMap.evMap;
|
|
236
|
+
const evNameOut = InternalEventMap.getforwardedEventName(forEvMap);
|
|
237
|
+
const paramConditions = forEvMap.paramConditions;
|
|
238
|
+
const paramForwardInstructions = forEvMap.paramForwardInstructions;
|
|
239
|
+
return function () {
|
|
240
|
+
// TODO: don't even bother if sender cannot actually trigger
|
|
241
|
+
for (let i = 0; i < paramConditions.length; i++) {
|
|
242
|
+
if (!InternalEventMap.runPCCheck(arguments, paramConditions[i])) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
let argsToForward;
|
|
247
|
+
if (paramForwardInstructions.length) {
|
|
248
|
+
argsToForward = InternalEventMap.genForwardedArgs(arguments, paramForwardInstructions);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
argsToForward = [...arguments];
|
|
252
|
+
}
|
|
253
|
+
sender.trigger(evNameOut, argsToForward);
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
static runPCCheck(args, paramCondition) {
|
|
257
|
+
let i = paramCondition.index;
|
|
258
|
+
let operator = paramCondition.operator;
|
|
259
|
+
switch (operator) {
|
|
260
|
+
case EvParamOperator.EXISTS: {
|
|
261
|
+
return i < args.length && i >= 0;
|
|
262
|
+
}
|
|
263
|
+
case EvParamOperator.NOT_EXISTS: {
|
|
264
|
+
return i >= args.length && i >= 0;
|
|
265
|
+
}
|
|
266
|
+
default: {
|
|
267
|
+
const exists = i < args.length && i >= 0;
|
|
268
|
+
if (!exists) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
return paramCheck({
|
|
272
|
+
rawValue: args[i],
|
|
273
|
+
operator,
|
|
274
|
+
comparison: paramCondition.comparison,
|
|
275
|
+
caseSensitive: paramCondition.caseSensitive
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
static genForwardedArgs(args, forwardInstructions, intoBuffer) {
|
|
281
|
+
const buffer = intoBuffer ?? [];
|
|
282
|
+
for (let i = 0; i < forwardInstructions.length; i++) {
|
|
283
|
+
let fwdI = forwardInstructions[i];
|
|
284
|
+
let { from, to } = fwdI;
|
|
285
|
+
if (isNaN(from) !== isNaN(to)) {
|
|
286
|
+
// something wrong with this instruction. ignore.
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
else if (isNaN(from)) {
|
|
290
|
+
// no params should be forwarded. clear and send
|
|
291
|
+
buffer.splice(0, buffer.length);
|
|
292
|
+
return buffer;
|
|
293
|
+
}
|
|
294
|
+
let fromIndex = InternalEventMap.calculateIndex(from, args);
|
|
295
|
+
let toIndex = InternalEventMap.calculateIndex(to, args);
|
|
296
|
+
if (fromIndex < 0 || fromIndex >= args.length) {
|
|
297
|
+
// invalid argument. ignore.
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
if (toIndex < 0 || toIndex >= args.length) {
|
|
301
|
+
// invalid argument. ignore.
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
// TODO: improve this algorithm (too tired atm)
|
|
305
|
+
let offset = fromIndex < toIndex ? 1 : -1;
|
|
306
|
+
let curIndex = fromIndex;
|
|
307
|
+
let counter = 0;
|
|
308
|
+
let remainingTimes = Math.abs(fromIndex - toIndex) + 1;
|
|
309
|
+
while (counter < remainingTimes) {
|
|
310
|
+
buffer.push(args[curIndex]);
|
|
311
|
+
curIndex += offset;
|
|
312
|
+
counter += 1;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return buffer;
|
|
316
|
+
}
|
|
317
|
+
static calculateIndex(forwardIndex, args) {
|
|
318
|
+
if (forwardIndex === Number.NEGATIVE_INFINITY) {
|
|
319
|
+
return 0;
|
|
320
|
+
}
|
|
321
|
+
else if (forwardIndex === Number.POSITIVE_INFINITY) {
|
|
322
|
+
return args.length - 1;
|
|
323
|
+
}
|
|
324
|
+
if (forwardIndex < 0) {
|
|
325
|
+
forwardIndex = args.length + forwardIndex;
|
|
326
|
+
}
|
|
327
|
+
return forwardIndex | 0;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=EvForwarder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvForwarder.js","sourceRoot":"","sources":["../../../../src/mapped/EvForwarder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./EvForwarder.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mapped/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { EvParamCondition, EvParamForwardInstruction, EvParamOperator } from "./EvForwarder.js";
|
|
2
|
+
export declare function parseEvParamConditionStr(str: string): EvParamCondition;
|
|
3
|
+
export declare function parseEvParamForwardInstructionStr(str: string): EvParamForwardInstruction;
|
|
4
|
+
export type ParamCheckOptions = {
|
|
5
|
+
operator: EvParamOperator;
|
|
6
|
+
rawValue: string;
|
|
7
|
+
comparison: string[];
|
|
8
|
+
caseSensitive: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function paramCheck(options: ParamCheckOptions): boolean;
|
|
11
|
+
type InternalParamCheckCallbackOptions = Pick<ParamCheckOptions, "rawValue" | "comparison" | "caseSensitive">;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function paramCheck_EqualTo({ rawValue, comparison, caseSensitive }: InternalParamCheckCallbackOptions): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export declare function paramCheck_NotEqualTo({ rawValue, comparison, caseSensitive }: InternalParamCheckCallbackOptions): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function paramCheck_StartsWith({ rawValue, comparison, caseSensitive }: InternalParamCheckCallbackOptions): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export declare function paramCheck_EndsWith({ rawValue, comparison, caseSensitive }: InternalParamCheckCallbackOptions): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function paramCheck_Contains({ rawValue, comparison, caseSensitive }: InternalParamCheckCallbackOptions): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare function paramCheck_MatchesWord(options: InternalParamCheckCallbackOptions): boolean;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
const CASE_SENSITIVE_BY_DEFAULT = true;
|
|
2
|
+
const EV_PARAM_INFO_NO_SUFFIX_PATTERN = /^\s*(\d+)((?:_)|(?:!))?\s*$/;
|
|
3
|
+
const EV_PARAM_INFO_STANDARD_PATTERN = /^\s*(\d+)\s*((?:=)|(?:!=)|(?:\^=)|(?:\$=)|(?:\*=)|(?:~=))?(.*)$/;
|
|
4
|
+
const STANDARD_SUFFIX_PATTERN = /^\s*\"(.*)\"(\s*([iIsS])\s*)?$/;
|
|
5
|
+
function extractEvParamConditionSuffixInfo(suffixArg) {
|
|
6
|
+
let rawSuffix = suffixArg || "";
|
|
7
|
+
const suffixMatch = rawSuffix.match(STANDARD_SUFFIX_PATTERN);
|
|
8
|
+
if (suffixMatch) {
|
|
9
|
+
let actualSuffixStr = suffixMatch[1];
|
|
10
|
+
let sensitivityFlag = suffixMatch[3];
|
|
11
|
+
sensitivityFlag = sensitivityFlag && sensitivityFlag.toLowerCase();
|
|
12
|
+
return {
|
|
13
|
+
suffix: actualSuffixStr,
|
|
14
|
+
sensitivityFlag: sensitivityFlag || null
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
suffix: rawSuffix,
|
|
19
|
+
sensitivityFlag: null
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function parseEvParamConditionStr(str) {
|
|
23
|
+
if (!str) {
|
|
24
|
+
throw `Empty string provided`;
|
|
25
|
+
}
|
|
26
|
+
let match = str.match(EV_PARAM_INFO_NO_SUFFIX_PATTERN);
|
|
27
|
+
match = match || str.match(EV_PARAM_INFO_STANDARD_PATTERN);
|
|
28
|
+
if (!match) {
|
|
29
|
+
throw `invalid string '${str}' provided`;
|
|
30
|
+
}
|
|
31
|
+
const indexVal = parseInt(match[1]);
|
|
32
|
+
const operatorArg = match[2];
|
|
33
|
+
let suffixArg = match[3];
|
|
34
|
+
if (!operatorArg || operatorArg === "_" || operatorArg === "!") {
|
|
35
|
+
if (suffixArg) {
|
|
36
|
+
throw `invalid string '${str}' provided - suffix not compatible with operator`;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
index: indexVal,
|
|
40
|
+
operator: operatorArg || "_",
|
|
41
|
+
caseSensitive: CASE_SENSITIVE_BY_DEFAULT,
|
|
42
|
+
comparison: []
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const suffixInfo = extractEvParamConditionSuffixInfo(suffixArg);
|
|
46
|
+
const rawSuffix = suffixInfo.suffix;
|
|
47
|
+
let comparison;
|
|
48
|
+
if (operatorArg === "~=") {
|
|
49
|
+
comparison = rawSuffix.split(" ").filter(f => !!f);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
comparison = [rawSuffix];
|
|
53
|
+
}
|
|
54
|
+
let caseSensitive;
|
|
55
|
+
if (suffixInfo.sensitivityFlag) {
|
|
56
|
+
caseSensitive = suffixInfo.sensitivityFlag === "s";
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
caseSensitive = CASE_SENSITIVE_BY_DEFAULT;
|
|
60
|
+
}
|
|
61
|
+
const ret = {
|
|
62
|
+
index: indexVal,
|
|
63
|
+
operator: operatorArg,
|
|
64
|
+
caseSensitive,
|
|
65
|
+
comparison
|
|
66
|
+
};
|
|
67
|
+
return ret;
|
|
68
|
+
}
|
|
69
|
+
const EV_PARAM_FORWARD_INSTRUCTION_STANDARD_PATTERN = /^(-?\d+)(?:(?:-(-?\d+))?|([\-\+])?)$/;
|
|
70
|
+
export function parseEvParamForwardInstructionStr(str) {
|
|
71
|
+
// strip all whitespace
|
|
72
|
+
let strippedStr = (str || "").replace(/\s/g, "");
|
|
73
|
+
if (strippedStr === "!") {
|
|
74
|
+
// do no parameters.
|
|
75
|
+
return {
|
|
76
|
+
from: NaN,
|
|
77
|
+
to: NaN
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
let match = strippedStr.match(EV_PARAM_FORWARD_INSTRUCTION_STANDARD_PATTERN);
|
|
81
|
+
if (!match) {
|
|
82
|
+
throw `invalid string '${str}' provided`;
|
|
83
|
+
}
|
|
84
|
+
let paramA = parseInt(match[1]);
|
|
85
|
+
let paramB;
|
|
86
|
+
if (match[2]) {
|
|
87
|
+
paramB = parseInt(match[2]);
|
|
88
|
+
}
|
|
89
|
+
else if (match[3]) {
|
|
90
|
+
// match[3] can only be '+' or '-'
|
|
91
|
+
switch (match[3]) {
|
|
92
|
+
case "-": {
|
|
93
|
+
paramB = Number.NEGATIVE_INFINITY;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
default: {
|
|
97
|
+
paramB = Number.POSITIVE_INFINITY;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// string was only a digit.
|
|
103
|
+
paramB = paramA;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
from: paramA,
|
|
107
|
+
to: paramB
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export function paramCheck(options) {
|
|
111
|
+
const { operator, ...passThroughOptions } = options;
|
|
112
|
+
const relFunc = PARAM_CHECK_FUNCTION_MAP[operator];
|
|
113
|
+
if (!relFunc) {
|
|
114
|
+
throw `Unable to handle operator: '${operator}'`;
|
|
115
|
+
}
|
|
116
|
+
return relFunc(passThroughOptions);
|
|
117
|
+
}
|
|
118
|
+
const PARAM_CHECK_FUNCTION_MAP = {
|
|
119
|
+
// will always be null (as check doesn't apply to comparison vals)
|
|
120
|
+
_: null,
|
|
121
|
+
// will always be null (as check doesn't apply to comparison vals)
|
|
122
|
+
"!": null,
|
|
123
|
+
"=": paramCheck_EqualTo,
|
|
124
|
+
"!=": paramCheck_NotEqualTo,
|
|
125
|
+
"^=": paramCheck_StartsWith,
|
|
126
|
+
"$=": paramCheck_EndsWith,
|
|
127
|
+
"*=": paramCheck_Contains,
|
|
128
|
+
"~=": paramCheck_MatchesWord
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
export function paramCheck_EqualTo({ rawValue, comparison, caseSensitive }) {
|
|
134
|
+
rawValue = rawValue || "";
|
|
135
|
+
if (comparison && comparison.length) {
|
|
136
|
+
if (!caseSensitive) {
|
|
137
|
+
rawValue = rawValue.toLowerCase();
|
|
138
|
+
}
|
|
139
|
+
for (let i = 0; i < comparison.length; i++) {
|
|
140
|
+
let c = comparison[i];
|
|
141
|
+
if (!caseSensitive && c) {
|
|
142
|
+
c = c.toLowerCase();
|
|
143
|
+
}
|
|
144
|
+
if (c === rawValue) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
export function paramCheck_NotEqualTo({ rawValue, comparison, caseSensitive }) {
|
|
155
|
+
rawValue = rawValue || "";
|
|
156
|
+
if (comparison && comparison.length) {
|
|
157
|
+
if (!caseSensitive) {
|
|
158
|
+
rawValue = rawValue.toLowerCase();
|
|
159
|
+
}
|
|
160
|
+
for (let i = 0; i < comparison.length; i++) {
|
|
161
|
+
let c = comparison[i];
|
|
162
|
+
if (!caseSensitive && c) {
|
|
163
|
+
c = c.toLowerCase();
|
|
164
|
+
}
|
|
165
|
+
if (c === rawValue) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @internal
|
|
175
|
+
*/
|
|
176
|
+
export function paramCheck_StartsWith({ rawValue, comparison, caseSensitive }) {
|
|
177
|
+
rawValue = rawValue || "";
|
|
178
|
+
if (comparison && comparison.length) {
|
|
179
|
+
if (!caseSensitive) {
|
|
180
|
+
rawValue = rawValue.toLowerCase();
|
|
181
|
+
}
|
|
182
|
+
for (let i = 0; i < comparison.length; i++) {
|
|
183
|
+
let c = comparison[i] || "";
|
|
184
|
+
if (!caseSensitive && c) {
|
|
185
|
+
c = c.toLowerCase();
|
|
186
|
+
}
|
|
187
|
+
if (c.startsWith(rawValue)) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
export function paramCheck_EndsWith({ rawValue, comparison, caseSensitive }) {
|
|
198
|
+
rawValue = rawValue || "";
|
|
199
|
+
if (comparison && comparison.length) {
|
|
200
|
+
if (!caseSensitive) {
|
|
201
|
+
rawValue = rawValue.toLowerCase();
|
|
202
|
+
}
|
|
203
|
+
for (let i = 0; i < comparison.length; i++) {
|
|
204
|
+
let c = comparison[i] || "";
|
|
205
|
+
if (!caseSensitive && c) {
|
|
206
|
+
c = c.toLowerCase();
|
|
207
|
+
}
|
|
208
|
+
if (c.endsWith(rawValue)) {
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* @internal
|
|
217
|
+
*/
|
|
218
|
+
export function paramCheck_Contains({ rawValue, comparison, caseSensitive }) {
|
|
219
|
+
rawValue = rawValue || "";
|
|
220
|
+
if (comparison && comparison.length) {
|
|
221
|
+
if (!caseSensitive) {
|
|
222
|
+
rawValue = rawValue.toLowerCase();
|
|
223
|
+
}
|
|
224
|
+
for (let i = 0; i < comparison.length; i++) {
|
|
225
|
+
let c = comparison[i] || "";
|
|
226
|
+
if (!caseSensitive && c) {
|
|
227
|
+
c = c.toLowerCase();
|
|
228
|
+
}
|
|
229
|
+
if (c.indexOf(rawValue) !== -1) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @internal
|
|
238
|
+
*/
|
|
239
|
+
export function paramCheck_MatchesWord(options) {
|
|
240
|
+
return paramCheck_EqualTo(options);
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/mapped/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.d(t,{default:()=>d});var r={};e.r(r),e.d(r,{EvForwarder:()=>h,EvParamOperator:()=>f});class s{_safeMode;_listeners;_argProcessors;_logger;constructor(){this._safeMode=!0,this._listeners={},this._argProcessors={}}trigger(e){if(!e)return!1;if(!this._listeners[e])return!1;let t;if(t=arguments.length<2?[]:arguments[1],this._argProcessors[e]){let r;try{r=this._argProcessors[e].processor.apply(this._argProcessors[e].context,[e,t])}catch(t){if(!this._safeMode)throw t;return this._logger&&this._logger.error(`Arg processor error for '${e}'`,t),!1}if(!r)return!1;if(!0===r);else{if(!Array.isArray(r)){if(!this._safeMode)throw`Invalid result '${r}' from arg processor for '${e}'`;return this._logger&&this._logger.error(`Invalid result from arg processor for '${e}'`,r),!1}t=r}}let r=this._listeners[e].slice(0);for(let s=0;s<r.length;s++){let n=r[s],i=!1,o=this._listeners[e]?this._listeners[e].length:0;for(let t=0;t<o;t++)if(n==this._listeners[e][t]){i=!0;break}if(i)try{n.handler.apply(n.context,t)}catch(e){if(!this._safeMode)throw e}}return!0}on(e,t,r){return!!e&&!!t&&(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push({handler:t,context:r}),!0)}off(e,t,r){if(!e)return!1;if(!t)return!1;const s=this._listeners[e];if(!s)return!1;let n=-1;for(let e=0;e<s.length;e++)if(s[e].handler===t&&s[e].context===r){n=e;break}return-1!==n&&(s.splice(n,1),s.length||delete this._listeners[e],!0)}register(e,t,r,s){return arguments.length>3?this[e?"on":"off"](t,r,s):this[e?"on":"off"](t,r)}hasCustomArgumentProcessor(e){return!!this._argProcessors[e]}setCustomArgumentProcessor(e,t,r){return!(!e||(t?(this._argProcessors[e]={processor:t,context:r},0):!this.hasCustomArgumentProcessor(e)||(delete this._argProcessors[e],0)))}get ignoreErrors(){return this._safeMode}set ignoreErrors(e){this._safeMode=!!e}get logger(){return this._logger??null}set logger(e){e?this._logger=e:delete this._logger}}const n=!0,i=/^\s*(\d+)((?:_)|(?:!))?\s*$/,o=/^\s*(\d+)\s*((?:=)|(?:!=)|(?:\^=)|(?:\$=)|(?:\*=)|(?:~=))?(.*)$/,a=/^\s*\"(.*)\"(\s*([iIsS])\s*)?$/;const l=/^(-?\d+)(?:(?:-(-?\d+))?|([\-\+])?)$/,c={_:null,"!":null,"=":u,"!=":function({rawValue:e,comparison:t,caseSensitive:r}){if(e=e||"",t&&t.length){r||(e=e.toLowerCase());for(let s=0;s<t.length;s++){let n=t[s];if(!r&&n&&(n=n.toLowerCase()),n===e)return!1}return!0}return!1},"^=":function({rawValue:e,comparison:t,caseSensitive:r}){if(e=e||"",t&&t.length){r||(e=e.toLowerCase());for(let s=0;s<t.length;s++){let n=t[s]||"";if(!r&&n&&(n=n.toLowerCase()),n.startsWith(e))return!0}}return!1},"$=":function({rawValue:e,comparison:t,caseSensitive:r}){if(e=e||"",t&&t.length){r||(e=e.toLowerCase());for(let s=0;s<t.length;s++){let n=t[s]||"";if(!r&&n&&(n=n.toLowerCase()),n.endsWith(e))return!0}}return!1},"*=":function({rawValue:e,comparison:t,caseSensitive:r}){if(e=e||"",t&&t.length){r||(e=e.toLowerCase());for(let s=0;s<t.length;s++){let n=t[s]||"";if(!r&&n&&(n=n.toLowerCase()),-1!==n.indexOf(e))return!0}}return!1},"~=":function(e){return u(e)}};function u({rawValue:e,comparison:t,caseSensitive:r}){if(e=e||"",t&&t.length){r||(e=e.toLowerCase());for(let s=0;s<t.length;s++){let n=t[s];if(!r&&n&&(n=n.toLowerCase()),n===e)return!0}}return!1}var f;!function(e){e.EXISTS="_",e.NOT_EXISTS="!",e.EQUAL="=",e.NOT_EQUAL="!=",e.STARTS_WITH="^=",e.ENDS_WITH="$=",e.CONTAINS="*=",e.MATCHES_WORD="~="}(f||(f={}));class h{_evReceiver;_evMgr;_evMaps;_active;constructor(e){this._evReceiver=e.eventReceiver,this._evMgr=new s,this._evMaps=(e.eventMaps||[]).map(e=>new g({evMap:e,sender:this._evMgr})),(e.autoEnable??1)&&(this.active=!0)}get active(){return!!this._active}set active(e){delete this._active,e&&(this._active=!0),this._refreshListeners()}on(e,t,r){return this._evMgr.on.apply(this._evMgr,arguments)}off(e,t,r){return this._evMgr.off.apply(this._evMgr,arguments)}register(e,t,r,s){return this._evMgr.register.apply(this._evMgr,arguments)}_refreshListeners(){let e=this._evMaps,t=this._evReceiver;for(let r=0;r<e.length;r++){let s=e[r];if(!s)continue;let n=s.evMap.eventName,i=s.handler;t.off(n,i),this._active&&t.on(n,i)}}}class g{evMap;handler;constructor(e){this.evMap=g.extractMap(e.evMap),this.handler=g.generateDefaultHandler(this,e.sender)}static getforwardedEventName(e){return e.forwardedEventName??e.eventName}static extractMap(e){return{eventName:e.eventName,forwardedEventName:e.forwardedEventName,paramConditions:(e.paramConditions||[]).map(e=>g.extractParamCondition(e)),paramForwardInstructions:(e.paramForwardInstructions||[]).map(e=>g.extractParamForwardInstruction(e))}}static extractParamCondition(e){return"string"==typeof e?function(e){if(!e)throw"Empty string provided";let t=e.match(i);if(t=t||e.match(o),!t)throw`invalid string '${e}' provided`;const r=parseInt(t[1]),s=t[2];let l=t[3];if(!s||"_"===s||"!"===s){if(l)throw`invalid string '${e}' provided - suffix not compatible with operator`;return{index:r,operator:s||"_",caseSensitive:n,comparison:[]}}const c=function(e){let t=e||"";const r=t.match(a);if(r){let e=r[1],t=r[3];return t=t&&t.toLowerCase(),{suffix:e,sensitivityFlag:t||null}}return{suffix:t,sensitivityFlag:null}}(l),u=c.suffix;let f,h;return f="~="===s?u.split(" ").filter(e=>!!e):[u],h=c.sensitivityFlag?"s"===c.sensitivityFlag:n,{index:r,operator:s,caseSensitive:h,comparison:f}}(e):e}static extractParamForwardInstruction(e){return"string"==typeof e?function(e){let t=(e||"").replace(/\s/g,"");if("!"===t)return{from:NaN,to:NaN};let r=t.match(l);if(!r)throw`invalid string '${e}' provided`;let s,n=parseInt(r[1]);return s=r[2]?parseInt(r[2]):r[3]?"-"===r[3]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY:n,{from:n,to:s}}(e):e}static generateDefaultHandler(e,t){const r=e.evMap,s=g.getforwardedEventName(r),n=r.paramConditions,i=r.paramForwardInstructions;return function(){for(let e=0;e<n.length;e++)if(!g.runPCCheck(arguments,n[e]))return!1;let e;e=i.length?g.genForwardedArgs(arguments,i):[...arguments],t.trigger(s,e)}}static runPCCheck(e,t){let r=t.index,s=t.operator;switch(s){case f.EXISTS:return r<e.length&&r>=0;case f.NOT_EXISTS:return r>=e.length&&r>=0;default:return!!(r<e.length&&r>=0)&&function(e){const{operator:t,...r}=e,s=c[t];if(!s)throw`Unable to handle operator: '${t}'`;return s(r)}({rawValue:e[r],operator:s,comparison:t.comparison,caseSensitive:t.caseSensitive})}}static genForwardedArgs(e,t,r){const s=r??[];for(let r=0;r<t.length;r++){let n=t[r],{from:i,to:o}=n;if(isNaN(i)!==isNaN(o))continue;if(isNaN(i))return s.splice(0,s.length),s;let a=g.calculateIndex(i,e),l=g.calculateIndex(o,e);if(a<0||a>=e.length)continue;if(l<0||l>=e.length)continue;let c=a<l?1:-1,u=a,f=0,h=Math.abs(a-l)+1;for(;f<h;)s.push(e[u]),u+=c,f+=1}return s}static calculateIndex(e,t){return e===Number.NEGATIVE_INFINITY?0:e===Number.POSITIVE_INFINITY?t.length-1:(e<0&&(e=t.length+e),0|e)}}const d={BasicEventManager:s,mapped:r};window.evutils=t.default})();
|