@pisell/pisellos 0.0.464 → 0.0.465

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.
@@ -5,11 +5,11 @@ type EffectCallback = (payload: any) => void | Promise<void | {
5
5
  type UnsubscribeFunction = () => void;
6
6
  declare class EffectsManager {
7
7
  private listeners;
8
- on(event: string, callback: EffectCallback): UnsubscribeFunction;
8
+ on(event: string, callback: EffectCallback, force?: boolean): UnsubscribeFunction;
9
9
  only(event: string, callback: EffectCallback): UnsubscribeFunction;
10
10
  off(event: string, callback: EffectCallback): void;
11
11
  offByModuleDestroy(module: string): void;
12
- once(event: string, callback: EffectCallback): UnsubscribeFunction;
12
+ once(event: string, callback: EffectCallback, force?: boolean): UnsubscribeFunction;
13
13
  emit(event: string, payload: any): Promise<{
14
14
  status: boolean;
15
15
  data: any;
@@ -1,6 +1,10 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
5
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
4
8
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
9
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
6
10
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -22,9 +26,12 @@ var EffectsManager = /*#__PURE__*/function () {
22
26
  value: function on(event, callback) {
23
27
  var _this$listeners$get,
24
28
  _this = this;
25
- if (!this.listeners.has(event)) this.listeners.set(event, new Set());
26
- (_this$listeners$get = this.listeners.get(event)) === null || _this$listeners$get === void 0 || _this$listeners$get.add(callback);
27
-
29
+ var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
30
+ if (!this.listeners.has(event)) this.listeners.set(event, []);
31
+ (_this$listeners$get = this.listeners.get(event)) === null || _this$listeners$get === void 0 || _this$listeners$get.push({
32
+ callback: callback,
33
+ force: force
34
+ });
28
35
  // 返回取消函数
29
36
  return function () {
30
37
  _this.off(event, callback);
@@ -35,18 +42,16 @@ var EffectsManager = /*#__PURE__*/function () {
35
42
  }, {
36
43
  key: "only",
37
44
  value: function only(event, callback) {
38
- var _this$listeners$get3,
45
+ var _this$listeners$get2,
39
46
  _this2 = this;
40
47
  // 清除该事件的所有现有监听器
41
- if (this.listeners.has(event)) {
42
- var _this$listeners$get2;
43
- (_this$listeners$get2 = this.listeners.get(event)) === null || _this$listeners$get2 === void 0 || _this$listeners$get2.clear();
44
- } else {
45
- this.listeners.set(event, new Set());
46
- }
48
+ this.listeners.set(event, []);
47
49
 
48
50
  // 添加新的监听器
49
- (_this$listeners$get3 = this.listeners.get(event)) === null || _this$listeners$get3 === void 0 || _this$listeners$get3.add(callback);
51
+ (_this$listeners$get2 = this.listeners.get(event)) === null || _this$listeners$get2 === void 0 || _this$listeners$get2.push({
52
+ callback: callback,
53
+ force: false
54
+ });
50
55
 
51
56
  // 返回取消函数
52
57
  return function () {
@@ -56,8 +61,14 @@ var EffectsManager = /*#__PURE__*/function () {
56
61
  }, {
57
62
  key: "off",
58
63
  value: function off(event, callback) {
59
- var _this$listeners$get4;
60
- (_this$listeners$get4 = this.listeners.get(event)) === null || _this$listeners$get4 === void 0 || _this$listeners$get4.delete(callback);
64
+ var eventListeners = this.listeners.get(event);
65
+ if (!(eventListeners !== null && eventListeners !== void 0 && eventListeners.length)) return;
66
+ for (var index = eventListeners.length - 1; index >= 0; index--) {
67
+ if (eventListeners[index].callback !== callback) continue;
68
+ eventListeners.splice(index, 1);
69
+ break;
70
+ }
71
+ if (!eventListeners.length) this.listeners.delete(event);
61
72
  }
62
73
 
63
74
  // 模块销毁时,删除所有以模块名开头的监听
@@ -75,6 +86,7 @@ var EffectsManager = /*#__PURE__*/function () {
75
86
  key: "once",
76
87
  value: function once(event, callback) {
77
88
  var _this4 = this;
89
+ var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
78
90
  var wrapper = /*#__PURE__*/function () {
79
91
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(payload) {
80
92
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -96,18 +108,19 @@ var EffectsManager = /*#__PURE__*/function () {
96
108
  }();
97
109
 
98
110
  // 调用修改后的on方法,它会返回取消函数
99
- return this.on(event, wrapper);
111
+ return this.on(event, wrapper, force);
100
112
  }
101
113
  }, {
102
114
  key: "emit",
103
115
  value: function () {
104
116
  var _emit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event, payload) {
105
- var callbacks;
117
+ var _reverse$find;
118
+ var callbacks, forceCallbacks, topNormalListener, targetCallbacks;
106
119
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
107
120
  while (1) switch (_context3.prev = _context3.next) {
108
121
  case 0:
109
122
  callbacks = this.listeners.get(event);
110
- if (callbacks) {
123
+ if (callbacks !== null && callbacks !== void 0 && callbacks.length) {
111
124
  _context3.next = 3;
112
125
  break;
113
126
  }
@@ -116,6 +129,15 @@ var EffectsManager = /*#__PURE__*/function () {
116
129
  data: []
117
130
  });
118
131
  case 3:
132
+ forceCallbacks = callbacks.filter(function (listener) {
133
+ return listener.force;
134
+ }).map(function (listener) {
135
+ return listener.callback;
136
+ });
137
+ topNormalListener = (_reverse$find = _toConsumableArray(callbacks).reverse().find(function (listener) {
138
+ return !listener.force;
139
+ })) === null || _reverse$find === void 0 ? void 0 : _reverse$find.callback;
140
+ targetCallbacks = topNormalListener ? [].concat(_toConsumableArray(forceCallbacks), [topNormalListener]) : forceCallbacks;
119
141
  return _context3.abrupt("return", new Promise( /*#__PURE__*/function () {
120
142
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve) {
121
143
  var res, _iterator, _step, cb, result, isAllPass;
@@ -123,7 +145,7 @@ var EffectsManager = /*#__PURE__*/function () {
123
145
  while (1) switch (_context2.prev = _context2.next) {
124
146
  case 0:
125
147
  res = [];
126
- _iterator = _createForOfIteratorHelper(callbacks);
148
+ _iterator = _createForOfIteratorHelper(targetCallbacks);
127
149
  _context2.prev = 2;
128
150
  _iterator.s();
129
151
  case 4:
@@ -171,7 +193,7 @@ var EffectsManager = /*#__PURE__*/function () {
171
193
  return _ref2.apply(this, arguments);
172
194
  };
173
195
  }()));
174
- case 4:
196
+ case 7:
175
197
  case "end":
176
198
  return _context3.stop();
177
199
  }
@@ -14,9 +14,9 @@ export declare class BaseModule {
14
14
  store: any;
15
15
  cacheKey: string[];
16
16
  }): void;
17
- effectsOn(eventType: string, callback: (payload: any) => void): () => void;
17
+ effectsOn(eventType: string, callback: (payload: any) => void): void;
18
18
  effectsOff(eventType: string, callback: (payload: any) => void): void;
19
- effectsOnce(eventType: string, callback: (payload: any) => void): () => void;
19
+ effectsOnce(eventType: string, callback: (payload: any) => void): void;
20
20
  effectsEmit(eventType: string, payload: any): Promise<{
21
21
  status: boolean;
22
22
  data: any;
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 1 | 2 | 3 | 5 | 4 | 6;
314
+ weekNum: 0 | 2 | 1 | 3 | 5 | 4 | 6;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -123,7 +123,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
123
123
  * 获取当前的客户搜索条件
124
124
  * @returns 当前搜索条件
125
125
  */
126
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
126
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
127
127
  /**
128
128
  * 获取客户列表状态(包含滚动加载相关状态)
129
129
  * @returns 客户状态
@@ -38,9 +38,9 @@ export interface PisellCore {
38
38
  getModuleExports: <T = any>(name: string) => T | null;
39
39
  hasModule: (name: string) => boolean;
40
40
  effects: {
41
- on: (event: string, callback: (payload: any) => void) => () => void;
42
- once: (event: string, callback: (payload: any) => void) => () => void;
43
41
  only: (event: string, callback: (payload: any) => void) => () => void;
42
+ on: (event: string, callback: (payload: any) => void, force?: boolean) => void;
43
+ once: (event: string, callback: (payload: any) => void, force?: boolean) => void;
44
44
  off: (event: string, callback: (payload: any) => void) => void;
45
45
  emit: (event: string, payload: any, value?: any) => Promise<{
46
46
  status: boolean;
@@ -5,11 +5,11 @@ type EffectCallback = (payload: any) => void | Promise<void | {
5
5
  type UnsubscribeFunction = () => void;
6
6
  declare class EffectsManager {
7
7
  private listeners;
8
- on(event: string, callback: EffectCallback): UnsubscribeFunction;
8
+ on(event: string, callback: EffectCallback, force?: boolean): UnsubscribeFunction;
9
9
  only(event: string, callback: EffectCallback): UnsubscribeFunction;
10
10
  off(event: string, callback: EffectCallback): void;
11
11
  offByModuleDestroy(module: string): void;
12
- once(event: string, callback: EffectCallback): UnsubscribeFunction;
12
+ once(event: string, callback: EffectCallback, force?: boolean): UnsubscribeFunction;
13
13
  emit(event: string, payload: any): Promise<{
14
14
  status: boolean;
15
15
  data: any;
@@ -26,31 +26,36 @@ var EffectsManager = class {
26
26
  constructor() {
27
27
  this.listeners = /* @__PURE__ */ new Map();
28
28
  }
29
- on(event, callback) {
29
+ on(event, callback, force = false) {
30
30
  var _a;
31
31
  if (!this.listeners.has(event))
32
- this.listeners.set(event, /* @__PURE__ */ new Set());
33
- (_a = this.listeners.get(event)) == null ? void 0 : _a.add(callback);
32
+ this.listeners.set(event, []);
33
+ (_a = this.listeners.get(event)) == null ? void 0 : _a.push({ callback, force });
34
34
  return () => {
35
35
  this.off(event, callback);
36
36
  };
37
37
  }
38
38
  // 设置单例监听器,只能存在一个,新的会替换旧的
39
39
  only(event, callback) {
40
- var _a, _b;
41
- if (this.listeners.has(event)) {
42
- (_a = this.listeners.get(event)) == null ? void 0 : _a.clear();
43
- } else {
44
- this.listeners.set(event, /* @__PURE__ */ new Set());
45
- }
46
- (_b = this.listeners.get(event)) == null ? void 0 : _b.add(callback);
40
+ var _a;
41
+ this.listeners.set(event, []);
42
+ (_a = this.listeners.get(event)) == null ? void 0 : _a.push({ callback, force: false });
47
43
  return () => {
48
44
  this.off(event, callback);
49
45
  };
50
46
  }
51
47
  off(event, callback) {
52
- var _a;
53
- (_a = this.listeners.get(event)) == null ? void 0 : _a.delete(callback);
48
+ const eventListeners = this.listeners.get(event);
49
+ if (!(eventListeners == null ? void 0 : eventListeners.length))
50
+ return;
51
+ for (let index = eventListeners.length - 1; index >= 0; index--) {
52
+ if (eventListeners[index].callback !== callback)
53
+ continue;
54
+ eventListeners.splice(index, 1);
55
+ break;
56
+ }
57
+ if (!eventListeners.length)
58
+ this.listeners.delete(event);
54
59
  }
55
60
  // 模块销毁时,删除所有以模块名开头的监听
56
61
  offByModuleDestroy(module2) {
@@ -60,20 +65,24 @@ var EffectsManager = class {
60
65
  }
61
66
  });
62
67
  }
63
- once(event, callback) {
68
+ once(event, callback, force = false) {
64
69
  const wrapper = async (payload) => {
65
70
  await callback(payload);
66
71
  this.off(event, wrapper);
67
72
  };
68
- return this.on(event, wrapper);
73
+ return this.on(event, wrapper, force);
69
74
  }
70
75
  async emit(event, payload) {
76
+ var _a;
71
77
  const callbacks = this.listeners.get(event);
72
- if (!callbacks)
78
+ if (!(callbacks == null ? void 0 : callbacks.length))
73
79
  return { status: true, data: [] };
80
+ const forceCallbacks = callbacks.filter((listener) => listener.force).map((listener) => listener.callback);
81
+ const topNormalListener = (_a = [...callbacks].reverse().find((listener) => !listener.force)) == null ? void 0 : _a.callback;
82
+ const targetCallbacks = topNormalListener ? [...forceCallbacks, topNormalListener] : forceCallbacks;
74
83
  return new Promise(async (resolve) => {
75
84
  const res = [];
76
- for (const cb of callbacks) {
85
+ for (const cb of targetCallbacks) {
77
86
  const result = await cb(payload);
78
87
  if (result !== void 0 && typeof result === "object" && "status" in result) {
79
88
  res.push(result);
@@ -14,9 +14,9 @@ export declare class BaseModule {
14
14
  store: any;
15
15
  cacheKey: string[];
16
16
  }): void;
17
- effectsOn(eventType: string, callback: (payload: any) => void): () => void;
17
+ effectsOn(eventType: string, callback: (payload: any) => void): void;
18
18
  effectsOff(eventType: string, callback: (payload: any) => void): void;
19
- effectsOnce(eventType: string, callback: (payload: any) => void): () => void;
19
+ effectsOnce(eventType: string, callback: (payload: any) => void): void;
20
20
  effectsEmit(eventType: string, payload: any): Promise<{
21
21
  status: boolean;
22
22
  data: any;
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 1 | 2 | 3 | 5 | 4 | 6;
314
+ weekNum: 0 | 2 | 1 | 3 | 5 | 4 | 6;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -123,7 +123,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
123
123
  * 获取当前的客户搜索条件
124
124
  * @returns 当前搜索条件
125
125
  */
126
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
126
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
127
127
  /**
128
128
  * 获取客户列表状态(包含滚动加载相关状态)
129
129
  * @returns 客户状态
@@ -38,9 +38,9 @@ export interface PisellCore {
38
38
  getModuleExports: <T = any>(name: string) => T | null;
39
39
  hasModule: (name: string) => boolean;
40
40
  effects: {
41
- on: (event: string, callback: (payload: any) => void) => () => void;
42
- once: (event: string, callback: (payload: any) => void) => () => void;
43
41
  only: (event: string, callback: (payload: any) => void) => () => void;
42
+ on: (event: string, callback: (payload: any) => void, force?: boolean) => void;
43
+ once: (event: string, callback: (payload: any) => void, force?: boolean) => void;
44
44
  off: (event: string, callback: (payload: any) => void) => void;
45
45
  emit: (event: string, payload: any, value?: any) => Promise<{
46
46
  status: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.464",
4
+ "version": "0.0.465",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",