UNPKG

33.3 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('@wener/utils'), require('antd'), require('rxjs'), require('lodash')) :
3 typeof define === 'function' && define.amd ? define(['exports', 'react', '@wener/utils', 'antd', 'rxjs', 'lodash'], factory) :
4 (global = global || self, factory(global.WenerUiAntds = {}, global.React, global.WenerUtils, global.antd, global.Rx, global._));
5}(this, (function (exports, React, utils, antd, rxjs, lodash) { 'use strict';
6
7 var React__default = 'default' in React ? React['default'] : React;
8
9 function _typeof(obj) {
10 "@babel/helpers - typeof";
11
12 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
13 _typeof = function (obj) {
14 return typeof obj;
15 };
16 } else {
17 _typeof = function (obj) {
18 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
19 };
20 }
21
22 return _typeof(obj);
23 }
24
25 function _defineProperty(obj, key, value) {
26 if (key in obj) {
27 Object.defineProperty(obj, key, {
28 value: value,
29 enumerable: true,
30 configurable: true,
31 writable: true
32 });
33 } else {
34 obj[key] = value;
35 }
36
37 return obj;
38 }
39
40 function _extends() {
41 _extends = Object.assign || function (target) {
42 for (var i = 1; i < arguments.length; i++) {
43 var source = arguments[i];
44
45 for (var key in source) {
46 if (Object.prototype.hasOwnProperty.call(source, key)) {
47 target[key] = source[key];
48 }
49 }
50 }
51
52 return target;
53 };
54
55 return _extends.apply(this, arguments);
56 }
57
58 function ownKeys(object, enumerableOnly) {
59 var keys = Object.keys(object);
60
61 if (Object.getOwnPropertySymbols) {
62 var symbols = Object.getOwnPropertySymbols(object);
63 if (enumerableOnly) symbols = symbols.filter(function (sym) {
64 return Object.getOwnPropertyDescriptor(object, sym).enumerable;
65 });
66 keys.push.apply(keys, symbols);
67 }
68
69 return keys;
70 }
71
72 function _objectSpread2(target) {
73 for (var i = 1; i < arguments.length; i++) {
74 var source = arguments[i] != null ? arguments[i] : {};
75
76 if (i % 2) {
77 ownKeys(Object(source), true).forEach(function (key) {
78 _defineProperty(target, key, source[key]);
79 });
80 } else if (Object.getOwnPropertyDescriptors) {
81 Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
82 } else {
83 ownKeys(Object(source)).forEach(function (key) {
84 Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
85 });
86 }
87 }
88
89 return target;
90 }
91
92 function _objectWithoutPropertiesLoose(source, excluded) {
93 if (source == null) return {};
94 var target = {};
95 var sourceKeys = Object.keys(source);
96 var key, i;
97
98 for (i = 0; i < sourceKeys.length; i++) {
99 key = sourceKeys[i];
100 if (excluded.indexOf(key) >= 0) continue;
101 target[key] = source[key];
102 }
103
104 return target;
105 }
106
107 function _objectWithoutProperties(source, excluded) {
108 if (source == null) return {};
109
110 var target = _objectWithoutPropertiesLoose(source, excluded);
111
112 var key, i;
113
114 if (Object.getOwnPropertySymbols) {
115 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
116
117 for (i = 0; i < sourceSymbolKeys.length; i++) {
118 key = sourceSymbolKeys[i];
119 if (excluded.indexOf(key) >= 0) continue;
120 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
121 target[key] = source[key];
122 }
123 }
124
125 return target;
126 }
127
128 function _slicedToArray(arr, i) {
129 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
130 }
131
132 function _arrayWithHoles(arr) {
133 if (Array.isArray(arr)) return arr;
134 }
135
136 function _iterableToArrayLimit(arr, i) {
137 if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
138 var _arr = [];
139 var _n = true;
140 var _d = false;
141 var _e = undefined;
142
143 try {
144 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
145 _arr.push(_s.value);
146
147 if (i && _arr.length === i) break;
148 }
149 } catch (err) {
150 _d = true;
151 _e = err;
152 } finally {
153 try {
154 if (!_n && _i["return"] != null) _i["return"]();
155 } finally {
156 if (_d) throw _e;
157 }
158 }
159
160 return _arr;
161 }
162
163 function _unsupportedIterableToArray(o, minLen) {
164 if (!o) return;
165 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
166 var n = Object.prototype.toString.call(o).slice(8, -1);
167 if (n === "Object" && o.constructor) n = o.constructor.name;
168 if (n === "Map" || n === "Set") return Array.from(o);
169 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
170 }
171
172 function _arrayLikeToArray(arr, len) {
173 if (len == null || len > arr.length) len = arr.length;
174
175 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
176
177 return arr2;
178 }
179
180 function _nonIterableRest() {
181 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
182 }
183
184 function loadTheme(options) {
185 var _ref = options !== null && options !== void 0 ? options : {},
186 theme = _ref.theme,
187 type = _ref.type,
188 _ref$url = _ref.url,
189 url = _ref$url === void 0 ? '' : _ref$url;
190
191 var attr = "data-".concat(type, "-theme");
192 var cur = document.querySelector("link[".concat(attr, "=\"").concat(theme, "\"]"));
193
194 if (!cur) {
195 if (url) {
196 console.info("load theme ".concat(type, " ").concat(theme, " ").concat(url));
197 return utils.loadStyles(url, {
198 attributes: _defineProperty({}, attr, theme)
199 }).then(function () {
200 // disable others
201 var themes = document.querySelectorAll("link[".concat(attr, "]:not([").concat(attr, "=\"").concat(theme, "\"])"));
202 themes.forEach(function (v) {
203 return v.setAttribute('disabled', 'true');
204 });
205 return true;
206 });
207 }
208
209 return false;
210 }
211
212 var themes = document.querySelectorAll("link[".concat(attr, "]:not([").concat(attr, "=\"").concat(theme, "\"])"));
213 themes.forEach(function (v) {
214 return v.setAttribute('disabled', 'true');
215 });
216 cur.removeAttribute('disabled');
217 return true;
218 } // fixme - should use current version ?
219
220
221 var urls = {
222 light: 'https://unpkg.com/antd/dist/antd.min.css',
223 dark: 'https://unpkg.com/antd/dist/antd.dark.min.css'
224 };
225 function loadAntdTheme(options) {
226 var _ref2 = options || {},
227 _ref2$theme = _ref2.theme,
228 theme = _ref2$theme === void 0 ? 'light' : _ref2$theme,
229 src = _ref2.src;
230
231 var url = src || urls[theme];
232
233 if (!url) {
234 console.error("Theme not found: ".concat(theme));
235 return false;
236 }
237
238 return loadTheme({
239 theme: theme,
240 type: 'antd',
241 url: url
242 });
243 }
244 function useAntdTheme(options) {
245 var _ref3 = options || {},
246 _ref3$theme = _ref3.theme,
247 theme = _ref3$theme === void 0 ? 'light' : _ref3$theme,
248 src = _ref3.src;
249
250 var _useState = React.useState(true),
251 _useState2 = _slicedToArray(_useState, 2),
252 loading = _useState2[0],
253 setLoading = _useState2[1];
254
255 React.useEffect(function () {
256 var url = src || urls[theme];
257
258 if (!url) {
259 console.error("Theme not found: ".concat(theme));
260 return;
261 }
262
263 setLoading(true);
264 Promise.resolve(loadTheme({
265 theme: theme,
266 type: 'antd',
267 url: url
268 }))["finally"](function () {
269 return setLoading(false);
270 });
271 }, [theme, src]);
272 return loading;
273 }
274
275 function n(n) {
276 for (var t = arguments.length, r = Array(t > 1 ? t - 1 : 0), e = 1; e < t; e++) {
277 r[e - 1] = arguments[e];
278 }
279
280 if ("production" !== process.env.NODE_ENV) {
281 var i = L[n],
282 o = i ? "function" == typeof i ? i.apply(null, r) : i : "unknown error nr: " + n;
283 throw Error("[Immer] " + o);
284 }
285
286 throw Error("[Immer] minified error nr: " + n + (r.length ? " " + r.join(",") : "") + ". Find the full error at: https://bit.ly/3cXEKWf");
287 }
288
289 function t(n) {
290 return !!n && !!n[G];
291 }
292
293 function r(n) {
294 return !!n && (function (n) {
295 if (!n || "object" != _typeof(n)) return !1;
296 var t = Object.getPrototypeOf(n);
297 return !t || t === Object.prototype;
298 }(n) || Array.isArray(n) || !!n[B] || !!n.constructor[B] || c(n) || s(n));
299 }
300
301 function i(n, t, r) {
302 void 0 === r && (r = !1), 0 === o(n) ? (r ? Object.keys : Q)(n).forEach(function (r) {
303 return t(r, n[r], n);
304 }) : n.forEach(function (r, e) {
305 return t(e, r, n);
306 });
307 }
308
309 function o(n) {
310 var t = n[G];
311 return t ? t.i > 3 ? t.i - 4 : t.i : Array.isArray(n) ? 1 : c(n) ? 2 : s(n) ? 3 : 0;
312 }
313
314 function u(n, t) {
315 return 2 === o(n) ? n.has(t) : Object.prototype.hasOwnProperty.call(n, t);
316 }
317
318 function a(n, t) {
319 return 2 === o(n) ? n.get(t) : n[t];
320 }
321
322 function f(n, t) {
323 return n === t ? 0 !== n || 1 / n == 1 / t : n != n && t != t;
324 }
325
326 function c(n) {
327 return U && n instanceof Map;
328 }
329
330 function s(n) {
331 return W && n instanceof Set;
332 }
333
334 function v(n) {
335 return n.o || n.t;
336 }
337
338 function p(t, r) {
339 if (void 0 === r && (r = !1), Array.isArray(t)) return t.slice();
340 var e = Object.create(Object.getPrototypeOf(t));
341 return i(t, function (i) {
342 if (i !== G) {
343 var o = Object.getOwnPropertyDescriptor(t, i),
344 u = o.value;
345 o.get && (r || n(1), u = o.get.call(t)), o.enumerable ? e[i] = u : Object.defineProperty(e, i, {
346 value: u,
347 writable: !0,
348 configurable: !0
349 });
350 }
351 }), e;
352 }
353
354 function d(n, e) {
355 t(n) || h(n) || !r(n) || (o(n) > 1 && (n.set = n.add = n.clear = n["delete"] = l), Object.freeze(n), e && i(n, function (n, t) {
356 return d(t, !0);
357 }, !0));
358 }
359
360 function l() {
361 n(2);
362 }
363
364 function h(n) {
365 return null == n || "object" != _typeof(n) || Object.isFrozen(n);
366 }
367
368 function y(t) {
369 var r = V[t];
370 return r || n("production" !== process.env.NODE_ENV ? 18 : 19, t), r;
371 }
372
373 function m() {
374 return "production" === process.env.NODE_ENV || K || n(0), K;
375 }
376
377 function _(n, t) {
378 t && (y("Patches"), n.u = [], n.s = [], n.v = t);
379 }
380
381 function j(n) {
382 O(n), n.p.forEach(w), n.p = null;
383 }
384
385 function O(n) {
386 n === K && (K = n.l);
387 }
388
389 function g(n) {
390 return K = {
391 p: [],
392 l: K,
393 h: n,
394 m: !0,
395 _: 0
396 };
397 }
398
399 function w(n) {
400 var t = n[G];
401 0 === t.i || 1 === t.i ? t.j() : t.O = !0;
402 }
403
404 function S(t, e) {
405 e._ = e.p.length;
406 var i = e.p[0],
407 o = void 0 !== t && t !== i;
408 return e.h.g || y("ES5").S(e, t, o), o ? (i[G].P && (j(e), n(4)), r(t) && (t = P(e, t), e.l || A(e, t)), e.u && y("Patches").M(i[G], t, e.u, e.s)) : t = P(e, i, []), j(e), e.u && e.v(e.u, e.s), t !== q ? t : void 0;
409 }
410
411 function P(n, t, r) {
412 if (h(t)) return t;
413 var e = t[G];
414 if (!e) return i(t, function (i, o) {
415 return M(n, e, t, i, o, r);
416 }, !0), t;
417 if (e.A !== n) return t;
418 if (!e.P) return A(n, e.t, !0), e.t;
419
420 if (!e.I) {
421 e.I = !0, e.A._--;
422 var o = 4 === e.i || 5 === e.i ? e.o = p(e.k, !0) : e.o;
423 i(o, function (t, i) {
424 return M(n, e, o, t, i, r);
425 }), A(n, o, !1), r && n.u && y("Patches").R(e, r, n.u, n.s);
426 }
427
428 return e.o;
429 }
430
431 function M(e, i, c, s, v, p) {
432 if ("production" !== process.env.NODE_ENV && v === c && n(5), t(v)) {
433 var d = P(e, v, p && i && 3 !== i.i && !u(i.D, s) ? p.concat(s) : void 0);
434 if (h = s, y = d, 2 === (b = o(l = c)) ? l.set(h, y) : 3 === b ? (l["delete"](h), l.add(y)) : l[h] = y, !t(d)) return;
435 e.m = !1;
436 }
437
438 var l, h, y, b;
439
440 if ((!i || !f(v, a(i.t, s))) && r(v)) {
441 if (!e.h.N && e._ < 1) return;
442 P(e, v), i && i.A.l || A(e, v);
443 }
444 }
445
446 function A(n, t, r) {
447 void 0 === r && (r = !1), n.h.N && n.m && d(t, r);
448 }
449
450 function x(n, t) {
451 var r = n[G],
452 e = Reflect.getOwnPropertyDescriptor(r ? v(r) : n, t);
453 return e && e.value;
454 }
455
456 function z(n) {
457 if (!n.P) {
458 if (n.P = !0, 0 === n.i || 1 === n.i) {
459 var t = n.o = p(n.t);
460 i(n.p, function (n, r) {
461 t[n] = r;
462 }), n.p = void 0;
463 }
464
465 n.l && z(n.l);
466 }
467 }
468
469 function I(n) {
470 n.o || (n.o = p(n.t));
471 }
472
473 function E(n, t, r) {
474 var e = c(t) ? y("MapSet").T(t, r) : s(t) ? y("MapSet").F(t, r) : n.g ? function (n, t) {
475 var r = Array.isArray(n),
476 e = {
477 i: r ? 1 : 0,
478 A: t ? t.A : m(),
479 P: !1,
480 I: !1,
481 D: {},
482 l: t,
483 t: n,
484 k: null,
485 p: {},
486 o: null,
487 j: null,
488 C: !1
489 },
490 i = e,
491 o = Y;
492 r && (i = [e], o = Z);
493 var u = Proxy.revocable(i, o),
494 a = u.revoke,
495 f = u.proxy;
496 return e.k = f, e.j = a, f;
497 }(t, r) : y("ES5").J(t, r);
498 return (r ? r.A : m()).p.push(e), e;
499 }
500
501 var J,
502 K,
503 $ = "undefined" != typeof Symbol && "symbol" == _typeof(Symbol("x")),
504 U = "undefined" != typeof Map,
505 W = "undefined" != typeof Set,
506 X = "undefined" != typeof Proxy && void 0 !== Proxy.revocable && "undefined" != typeof Reflect,
507 q = $ ? Symbol("immer-nothing") : ((J = {})["immer-nothing"] = !0, J),
508 B = $ ? Symbol("immer-draftable") : "__$immer_draftable",
509 G = $ ? Symbol("immer-state") : "__$immer_state",
510 L = {
511 0: "Illegal state",
512 1: "Immer drafts cannot have computed properties",
513 2: "This object has been frozen and should not be mutated",
514 3: function _(n) {
515 return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + n;
516 },
517 4: "An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",
518 5: "Immer forbids circular references",
519 6: "The first or second argument to `produce` must be a function",
520 7: "The third argument to `produce` must be a function or undefined",
521 8: "First argument to `createDraft` must be a plain object, an array, or an immerable object",
522 9: "First argument to `finishDraft` must be a draft returned by `createDraft`",
523 10: "The given draft is already finalized",
524 11: "Object.defineProperty() cannot be used on an Immer draft",
525 12: "Object.setPrototypeOf() cannot be used on an Immer draft",
526 13: "Immer only supports deleting array indices",
527 14: "Immer only supports setting array indices and the 'length' property",
528 15: function _(n) {
529 return "Cannot apply patch, path doesn't resolve: " + n;
530 },
531 16: 'Sets cannot have "replace" patches.',
532 17: function _(n) {
533 return "Unsupported patch operation: " + n;
534 },
535 18: function _(n) {
536 return "The plugin for '" + n + "' has not been loaded into Immer. To enable the plugin, import and call `enable" + n + "()` when initializing your application.";
537 },
538 19: function _(n) {
539 return "plugin not loaded: " + n;
540 },
541 20: "Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available"
542 },
543 Q = "undefined" != typeof Reflect && Reflect.ownKeys ? Reflect.ownKeys : void 0 !== Object.getOwnPropertySymbols ? function (n) {
544 return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n));
545 } : Object.getOwnPropertyNames,
546 V = {},
547 Y = {
548 get: function get(n, t) {
549 if (t === G) return n;
550 var e = n.p;
551 if (!n.P && u(e, t)) return e[t];
552 var i = v(n)[t];
553 if (n.I || !r(i)) return i;
554
555 if (n.P) {
556 if (i !== x(n.t, t)) return i;
557 e = n.o;
558 }
559
560 return e[t] = E(n.A.h, i, n);
561 },
562 has: function has(n, t) {
563 return t in v(n);
564 },
565 ownKeys: function ownKeys(n) {
566 return Reflect.ownKeys(v(n));
567 },
568 set: function set(n, t, r) {
569 if (!n.P) {
570 var e = x(n.t, t);
571 if (r ? f(e, r) || r === n.p[t] : f(e, r) && t in n.t) return !0;
572 I(n), z(n);
573 }
574
575 return n.D[t] = !0, n.o[t] = r, !0;
576 },
577 deleteProperty: function deleteProperty(n, t) {
578 return void 0 !== x(n.t, t) || t in n.t ? (n.D[t] = !1, I(n), z(n)) : n.D[t] && delete n.D[t], n.o && delete n.o[t], !0;
579 },
580 getOwnPropertyDescriptor: function getOwnPropertyDescriptor(n, t) {
581 var r = v(n),
582 e = Reflect.getOwnPropertyDescriptor(r, t);
583 return e && (e.writable = !0, e.configurable = 1 !== n.i || "length" !== t), e;
584 },
585 defineProperty: function defineProperty() {
586 n(11);
587 },
588 getPrototypeOf: function getPrototypeOf(n) {
589 return Object.getPrototypeOf(n.t);
590 },
591 setPrototypeOf: function setPrototypeOf() {
592 n(12);
593 }
594 },
595 Z = {};
596
597 i(Y, function (n, t) {
598 Z[n] = function () {
599 return arguments[0] = arguments[0][0], t.apply(this, arguments);
600 };
601 }), Z.deleteProperty = function (t, r) {
602 return "production" !== process.env.NODE_ENV && isNaN(parseInt(r)) && n(13), Y.deleteProperty.call(this, t[0], r);
603 }, Z.set = function (t, r, e) {
604 return "production" !== process.env.NODE_ENV && "length" !== r && isNaN(parseInt(r)) && n(14), Y.set.call(this, t[0], r, e, t[0]);
605 };
606
607 var nn = function () {
608 function e(n) {
609 this.g = X, this.N = "production" !== process.env.NODE_ENV, "boolean" == typeof (null == n ? void 0 : n.useProxies) && this.setUseProxies(n.useProxies), "boolean" == typeof (null == n ? void 0 : n.autoFreeze) && this.setAutoFreeze(n.autoFreeze), this.produce = this.produce.bind(this), this.produceWithPatches = this.produceWithPatches.bind(this);
610 }
611
612 var i = e.prototype;
613 return i.produce = function (t, e, i) {
614 if ("function" == typeof t && "function" != typeof e) {
615 var o = e;
616 e = t;
617 var u = this;
618 return function (n) {
619 var t = this;
620 void 0 === n && (n = o);
621
622 for (var r = arguments.length, i = Array(r > 1 ? r - 1 : 0), a = 1; a < r; a++) {
623 i[a - 1] = arguments[a];
624 }
625
626 return u.produce(n, function (n) {
627 var r;
628 return (r = e).call.apply(r, [t, n].concat(i));
629 });
630 };
631 }
632
633 var a;
634
635 if ("function" != typeof e && n(6), void 0 !== i && "function" != typeof i && n(7), r(t)) {
636 var f = g(this),
637 c = E(this, t, void 0),
638 s = !0;
639
640 try {
641 a = e(c), s = !1;
642 } finally {
643 s ? j(f) : O(f);
644 }
645
646 return "undefined" != typeof Promise && a instanceof Promise ? a.then(function (n) {
647 return _(f, i), S(n, f);
648 }, function (n) {
649 throw j(f), n;
650 }) : (_(f, i), S(a, f));
651 }
652
653 if ((a = e(t)) !== q) return void 0 === a && (a = t), this.N && d(a, !0), a;
654 }, i.produceWithPatches = function (n, t) {
655 var r,
656 e,
657 i = this;
658 return "function" == typeof n ? function (t) {
659 for (var r = arguments.length, e = Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) {
660 e[o - 1] = arguments[o];
661 }
662
663 return i.produceWithPatches(t, function (t) {
664 return n.apply(void 0, [t].concat(e));
665 });
666 } : [this.produce(n, t, function (n, t) {
667 r = n, e = t;
668 }), r, e];
669 }, i.createDraft = function (t) {
670 r(t) || n(8);
671 var e = g(this),
672 i = E(this, t, void 0);
673 return i[G].C = !0, O(e), i;
674 }, i.finishDraft = function (t, r) {
675 var e = t && t[G];
676 "production" !== process.env.NODE_ENV && (e && e.C || n(9), e.I && n(10));
677 var i = e.A;
678 return _(i, r), S(void 0, i);
679 }, i.setAutoFreeze = function (n) {
680 this.N = n;
681 }, i.setUseProxies = function (t) {
682 X || n(20), this.g = t;
683 }, i.applyPatches = function (n, r) {
684 var e;
685
686 for (e = r.length - 1; e >= 0; e--) {
687 var i = r[e];
688
689 if (0 === i.path.length && "replace" === i.op) {
690 n = i.value;
691 break;
692 }
693 }
694
695 var o = y("Patches").U;
696 return t(n) ? o(n, r) : this.produce(n, function (n) {
697 return o(n, r.slice(e + 1));
698 });
699 }, e;
700 }(),
701 tn = new nn(),
702 rn = tn.produce,
703 en = tn.produceWithPatches.bind(tn),
704 on = tn.setAutoFreeze.bind(tn),
705 un = tn.setUseProxies.bind(tn),
706 an = tn.applyPatches.bind(tn),
707 fn = tn.createDraft.bind(tn),
708 cn = tn.finishDraft.bind(tn);
709
710 var LayoutFrameContext = /*#__PURE__*/React__default.createContext(null);
711 var useLayoutFrameSelector = function useLayoutFrameSelector(selector, eq) {
712 var layout = useLayoutFrame();
713 var ref = React.useRef();
714
715 var _useState = React.useState(function () {
716 return ref.current = selector(layout.getState());
717 }),
718 _useState2 = _slicedToArray(_useState, 2),
719 state = _useState2[0],
720 setState = _useState2[1];
721
722 React.useEffect(function () {
723 return layout.subscribe(function (s) {
724 var next = selector(s);
725
726 if (eq && !eq(next, ref.current) || next !== ref.current) {
727 setState(ref.current = next);
728 }
729 });
730 }, []);
731 return state;
732 };
733 function useLayoutFrameOptions() {
734 return React.useContext(LayoutFrameContext).options;
735 } // class LayoutFrameStore implements LayoutFrameInstance {
736 // name = 'default';
737 // context = LayoutStoreContext;
738 // store: Store<LayoutFrameState>;
739 // useSelector: TypedUseSelectorHook<LayoutFrameState>;
740 // dispatch;
741 // forceRootUpdate: () => void;
742 //
743 // constructor({ forceRootUpdate, name = 'default' }) {
744 // this.forceRootUpdate = forceRootUpdate;
745 // this.name = name;
746 //
747 // const slice = createLayoutFrameSlice();
748 // this.store = configureStore(slice);
749 // this.dispatch = this.store.dispatch;
750 // this.useSelector = createSelectorHook(this.context);
751 // }
752 //
753 // selector = (s) => s;
754 //
755 // getLayout(): LayoutFrameInstance {
756 // // const {name, store, context} = this;
757 // // return {
758 // // name,
759 // // dispatch: store.dispatch,
760 // // selector: s => s,
761 // // useSelector: createSelectorHook(context),
762 // // }
763 // return this;
764 // }
765 // }
766
767 var LayoutFrameProvider = function LayoutFrameProvider(_ref) {
768 var layout = _ref.layout,
769 options = _ref.options,
770 children = _ref.children;
771 return /*#__PURE__*/React__default.createElement(LayoutFrameContext.Provider, {
772 value: {
773 layout: layout,
774 options: options
775 }
776 }, children);
777 };
778
779 function createLayoutFrame() {
780 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
781 var initialState = options.initialState,
782 _options$name = options.name,
783 name = _options$name === void 0 ? 'default' : _options$name,
784 current = options.current;
785 var state = new rxjs.BehaviorSubject(_objectSpread2({}, typeof initialState === 'function' ? initialState() : initialState !== null && initialState !== void 0 ? initialState : {}));
786 var layout = {
787 get name() {
788 return name;
789 },
790
791 subscribe: function subscribe(consumer) {
792 var s = state.subscribe(consumer);
793 return s.unsubscribe.bind(s);
794 },
795 getState: function getState() {
796 return state.value;
797 },
798 update: function (_update) {
799 function update(_x) {
800 return _update.apply(this, arguments);
801 }
802
803 update.toString = function () {
804 return _update.toString();
805 };
806
807 return update;
808 }(function (update) {
809 if (typeof update !== 'function') {
810 layout.update(function (s) {
811 Object.assign(s, update);
812 });
813 return;
814 }
815
816 var current = state.value;
817 var next = rn(current, update);
818
819 if (current !== next) {
820 state.next(next);
821 console.debug("next layout state", next, current);
822 }
823 }),
824 dispose: function dispose() {//
825 }
826 };
827 return layout;
828 }
829
830 function useLayoutFrame(options) {
831 var _useContext;
832
833 var _ref2 = options || {},
834 layout = _ref2.layout,
835 _ref2$name = _ref2.name,
836 name = _ref2$name === void 0 ? 'default' : _ref2$name,
837 initialState = _ref2.initialState;
838
839 var instanceRef = React__default.useRef();
840
841 var _useReducer = React.useReducer(function (a) {
842 return a + 1;
843 }, 0),
844 _useReducer2 = _slicedToArray(_useReducer, 2),
845 forceRootUpdate = _useReducer2[1];
846
847 var current = (_useContext = React.useContext(LayoutFrameContext)) === null || _useContext === void 0 ? void 0 : _useContext.layout;
848
849 if (!instanceRef.current) {
850 if (current && current.name === name) {
851 instanceRef.current = current;
852 } else if (layout) {
853 instanceRef.current = layout;
854 } else {
855 // const layoutStore = new LayoutFrameStore({ forceRootUpdate, name });
856 instanceRef.current = createLayoutFrame({
857 name: name,
858 initialState: initialState,
859 current: current
860 });
861 }
862 }
863
864 return instanceRef.current;
865 }
866
867 var NamedThemeContext = /*#__PURE__*/React__default.createContext(new rxjs.BehaviorSubject(null));
868 function useNamedTheme() {
869 var state = React.useContext(NamedThemeContext);
870
871 var _useState = React.useState(state.value),
872 _useState2 = _slicedToArray(_useState, 2),
873 theme = _useState2[0],
874 setTheme = _useState2[1];
875
876 React.useEffect(function () {
877 var subscribe = state.subscribe(setTheme);
878 return subscribe.unsubscribe.bind(subscribe);
879 }, [state]);
880 return [theme, function (v) {
881 return state.next(v);
882 }];
883 }
884
885 var LayoutFrameMenu = function LayoutFrameMenu(_ref) {
886 var children = _ref.children,
887 props = _objectWithoutProperties(_ref, ["children"]);
888
889 var _useLayoutFrameOption = useLayoutFrameOptions(),
890 menus = _useLayoutFrameOption.menus,
891 _useLayoutFrameOption2 = _useLayoutFrameOption.link,
892 link = _useLayoutFrameOption2 === void 0 ? 'a' : _useLayoutFrameOption2,
893 _useLayoutFrameOption3 = _useLayoutFrameOption.menuProps,
894 menuProps = _useLayoutFrameOption3 === void 0 ? {} : _useLayoutFrameOption3;
895
896 var _useNamedTheme = useNamedTheme(),
897 _useNamedTheme2 = _slicedToArray(_useNamedTheme, 1),
898 theme = _useNamedTheme2[0];
899
900 return /*#__PURE__*/React__default.createElement(antd.Menu, _extends({
901 theme: theme === 'dark' ? 'dark' : 'light',
902 mode: "inline"
903 }, menuProps, props), renderMenus(menus, {
904 link: link
905 }));
906 };
907
908 function renderMenus(menus, opts) {
909 return menus.map(function (v) {
910 return renderMenu(v, opts);
911 });
912 }
913
914 function renderMenu(menu, opts) {
915 var path = menu.path,
916 title = menu.title,
917 iconComponent = menu.iconComponent,
918 _menu$children = menu.children,
919 children = _menu$children === void 0 ? [] : _menu$children;
920
921 if (path || children.length === 0) {
922 return renderMenuItem(menu, opts);
923 }
924
925 return /*#__PURE__*/React__default.createElement(antd.Menu.SubMenu, {
926 key: path || title,
927 title: /*#__PURE__*/React__default.createElement("div", null, iconComponent, /*#__PURE__*/React__default.createElement("span", null, title))
928 }, children.map(function (v) {
929 return renderMenuItem(v, opts);
930 }));
931 }
932
933 function renderMenuItem(menu, _ref2) {
934 var Link = _ref2.link;
935 var path = menu.path,
936 title = menu.title,
937 iconComponent = menu.iconComponent;
938 return /*#__PURE__*/React__default.createElement(antd.Menu.Item, {
939 key: path || title
940 }, /*#__PURE__*/React__default.createElement(Link, {
941 href: path
942 }, /*#__PURE__*/React__default.createElement("div", null, iconComponent, /*#__PURE__*/React__default.createElement("span", {
943 style: _objectSpread2({}, iconComponent ? {
944 marginLeft: 10
945 } : {})
946 }, title))));
947 }
948
949 var LayoutFrameSider = function LayoutFrameSider(_ref) {
950 var style = _ref.style;
951
952 var _useState = React.useState(false),
953 _useState2 = _slicedToArray(_useState, 2),
954 broken = _useState2[0],
955 setBroken = _useState2[1];
956
957 var _useState3 = React.useState(true),
958 _useState4 = _slicedToArray(_useState3, 2),
959 collapse = _useState4[0],
960 setCollapse = _useState4[1];
961
962 var _useNamedTheme = useNamedTheme(),
963 _useNamedTheme2 = _slicedToArray(_useNamedTheme, 1),
964 theme = _useNamedTheme2[0];
965
966 return /*#__PURE__*/React__default.createElement(antd.Layout.Sider, {
967 theme: theme === 'dark' ? 'dark' : 'light',
968 breakpoint: "md",
969 onBreakpoint: setBroken,
970 collapsedWidth: broken ? 0 : 80,
971 collapsible: true,
972 collapsed: collapse,
973 onCollapse: function onCollapse(v) {
974 return setCollapse(v);
975 },
976 style: _objectSpread2({
977 height: '100%'
978 }, style)
979 }, /*#__PURE__*/React__default.createElement("div", {
980 style: {
981 height: '100%',
982 overflowY: 'auto'
983 }
984 }, /*#__PURE__*/React__default.createElement(LayoutFrameMenu, null)));
985 };
986
987 var LayoutFrameLayout = function LayoutFrameLayout(props) {
988 var header = props.header,
989 footer = props.footer,
990 children = props.children;
991 var showHeader = props.showHeader,
992 showFooter = props.showFooter;
993
994 if (typeof showHeader !== 'boolean') {
995 showHeader = Boolean(header);
996 }
997
998 if (typeof showFooter !== 'boolean') {
999 showFooter = Boolean(footer);
1000 }
1001
1002 var layout = useLayoutFrame();
1003
1004 var _useNamedTheme = useNamedTheme(),
1005 _useNamedTheme2 = _slicedToArray(_useNamedTheme, 1),
1006 theme = _useNamedTheme2[0]; // height: '100%' 确保布局不变
1007
1008
1009 return /*#__PURE__*/React__default.createElement(antd.Layout, {
1010 style: {
1011 height: '100%',
1012 minHeight: '100vh'
1013 },
1014 "data-layout-frame-name": layout.name
1015 }, header && showHeader && /*#__PURE__*/React__default.createElement(antd.Layout.Header, {
1016 style: theme === 'light' ? {
1017 backgroundColor: '#fff'
1018 } : {}
1019 }, header), /*#__PURE__*/React__default.createElement(antd.Layout, {
1020 hasSider: true
1021 }, /*#__PURE__*/React__default.createElement(LayoutFrameSider, null), /*#__PURE__*/React__default.createElement(antd.Layout, null, /*#__PURE__*/React__default.createElement(antd.Layout.Content, {
1022 style: {
1023 maxHeight: '100%',
1024 overflowY: 'auto'
1025 }
1026 }, children), footer && showFooter && /*#__PURE__*/React__default.createElement(antd.Layout.Footer, null, footer))));
1027 };
1028
1029 var LayoutFrame = function LayoutFrame(props) {
1030 var children = props.children,
1031 showFooter = props.showFooter,
1032 showHeader = props.showHeader,
1033 footer = props.footer,
1034 header = props.header,
1035 name = props.name,
1036 menus = props.menus,
1037 link = props.link,
1038 menuProps = props.menuProps;
1039 var layout = useLayoutFrame(props.layout ? {
1040 layout: props.layout
1041 } : {});
1042 return /*#__PURE__*/React__default.createElement(LayoutFrameProvider, {
1043 layout: layout,
1044 options: {
1045 name: name,
1046 menus: menus,
1047 link: link,
1048 menuProps: menuProps
1049 }
1050 }, /*#__PURE__*/React__default.createElement(LayoutFrameLayout, {
1051 children: children,
1052 showFooter: showFooter,
1053 showHeader: showHeader,
1054 footer: footer,
1055 header: header
1056 }));
1057 };
1058
1059 var LayoutFrameContent = function LayoutFrameContent(_ref) {
1060 var children = _ref.children,
1061 style = _ref.style;
1062
1063 var _useNamedTheme = useNamedTheme(),
1064 _useNamedTheme2 = _slicedToArray(_useNamedTheme, 1),
1065 theme = _useNamedTheme2[0];
1066
1067 return /*#__PURE__*/React__default.createElement("div", {
1068 style: _objectSpread2(_objectSpread2({}, theme !== 'dark' ? {
1069 backgroundColor: 'white'
1070 } : {}), {}, {
1071 margin: 8,
1072 padding: 12,
1073 minHeight: 'calc(100% - 16px)'
1074 }, style)
1075 }, children);
1076 };
1077
1078 exports.LayoutFrame = LayoutFrame;
1079 exports.LayoutFrameContent = LayoutFrameContent;
1080 exports.LayoutFrameLayout = LayoutFrameLayout;
1081 exports.LayoutFrameMenu = LayoutFrameMenu;
1082 exports.LayoutFrameProvider = LayoutFrameProvider;
1083 exports.LayoutFrameSider = LayoutFrameSider;
1084 exports.loadAntdTheme = loadAntdTheme;
1085 exports.useAntdTheme = useAntdTheme;
1086 exports.useLayoutFrame = useLayoutFrame;
1087 exports.useLayoutFrameOptions = useLayoutFrameOptions;
1088 exports.useLayoutFrameSelector = useLayoutFrameSelector;
1089
1090 Object.defineProperty(exports, '__esModule', { value: true });
1091
1092})));
1093//# sourceMappingURL=wener-ui-antds.umd.js.map