@cclr/react 0.1.17 → 0.1.18

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/lib/cjs/index.js CHANGED
@@ -45,12 +45,12 @@ function _iterableToArrayLimit(r, l) {
45
45
  i,
46
46
  u,
47
47
  a = [],
48
- f = !0,
49
- o = !1;
48
+ f = true,
49
+ o = false;
50
50
  try {
51
51
  if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
52
52
  } catch (r) {
53
- o = !0, n = r;
53
+ o = true, n = r;
54
54
  } finally {
55
55
  try {
56
56
  if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
@@ -99,9 +99,12 @@ function useCallbackRef(fn, deps) {
99
99
  }, _toConsumableArray(deps || []));
100
100
  }
101
101
 
102
- Function.prototype.call.bind(Object.prototype.hasOwnProperty);
103
- var t = Function.prototype.call.bind(Object.prototype.toString),
104
- r = {
102
+ var n = function n(_n, t, r) {
103
+ if (r) for (var e = _n.length - 1; e >= 0; e--) t(_n[e], e, _n);else for (var o = 0; o < _n.length; o++) t(_n[o], o, _n);
104
+ },
105
+ r = Function.prototype.call.bind(Object.prototype.hasOwnProperty),
106
+ e = Function.prototype.call.bind(Object.prototype.toString),
107
+ o = {
105
108
  boolean: "boolean",
106
109
  undefined: "undefined",
107
110
  number: "number",
@@ -118,98 +121,230 @@ Function.prototype.call.bind(Object.prototype.hasOwnProperty);
118
121
  "[object File]": "file",
119
122
  "[object ArrayBuffer]": "arrayBuffer"
120
123
  };
121
- function e(n) {
122
- return r[typeof n] || r[t(n)] || (n ? "object" : "null");
124
+ function u(n) {
125
+ return o[typeof n] || o[e(n)] || (n ? "object" : "null");
123
126
  }
124
- function y$1(n) {
125
- return "function" === e(n);
127
+ function v$1(n) {
128
+ return "function" === u(n);
126
129
  }
127
130
 
128
- function c(t, r) {
129
- (null == r || r > t.length) && (r = t.length);
130
- for (var n = 0, e = Array(r); n < r; n++) e[n] = t[n];
131
+ /**
132
+ * 仅执行一次
133
+ * @param fun 函数
134
+ * @returns
135
+ */
136
+ var useOnceFun = function useOnceFun(fun) {
137
+ var ref = react.useRef(false);
138
+ if (ref.current) return;
139
+ ref.current = true;
140
+ fun();
141
+ };
142
+
143
+ /**
144
+ * 可以传函数的 useRef,
145
+ * 为了解决 useRef 初始化,调用运算复杂函数的问题
146
+ * @param initFun 初始化函数
147
+ * @returns
148
+ */
149
+ var useRefPro = function useRefPro(initFun) {
150
+ var ref = react.useRef();
151
+ useOnceFun(function () {
152
+ ref.current = v$1(initFun) ? initFun() : initFun;
153
+ });
154
+ return ref;
155
+ };
156
+
157
+ /**
158
+ * 受控组件的值管理
159
+ */
160
+ var useControl = function useControl(params, comptDefaultValue) {
161
+ var defaultValue = params.defaultValue,
162
+ onChange = params.onChange;
163
+ var ref = useRefPro(function () {
164
+ return {
165
+ isControl: r(params, 'value')
166
+ };
167
+ });
168
+ var _useState = react.useState(ref.current.isControl ? params.value : defaultValue || comptDefaultValue),
169
+ _useState2 = _slicedToArray(_useState, 2),
170
+ value = _useState2[0],
171
+ setValue = _useState2[1];
172
+ return [ref.current.isControl ? params.value : value, function (value) {
173
+ if (!ref.current.isControl) {
174
+ setValue(value);
175
+ }
176
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
177
+ args[_key - 1] = arguments[_key];
178
+ }
179
+ return onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, [value].concat(args));
180
+ }];
181
+ };
182
+
183
+ function l(t, n) {
184
+ (null == n || n > t.length) && (n = t.length);
185
+ for (var r = 0, e = Array(n); r < n; r++) e[r] = t[r];
131
186
  return e;
132
187
  }
133
- function y(t, r) {
134
- return y = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, r) {
135
- return t.__proto__ = r, t;
136
- }, y(t, r);
188
+ function c(t, n, r) {
189
+ return n && function (t, n) {
190
+ for (var r = 0; r < n.length; r++) {
191
+ var e = n[r];
192
+ e.enumerable = e.enumerable || false, e.configurable = true, "value" in e && (e.writable = true), Object.defineProperty(t, d(e.key), e);
193
+ }
194
+ }(t.prototype, n), Object.defineProperty(t, "prototype", {
195
+ writable: false
196
+ }), t;
197
+ }
198
+ function f(t, n, r) {
199
+ return (n = d(n)) in t ? Object.defineProperty(t, n, {
200
+ value: r,
201
+ enumerable: true,
202
+ configurable: true,
203
+ writable: true
204
+ }) : t[n] = r, t;
137
205
  }
138
- function h(t) {
206
+ function h(t, n) {
207
+ return h = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, n) {
208
+ return t.__proto__ = n, t;
209
+ }, h(t, n);
210
+ }
211
+ function v(t) {
139
212
  return function (t) {
140
- if (Array.isArray(t)) return c(t);
213
+ if (Array.isArray(t)) return l(t);
141
214
  }(t) || function (t) {
142
215
  if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t);
143
216
  }(t) || b(t) || function () {
144
217
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
145
218
  }();
146
219
  }
147
- function b(t, r) {
220
+ function d(t) {
221
+ var n = function (t, n) {
222
+ if ("object" != typeof t || !t) return t;
223
+ var r = t[Symbol.toPrimitive];
224
+ if (void 0 !== r) {
225
+ var e = r.call(t, n);
226
+ if ("object" != typeof e) return e;
227
+ throw new TypeError("@@toPrimitive must return a primitive value.");
228
+ }
229
+ return (String )(t);
230
+ }(t, "string");
231
+ return "symbol" == typeof n ? n : n + "";
232
+ }
233
+ function b(t, n) {
148
234
  if (t) {
149
- if ("string" == typeof t) return c(t, r);
150
- var n = {}.toString.call(t).slice(8, -1);
151
- return "Object" === n && t.constructor && (n = t.constructor.name), "Map" === n || "Set" === n ? Array.from(t) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(t, r) : void 0;
235
+ if ("string" == typeof t) return l(t, n);
236
+ var r = {}.toString.call(t).slice(8, -1);
237
+ return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? l(t, n) : void 0;
152
238
  }
153
239
  }
154
240
  function m() {
155
- m = function m(t, r) {
156
- return new n(t, void 0, r);
241
+ m = function m(t, n) {
242
+ return new r(t, void 0, n);
157
243
  };
158
244
  var t = RegExp.prototype,
159
- r = new WeakMap();
160
- function n(t, e, o) {
161
- var u = RegExp(t, e);
162
- return r.set(u, o || r.get(t)), y(u, n.prototype);
245
+ n = new WeakMap();
246
+ function r(t, e, o) {
247
+ var i = RegExp(t, e);
248
+ return n.set(i, o || n.get(t)), h(i, r.prototype);
163
249
  }
164
- function e(t, n) {
165
- var e = r.get(n);
166
- return Object.keys(e).reduce(function (r, n) {
167
- var o = e[n];
168
- if ("number" == typeof o) r[n] = t[o];else {
169
- for (var u = 0; void 0 === t[o[u]] && u + 1 < o.length;) u++;
170
- r[n] = t[o[u]];
250
+ function e(t, r) {
251
+ var e = n.get(r);
252
+ return Object.keys(e).reduce(function (n, r) {
253
+ var o = e[r];
254
+ if ("number" == typeof o) n[r] = t[o];else {
255
+ for (var i = 0; void 0 === t[o[i]] && i + 1 < o.length;) i++;
256
+ n[r] = t[o[i]];
171
257
  }
172
- return r;
258
+ return n;
173
259
  }, Object.create(null));
174
260
  }
175
- return function (t, r) {
176
- if ("function" != typeof r && null !== r) throw new TypeError("Super expression must either be null or a function");
177
- t.prototype = Object.create(r && r.prototype, {
261
+ return function (t, n) {
262
+ if ("function" != typeof n && null !== n) throw new TypeError("Super expression must either be null or a function");
263
+ t.prototype = Object.create(n && n.prototype, {
178
264
  constructor: {
179
265
  value: t,
180
- writable: !0,
181
- configurable: !0
266
+ writable: true,
267
+ configurable: true
182
268
  }
183
269
  }), Object.defineProperty(t, "prototype", {
184
- writable: !1
185
- }), r && y(t, r);
186
- }(n, RegExp), n.prototype.exec = function (r) {
187
- var n = t.exec.call(this, r);
188
- if (n) {
189
- n.groups = e(n, this);
190
- var o = n.indices;
270
+ writable: false
271
+ }), n && h(t, n);
272
+ }(r, RegExp), r.prototype.exec = function (n) {
273
+ var r = t.exec.call(this, n);
274
+ if (r) {
275
+ r.groups = e(r, this);
276
+ var o = r.indices;
191
277
  o && (o.groups = e(o, this));
192
278
  }
193
- return n;
194
- }, n.prototype[Symbol.replace] = function (n, o) {
279
+ return r;
280
+ }, r.prototype[Symbol.replace] = function (r, o) {
195
281
  if ("string" == typeof o) {
196
- var u = r.get(this);
197
- return t[Symbol.replace].call(this, n, o.replace(/\$<([^>]+)>/g, function (t, r) {
198
- var n = u[r];
199
- return "$" + (Array.isArray(n) ? n.join("$") : n);
282
+ var i = n.get(this);
283
+ return t[Symbol.replace].call(this, r, o.replace(/\$<([^>]+)>/g, function (t, n) {
284
+ var r = i[n];
285
+ return "$" + (Array.isArray(r) ? r.join("$") : r);
200
286
  }));
201
287
  }
202
288
  if ("function" == typeof o) {
203
- var i = this;
204
- return t[Symbol.replace].call(this, n, function () {
289
+ var u = this;
290
+ return t[Symbol.replace].call(this, r, function () {
205
291
  var t = arguments;
206
- return "object" != typeof t[t.length - 1] && (t = [].slice.call(t)).push(e(t, i)), o.apply(this, t);
292
+ return "object" != typeof t[t.length - 1] && (t = [].slice.call(t)).push(e(t, u)), o.apply(this, t);
207
293
  });
208
294
  }
209
- return t[Symbol.replace].call(this, n, o);
295
+ return t[Symbol.replace].call(this, r, o);
210
296
  }, m.apply(this, arguments);
211
297
  }
212
- m(/\?([^#]*)/, {
298
+ var j = function j() {
299
+ for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 36, n = ["a", "b", "c", "d", "e", "f", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], r = [], e = 0; e < t; e++) r[e] = 8 === e || 13 === e || 18 === e || 23 === e ? "-" : n[Math.ceil(Math.random() * n.length - 1)];
300
+ return r.join("");
301
+ };
302
+ (function () {
303
+ return c(function t() {
304
+ !function (t, n) {
305
+ if (!(t instanceof n)) throw new TypeError("Cannot call a class as a function");
306
+ }(this, t), f(this, "handler", []);
307
+ }, [{
308
+ key: "use",
309
+ value: function value(t, n) {
310
+ return this.handler.push({
311
+ fulfilled: t,
312
+ rejected: n
313
+ }), this.handler.length - 1;
314
+ }
315
+ }, {
316
+ key: "eject",
317
+ value: function value(t) {
318
+ this.handler[t] && (this.handler[t] = null);
319
+ }
320
+ }, {
321
+ key: "clear",
322
+ value: function value() {
323
+ this.handler = [];
324
+ }
325
+ }, {
326
+ key: "forEach",
327
+ value: function value(t) {
328
+ var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
329
+ n(this.handler, function (n) {
330
+ n && t(n);
331
+ }, r);
332
+ }
333
+ }, {
334
+ key: "run",
335
+ value: function value(t) {
336
+ var n = arguments;
337
+ return new Promise(function (r, e) {
338
+ var o = n.length > 1 && void 0 !== n[1] && n[1],
339
+ i = Promise.resolve(t());
340
+ return this.forEach(function (t) {
341
+ i = i.then(t.fulfilled, t.rejected);
342
+ }, o), r(i);
343
+ }.bind(this));
344
+ }
345
+ }]);
346
+ })();
347
+ m(/\?([^#]*)/, {
213
348
  query: 1
214
349
  });
215
350
  m(/#(.*)/, {
@@ -218,80 +353,81 @@ m(/\?([^#]*)/, {
218
353
  m(/^(?:[a-zA-Z][a-zA-Zd+-.]*:)?(?:\/\/(?:[^@/?#]*@)?[^/?#]*)?([^?#]*)/, {
219
354
  pathname: 1
220
355
  });
221
- var w = function w(t, r) {
222
- var n,
356
+ var x = function x(t, n) {
357
+ var r,
223
358
  e,
224
359
  o,
225
- u,
226
360
  i,
227
- a = null == r ? void 0 : r.maxWait,
228
- l = null !== (n = null == r ? void 0 : r.wait) && void 0 !== n ? n : 500,
229
- c = null === (e = null == r ? void 0 : r.leading) || void 0 === e || e,
230
- f = null === (o = null == r ? void 0 : r.trailing) || void 0 === o || o,
231
- p = !1,
232
- s = 0,
233
- y = a && a > l,
234
- v = function v() {
235
- clearTimeout(u), u = null;
361
+ u,
362
+ a = null == n ? void 0 : n.maxWait,
363
+ l = null !== (r = null == n ? void 0 : n.wait) && void 0 !== r ? r : 500,
364
+ c = null === (e = null == n ? void 0 : n.leading) || void 0 === e || e,
365
+ f = null === (o = null == n ? void 0 : n.trailing) || void 0 === o || o,
366
+ s = false,
367
+ p = 0,
368
+ h = a && a > l,
369
+ y = function y() {
370
+ clearTimeout(i), i = null;
236
371
  },
237
- b = function b() {
238
- p = !1, y && (s = Date.now()), t.apply(void 0, h(i));
372
+ d = function d() {
373
+ s = false, h && (p = Date.now()), t.apply(void 0, v(u));
239
374
  },
240
- _m = function m() {
241
- clearTimeout(u), u = setTimeout(function () {
242
- if (p && f) return b(), void _m();
243
- v();
375
+ _b = function b() {
376
+ clearTimeout(i), i = setTimeout(function () {
377
+ if (s && f) return d(), void _b();
378
+ y();
244
379
  }, l);
245
380
  },
246
- d = function d() {
247
- p = !0;
248
- for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
249
- i = r, u || (c ? b() : y && (s = Date.now())), y && Date.now() - s >= a && (b(), _m()), _m();
381
+ m = function m() {
382
+ s = true;
383
+ for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];
384
+ u = n, i || (c ? d() : h && (p = Date.now())), h && Date.now() - p >= a && (d(), _b()), _b();
250
385
  };
251
- return d.cancel = v, d.flush = function () {
252
- u && p && (b(), _m());
253
- }, d;
386
+ return m.cancel = y, m.flush = function () {
387
+ i && s && (d(), _b());
388
+ }, m.fun = t, m;
254
389
  },
255
- P = function P(t, r) {
256
- var n,
390
+ k = function k(t, n) {
391
+ var r,
257
392
  e,
258
393
  o,
259
- u,
260
394
  i,
261
- a = null !== (n = null == r ? void 0 : r.wait) && void 0 !== n ? n : 500,
262
- l = null === (e = null == r ? void 0 : r.leading) || void 0 === e || e,
263
- c = null === (o = null == r ? void 0 : r.trailing) || void 0 === o || o,
264
- f = !1,
265
- p = function p() {
266
- clearTimeout(u), u = null, f = !1;
267
- },
395
+ u,
396
+ a = null !== (r = null == n ? void 0 : n.wait) && void 0 !== r ? r : 500,
397
+ l = null === (e = null == n ? void 0 : n.leading) || void 0 === e || e,
398
+ c = null === (o = null == n ? void 0 : n.trailing) || void 0 === o || o,
399
+ f = false,
268
400
  s = function s() {
269
- f = !1, t.apply(void 0, h(i));
401
+ clearTimeout(i), i = null, f = false;
402
+ },
403
+ p = function p() {
404
+ f = false, t.apply(void 0, v(u));
270
405
  },
271
- _y = function y() {
272
- clearTimeout(u), u = setTimeout(function () {
273
- if (f && c) return s(), void _y();
274
- p();
406
+ _h = function h() {
407
+ clearTimeout(i), i = setTimeout(function () {
408
+ if (f && c) return p(), void _h();
409
+ s();
275
410
  }, a);
276
411
  },
277
- v = function v() {
278
- f = !0;
279
- for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
280
- i = r, u || (l && s(), _y());
412
+ y = function y() {
413
+ f = true;
414
+ for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];
415
+ u = n, i || (l && p(), _h());
281
416
  };
282
- return v.cancel = p, v.flush = function () {
283
- u && f && (s(), _y());
284
- }, v;
417
+ return y.cancel = s, y.flush = function () {
418
+ i && f && (p(), _h());
419
+ }, y.fun = t, y;
285
420
  };
286
421
 
287
422
  var useDebounceFn = function useDebounceFn(cb, options) {
288
423
  var fun = useCallbackRef(cb);
289
424
  return react.useMemo(function () {
290
- var run = w(fun, options);
425
+ var run = x(fun, options);
291
426
  return {
292
427
  run: run,
293
428
  cancel: run.cancel,
294
- flush: run.flush
429
+ flush: run.flush,
430
+ fun: run.fun
295
431
  };
296
432
  }, []);
297
433
  };
@@ -344,32 +480,6 @@ var useEventListenerMultipleRef = function useEventListenerMultipleRef(eventMap)
344
480
  };
345
481
  };
346
482
 
347
- /**
348
- * 仅执行一次
349
- * @param fun 函数
350
- * @returns
351
- */
352
- var useOnceFun = function useOnceFun(fun) {
353
- var ref = react.useRef(false);
354
- if (ref.current) return;
355
- ref.current = true;
356
- fun();
357
- };
358
-
359
- /**
360
- * 可以传函数的 useRef,
361
- * 为了解决 useRef 初始化,调用运算复杂函数的问题
362
- * @param initFun 初始化函数
363
- * @returns
364
- */
365
- var useRefPro = function useRefPro(initFun) {
366
- var ref = react.useRef();
367
- useOnceFun(function () {
368
- ref.current = y$1(initFun) ? initFun() : initFun;
369
- });
370
- return ref;
371
- };
372
-
373
483
  /**
374
484
  * 节流
375
485
  * @param cb
@@ -378,11 +488,12 @@ var useRefPro = function useRefPro(initFun) {
378
488
  var useThrottleFn = function useThrottleFn(cb, options) {
379
489
  var fun = useCallbackRef(cb);
380
490
  return react.useMemo(function () {
381
- var run = P(fun, options);
491
+ var run = k(fun, options);
382
492
  return {
383
493
  run: run,
384
494
  cancel: run.cancel,
385
- flush: run.flush
495
+ flush: run.flush,
496
+ fun: run.fun
386
497
  };
387
498
  }, []);
388
499
  };
@@ -396,8 +507,18 @@ var useUpdate = function useUpdate() {
396
507
  };
397
508
  };
398
509
 
510
+ /**
511
+ * 生成一个 uuid
512
+ * @returns string
513
+ */
514
+ var useUuid = function useUuid() {
515
+ var ref = useRefPro(j);
516
+ return ref.current;
517
+ };
518
+
399
519
  exports.createCtx = createCtx;
400
520
  exports.useCallbackRef = useCallbackRef;
521
+ exports.useControl = useControl;
401
522
  exports.useDebounceFn = useDebounceFn;
402
523
  exports.useEventListenerMultiple = useEventListenerMultiple;
403
524
  exports.useEventListenerMultipleRef = useEventListenerMultipleRef;
@@ -405,3 +526,4 @@ exports.useOnceFun = useOnceFun;
405
526
  exports.useRefPro = useRefPro;
406
527
  exports.useThrottleFn = useThrottleFn;
407
528
  exports.useUpdate = useUpdate;
529
+ exports.useUuid = useUuid;
package/lib/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createContext, useContext, useRef, useCallback, useMemo, useEffect, useState } from 'react';
1
+ import { createContext, useContext, useRef, useCallback, useState, useMemo, useEffect } from 'react';
2
2
  import { addEventListenerMultiple } from '@cclr/front';
3
3
 
4
4
  /**
@@ -43,12 +43,12 @@ function _iterableToArrayLimit(r, l) {
43
43
  i,
44
44
  u,
45
45
  a = [],
46
- f = !0,
47
- o = !1;
46
+ f = true,
47
+ o = false;
48
48
  try {
49
49
  if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
50
50
  } catch (r) {
51
- o = !0, n = r;
51
+ o = true, n = r;
52
52
  } finally {
53
53
  try {
54
54
  if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
@@ -97,9 +97,12 @@ function useCallbackRef(fn, deps) {
97
97
  }, _toConsumableArray(deps || []));
98
98
  }
99
99
 
100
- Function.prototype.call.bind(Object.prototype.hasOwnProperty);
101
- var t = Function.prototype.call.bind(Object.prototype.toString),
102
- r = {
100
+ var n = function n(_n, t, r) {
101
+ if (r) for (var e = _n.length - 1; e >= 0; e--) t(_n[e], e, _n);else for (var o = 0; o < _n.length; o++) t(_n[o], o, _n);
102
+ },
103
+ r = Function.prototype.call.bind(Object.prototype.hasOwnProperty),
104
+ e = Function.prototype.call.bind(Object.prototype.toString),
105
+ o = {
103
106
  boolean: "boolean",
104
107
  undefined: "undefined",
105
108
  number: "number",
@@ -116,98 +119,230 @@ Function.prototype.call.bind(Object.prototype.hasOwnProperty);
116
119
  "[object File]": "file",
117
120
  "[object ArrayBuffer]": "arrayBuffer"
118
121
  };
119
- function e(n) {
120
- return r[typeof n] || r[t(n)] || (n ? "object" : "null");
122
+ function u(n) {
123
+ return o[typeof n] || o[e(n)] || (n ? "object" : "null");
121
124
  }
122
- function y$1(n) {
123
- return "function" === e(n);
125
+ function v$1(n) {
126
+ return "function" === u(n);
124
127
  }
125
128
 
126
- function c(t, r) {
127
- (null == r || r > t.length) && (r = t.length);
128
- for (var n = 0, e = Array(r); n < r; n++) e[n] = t[n];
129
+ /**
130
+ * 仅执行一次
131
+ * @param fun 函数
132
+ * @returns
133
+ */
134
+ var useOnceFun = function useOnceFun(fun) {
135
+ var ref = useRef(false);
136
+ if (ref.current) return;
137
+ ref.current = true;
138
+ fun();
139
+ };
140
+
141
+ /**
142
+ * 可以传函数的 useRef,
143
+ * 为了解决 useRef 初始化,调用运算复杂函数的问题
144
+ * @param initFun 初始化函数
145
+ * @returns
146
+ */
147
+ var useRefPro = function useRefPro(initFun) {
148
+ var ref = useRef();
149
+ useOnceFun(function () {
150
+ ref.current = v$1(initFun) ? initFun() : initFun;
151
+ });
152
+ return ref;
153
+ };
154
+
155
+ /**
156
+ * 受控组件的值管理
157
+ */
158
+ var useControl = function useControl(params, comptDefaultValue) {
159
+ var defaultValue = params.defaultValue,
160
+ onChange = params.onChange;
161
+ var ref = useRefPro(function () {
162
+ return {
163
+ isControl: r(params, 'value')
164
+ };
165
+ });
166
+ var _useState = useState(ref.current.isControl ? params.value : defaultValue || comptDefaultValue),
167
+ _useState2 = _slicedToArray(_useState, 2),
168
+ value = _useState2[0],
169
+ setValue = _useState2[1];
170
+ return [ref.current.isControl ? params.value : value, function (value) {
171
+ if (!ref.current.isControl) {
172
+ setValue(value);
173
+ }
174
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
175
+ args[_key - 1] = arguments[_key];
176
+ }
177
+ return onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, [value].concat(args));
178
+ }];
179
+ };
180
+
181
+ function l(t, n) {
182
+ (null == n || n > t.length) && (n = t.length);
183
+ for (var r = 0, e = Array(n); r < n; r++) e[r] = t[r];
129
184
  return e;
130
185
  }
131
- function y(t, r) {
132
- return y = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, r) {
133
- return t.__proto__ = r, t;
134
- }, y(t, r);
186
+ function c(t, n, r) {
187
+ return n && function (t, n) {
188
+ for (var r = 0; r < n.length; r++) {
189
+ var e = n[r];
190
+ e.enumerable = e.enumerable || false, e.configurable = true, "value" in e && (e.writable = true), Object.defineProperty(t, d(e.key), e);
191
+ }
192
+ }(t.prototype, n), Object.defineProperty(t, "prototype", {
193
+ writable: false
194
+ }), t;
195
+ }
196
+ function f(t, n, r) {
197
+ return (n = d(n)) in t ? Object.defineProperty(t, n, {
198
+ value: r,
199
+ enumerable: true,
200
+ configurable: true,
201
+ writable: true
202
+ }) : t[n] = r, t;
135
203
  }
136
- function h(t) {
204
+ function h(t, n) {
205
+ return h = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, n) {
206
+ return t.__proto__ = n, t;
207
+ }, h(t, n);
208
+ }
209
+ function v(t) {
137
210
  return function (t) {
138
- if (Array.isArray(t)) return c(t);
211
+ if (Array.isArray(t)) return l(t);
139
212
  }(t) || function (t) {
140
213
  if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t);
141
214
  }(t) || b(t) || function () {
142
215
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
143
216
  }();
144
217
  }
145
- function b(t, r) {
218
+ function d(t) {
219
+ var n = function (t, n) {
220
+ if ("object" != typeof t || !t) return t;
221
+ var r = t[Symbol.toPrimitive];
222
+ if (void 0 !== r) {
223
+ var e = r.call(t, n);
224
+ if ("object" != typeof e) return e;
225
+ throw new TypeError("@@toPrimitive must return a primitive value.");
226
+ }
227
+ return (String )(t);
228
+ }(t, "string");
229
+ return "symbol" == typeof n ? n : n + "";
230
+ }
231
+ function b(t, n) {
146
232
  if (t) {
147
- if ("string" == typeof t) return c(t, r);
148
- var n = {}.toString.call(t).slice(8, -1);
149
- return "Object" === n && t.constructor && (n = t.constructor.name), "Map" === n || "Set" === n ? Array.from(t) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(t, r) : void 0;
233
+ if ("string" == typeof t) return l(t, n);
234
+ var r = {}.toString.call(t).slice(8, -1);
235
+ return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? l(t, n) : void 0;
150
236
  }
151
237
  }
152
238
  function m() {
153
- m = function m(t, r) {
154
- return new n(t, void 0, r);
239
+ m = function m(t, n) {
240
+ return new r(t, void 0, n);
155
241
  };
156
242
  var t = RegExp.prototype,
157
- r = new WeakMap();
158
- function n(t, e, o) {
159
- var u = RegExp(t, e);
160
- return r.set(u, o || r.get(t)), y(u, n.prototype);
243
+ n = new WeakMap();
244
+ function r(t, e, o) {
245
+ var i = RegExp(t, e);
246
+ return n.set(i, o || n.get(t)), h(i, r.prototype);
161
247
  }
162
- function e(t, n) {
163
- var e = r.get(n);
164
- return Object.keys(e).reduce(function (r, n) {
165
- var o = e[n];
166
- if ("number" == typeof o) r[n] = t[o];else {
167
- for (var u = 0; void 0 === t[o[u]] && u + 1 < o.length;) u++;
168
- r[n] = t[o[u]];
248
+ function e(t, r) {
249
+ var e = n.get(r);
250
+ return Object.keys(e).reduce(function (n, r) {
251
+ var o = e[r];
252
+ if ("number" == typeof o) n[r] = t[o];else {
253
+ for (var i = 0; void 0 === t[o[i]] && i + 1 < o.length;) i++;
254
+ n[r] = t[o[i]];
169
255
  }
170
- return r;
256
+ return n;
171
257
  }, Object.create(null));
172
258
  }
173
- return function (t, r) {
174
- if ("function" != typeof r && null !== r) throw new TypeError("Super expression must either be null or a function");
175
- t.prototype = Object.create(r && r.prototype, {
259
+ return function (t, n) {
260
+ if ("function" != typeof n && null !== n) throw new TypeError("Super expression must either be null or a function");
261
+ t.prototype = Object.create(n && n.prototype, {
176
262
  constructor: {
177
263
  value: t,
178
- writable: !0,
179
- configurable: !0
264
+ writable: true,
265
+ configurable: true
180
266
  }
181
267
  }), Object.defineProperty(t, "prototype", {
182
- writable: !1
183
- }), r && y(t, r);
184
- }(n, RegExp), n.prototype.exec = function (r) {
185
- var n = t.exec.call(this, r);
186
- if (n) {
187
- n.groups = e(n, this);
188
- var o = n.indices;
268
+ writable: false
269
+ }), n && h(t, n);
270
+ }(r, RegExp), r.prototype.exec = function (n) {
271
+ var r = t.exec.call(this, n);
272
+ if (r) {
273
+ r.groups = e(r, this);
274
+ var o = r.indices;
189
275
  o && (o.groups = e(o, this));
190
276
  }
191
- return n;
192
- }, n.prototype[Symbol.replace] = function (n, o) {
277
+ return r;
278
+ }, r.prototype[Symbol.replace] = function (r, o) {
193
279
  if ("string" == typeof o) {
194
- var u = r.get(this);
195
- return t[Symbol.replace].call(this, n, o.replace(/\$<([^>]+)>/g, function (t, r) {
196
- var n = u[r];
197
- return "$" + (Array.isArray(n) ? n.join("$") : n);
280
+ var i = n.get(this);
281
+ return t[Symbol.replace].call(this, r, o.replace(/\$<([^>]+)>/g, function (t, n) {
282
+ var r = i[n];
283
+ return "$" + (Array.isArray(r) ? r.join("$") : r);
198
284
  }));
199
285
  }
200
286
  if ("function" == typeof o) {
201
- var i = this;
202
- return t[Symbol.replace].call(this, n, function () {
287
+ var u = this;
288
+ return t[Symbol.replace].call(this, r, function () {
203
289
  var t = arguments;
204
- return "object" != typeof t[t.length - 1] && (t = [].slice.call(t)).push(e(t, i)), o.apply(this, t);
290
+ return "object" != typeof t[t.length - 1] && (t = [].slice.call(t)).push(e(t, u)), o.apply(this, t);
205
291
  });
206
292
  }
207
- return t[Symbol.replace].call(this, n, o);
293
+ return t[Symbol.replace].call(this, r, o);
208
294
  }, m.apply(this, arguments);
209
295
  }
210
- m(/\?([^#]*)/, {
296
+ var j = function j() {
297
+ for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 36, n = ["a", "b", "c", "d", "e", "f", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], r = [], e = 0; e < t; e++) r[e] = 8 === e || 13 === e || 18 === e || 23 === e ? "-" : n[Math.ceil(Math.random() * n.length - 1)];
298
+ return r.join("");
299
+ };
300
+ (function () {
301
+ return c(function t() {
302
+ !function (t, n) {
303
+ if (!(t instanceof n)) throw new TypeError("Cannot call a class as a function");
304
+ }(this, t), f(this, "handler", []);
305
+ }, [{
306
+ key: "use",
307
+ value: function value(t, n) {
308
+ return this.handler.push({
309
+ fulfilled: t,
310
+ rejected: n
311
+ }), this.handler.length - 1;
312
+ }
313
+ }, {
314
+ key: "eject",
315
+ value: function value(t) {
316
+ this.handler[t] && (this.handler[t] = null);
317
+ }
318
+ }, {
319
+ key: "clear",
320
+ value: function value() {
321
+ this.handler = [];
322
+ }
323
+ }, {
324
+ key: "forEach",
325
+ value: function value(t) {
326
+ var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
327
+ n(this.handler, function (n) {
328
+ n && t(n);
329
+ }, r);
330
+ }
331
+ }, {
332
+ key: "run",
333
+ value: function value(t) {
334
+ var n = arguments;
335
+ return new Promise(function (r, e) {
336
+ var o = n.length > 1 && void 0 !== n[1] && n[1],
337
+ i = Promise.resolve(t());
338
+ return this.forEach(function (t) {
339
+ i = i.then(t.fulfilled, t.rejected);
340
+ }, o), r(i);
341
+ }.bind(this));
342
+ }
343
+ }]);
344
+ })();
345
+ m(/\?([^#]*)/, {
211
346
  query: 1
212
347
  });
213
348
  m(/#(.*)/, {
@@ -216,80 +351,81 @@ m(/\?([^#]*)/, {
216
351
  m(/^(?:[a-zA-Z][a-zA-Zd+-.]*:)?(?:\/\/(?:[^@/?#]*@)?[^/?#]*)?([^?#]*)/, {
217
352
  pathname: 1
218
353
  });
219
- var w = function w(t, r) {
220
- var n,
354
+ var x = function x(t, n) {
355
+ var r,
221
356
  e,
222
357
  o,
223
- u,
224
358
  i,
225
- a = null == r ? void 0 : r.maxWait,
226
- l = null !== (n = null == r ? void 0 : r.wait) && void 0 !== n ? n : 500,
227
- c = null === (e = null == r ? void 0 : r.leading) || void 0 === e || e,
228
- f = null === (o = null == r ? void 0 : r.trailing) || void 0 === o || o,
229
- p = !1,
230
- s = 0,
231
- y = a && a > l,
232
- v = function v() {
233
- clearTimeout(u), u = null;
359
+ u,
360
+ a = null == n ? void 0 : n.maxWait,
361
+ l = null !== (r = null == n ? void 0 : n.wait) && void 0 !== r ? r : 500,
362
+ c = null === (e = null == n ? void 0 : n.leading) || void 0 === e || e,
363
+ f = null === (o = null == n ? void 0 : n.trailing) || void 0 === o || o,
364
+ s = false,
365
+ p = 0,
366
+ h = a && a > l,
367
+ y = function y() {
368
+ clearTimeout(i), i = null;
234
369
  },
235
- b = function b() {
236
- p = !1, y && (s = Date.now()), t.apply(void 0, h(i));
370
+ d = function d() {
371
+ s = false, h && (p = Date.now()), t.apply(void 0, v(u));
237
372
  },
238
- _m = function m() {
239
- clearTimeout(u), u = setTimeout(function () {
240
- if (p && f) return b(), void _m();
241
- v();
373
+ _b = function b() {
374
+ clearTimeout(i), i = setTimeout(function () {
375
+ if (s && f) return d(), void _b();
376
+ y();
242
377
  }, l);
243
378
  },
244
- d = function d() {
245
- p = !0;
246
- for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
247
- i = r, u || (c ? b() : y && (s = Date.now())), y && Date.now() - s >= a && (b(), _m()), _m();
379
+ m = function m() {
380
+ s = true;
381
+ for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];
382
+ u = n, i || (c ? d() : h && (p = Date.now())), h && Date.now() - p >= a && (d(), _b()), _b();
248
383
  };
249
- return d.cancel = v, d.flush = function () {
250
- u && p && (b(), _m());
251
- }, d;
384
+ return m.cancel = y, m.flush = function () {
385
+ i && s && (d(), _b());
386
+ }, m.fun = t, m;
252
387
  },
253
- P = function P(t, r) {
254
- var n,
388
+ k = function k(t, n) {
389
+ var r,
255
390
  e,
256
391
  o,
257
- u,
258
392
  i,
259
- a = null !== (n = null == r ? void 0 : r.wait) && void 0 !== n ? n : 500,
260
- l = null === (e = null == r ? void 0 : r.leading) || void 0 === e || e,
261
- c = null === (o = null == r ? void 0 : r.trailing) || void 0 === o || o,
262
- f = !1,
263
- p = function p() {
264
- clearTimeout(u), u = null, f = !1;
265
- },
393
+ u,
394
+ a = null !== (r = null == n ? void 0 : n.wait) && void 0 !== r ? r : 500,
395
+ l = null === (e = null == n ? void 0 : n.leading) || void 0 === e || e,
396
+ c = null === (o = null == n ? void 0 : n.trailing) || void 0 === o || o,
397
+ f = false,
266
398
  s = function s() {
267
- f = !1, t.apply(void 0, h(i));
399
+ clearTimeout(i), i = null, f = false;
400
+ },
401
+ p = function p() {
402
+ f = false, t.apply(void 0, v(u));
268
403
  },
269
- _y = function y() {
270
- clearTimeout(u), u = setTimeout(function () {
271
- if (f && c) return s(), void _y();
272
- p();
404
+ _h = function h() {
405
+ clearTimeout(i), i = setTimeout(function () {
406
+ if (f && c) return p(), void _h();
407
+ s();
273
408
  }, a);
274
409
  },
275
- v = function v() {
276
- f = !0;
277
- for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
278
- i = r, u || (l && s(), _y());
410
+ y = function y() {
411
+ f = true;
412
+ for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];
413
+ u = n, i || (l && p(), _h());
279
414
  };
280
- return v.cancel = p, v.flush = function () {
281
- u && f && (s(), _y());
282
- }, v;
415
+ return y.cancel = s, y.flush = function () {
416
+ i && f && (p(), _h());
417
+ }, y.fun = t, y;
283
418
  };
284
419
 
285
420
  var useDebounceFn = function useDebounceFn(cb, options) {
286
421
  var fun = useCallbackRef(cb);
287
422
  return useMemo(function () {
288
- var run = w(fun, options);
423
+ var run = x(fun, options);
289
424
  return {
290
425
  run: run,
291
426
  cancel: run.cancel,
292
- flush: run.flush
427
+ flush: run.flush,
428
+ fun: run.fun
293
429
  };
294
430
  }, []);
295
431
  };
@@ -342,32 +478,6 @@ var useEventListenerMultipleRef = function useEventListenerMultipleRef(eventMap)
342
478
  };
343
479
  };
344
480
 
345
- /**
346
- * 仅执行一次
347
- * @param fun 函数
348
- * @returns
349
- */
350
- var useOnceFun = function useOnceFun(fun) {
351
- var ref = useRef(false);
352
- if (ref.current) return;
353
- ref.current = true;
354
- fun();
355
- };
356
-
357
- /**
358
- * 可以传函数的 useRef,
359
- * 为了解决 useRef 初始化,调用运算复杂函数的问题
360
- * @param initFun 初始化函数
361
- * @returns
362
- */
363
- var useRefPro = function useRefPro(initFun) {
364
- var ref = useRef();
365
- useOnceFun(function () {
366
- ref.current = y$1(initFun) ? initFun() : initFun;
367
- });
368
- return ref;
369
- };
370
-
371
481
  /**
372
482
  * 节流
373
483
  * @param cb
@@ -376,11 +486,12 @@ var useRefPro = function useRefPro(initFun) {
376
486
  var useThrottleFn = function useThrottleFn(cb, options) {
377
487
  var fun = useCallbackRef(cb);
378
488
  return useMemo(function () {
379
- var run = P(fun, options);
489
+ var run = k(fun, options);
380
490
  return {
381
491
  run: run,
382
492
  cancel: run.cancel,
383
- flush: run.flush
493
+ flush: run.flush,
494
+ fun: run.fun
384
495
  };
385
496
  }, []);
386
497
  };
@@ -394,4 +505,13 @@ var useUpdate = function useUpdate() {
394
505
  };
395
506
  };
396
507
 
397
- export { createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate };
508
+ /**
509
+ * 生成一个 uuid
510
+ * @returns string
511
+ */
512
+ var useUuid = function useUuid() {
513
+ var ref = useRefPro(j);
514
+ return ref.current;
515
+ };
516
+
517
+ export { createCtx, useCallbackRef, useControl, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate, useUuid };
@@ -1,5 +1,5 @@
1
+ import { TPlainObject, TAny, TPlainFunction, TNoop } from '@cclr/lang';
1
2
  import * as react from 'react';
2
- import { TPlainObject, TPlainFunction, TNoop } from '@cclr/lang';
3
3
  import { TEventMap } from '@cclr/front';
4
4
 
5
5
  /**
@@ -9,7 +9,7 @@ import { TEventMap } from '@cclr/front';
9
9
  * 在 React DevTools 中查看组件树时,每个使用 context 的组件都会显示与该 context 相关的名称
10
10
  * @returns [ useCtx, Provider ]
11
11
  */
12
- declare function createCtx<A extends TPlainObject | null>(defaultValue?: A, name?: string): readonly [() => A, react.Provider<A | undefined>];
12
+ declare function createCtx<A extends TPlainObject | null>(defaultValue?: A, name?: string): [() => A, React.Provider<A>];
13
13
 
14
14
  /**
15
15
  * React hook to persist any value between renders,
@@ -19,6 +19,24 @@ declare function createCtx<A extends TPlainObject | null>(defaultValue?: A, name
19
19
  */
20
20
  declare function useCallbackRef<T extends (...args: any[]) => unknown>(fn: T | undefined, deps?: React.DependencyList): T;
21
21
 
22
+ interface IControlProps<T> {
23
+ /** 受控组件时,传入的list */
24
+ value?: T;
25
+ /** 受控组件时,传入的list */
26
+ onChange?: (value: T, ...val: TAny) => unknown;
27
+ /** 初始化使用 */
28
+ defaultValue?: T;
29
+ }
30
+
31
+ /**
32
+ * 受控组件的值管理
33
+ */
34
+ declare const useControl: <P extends IControlProps<TAny>>(
35
+ /** 组件的props */
36
+ params: P,
37
+ /** 组件的默认值 */
38
+ comptDefaultValue?: P["defaultValue"]) => [P["value"], P["onChange"]];
39
+
22
40
  declare const useDebounceFn: <T extends TPlainFunction>(cb: T, options?: {
23
41
  /** 等待时间,单位为毫秒 default: 500 */
24
42
  wait?: number;
@@ -32,9 +50,11 @@ declare const useDebounceFn: <T extends TPlainFunction>(cb: T, options?: {
32
50
  run: T & {
33
51
  cancel: () => void;
34
52
  flush: () => void;
53
+ fun: T;
35
54
  };
36
55
  cancel: () => void;
37
56
  flush: () => void;
57
+ fun: T;
38
58
  };
39
59
 
40
60
  /**
@@ -83,17 +103,25 @@ declare const useThrottleFn: <T extends TPlainFunction>(cb: T, options?: {
83
103
  run: T & {
84
104
  cancel: () => void;
85
105
  flush: () => void;
106
+ fun: T;
86
107
  };
87
108
  cancel: () => void;
88
109
  flush: () => void;
110
+ fun: T;
89
111
  };
90
112
 
91
113
  declare const useUpdate: () => () => void;
92
114
 
115
+ /**
116
+ * 生成一个 uuid
117
+ * @returns string
118
+ */
119
+ declare const useUuid: () => string;
120
+
93
121
  interface ICommonUiProps {
94
122
  className?: string;
95
123
  style?: React.CSSProperties;
96
124
  children?: React.ReactNode;
97
125
  }
98
126
 
99
- export { type ICommonUiProps, createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate };
127
+ export { type ICommonUiProps, type IControlProps, createCtx, useCallbackRef, useControl, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate, useUuid };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cclr/react",
3
- "version": "0.1.17",
3
+ "version": "0.1.18",
4
4
  "description": "react 相关功能",
5
5
  "author": "cclr <18843152354@163.com>",
6
6
  "homepage": "",
@@ -27,12 +27,12 @@
27
27
  "g:test": "vitest run",
28
28
  "g:build": "ccm lib"
29
29
  },
30
- "gitHead": "5463a4bf24b98f18f5e349347c9b048f2670c990",
30
+ "gitHead": "f0b2dc8e54b6ddfcca0ff36488c17df73a658e49",
31
31
  "dependencies": {
32
- "@cclr/front": "0.1.17",
33
- "@cclr/lang": "0.1.17",
34
- "@cclr/model": "0.1.17",
35
- "@cclr/utils": "0.1.17"
32
+ "@cclr/front": "0.1.18",
33
+ "@cclr/lang": "0.1.18",
34
+ "@cclr/model": "0.1.18",
35
+ "@cclr/utils": "0.1.18"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/react": "^18.3.18",