bj-web-components 0.2.34 → 0.2.36

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.
Files changed (111) hide show
  1. package/README.md +10 -1
  2. package/dist/index.js +58 -1
  3. package/dist/index.mjs +1 -29
  4. package/dist/miniapp.js +1 -1
  5. package/dist/miniapp.mjs +0 -1
  6. package/dist/mobile.js +1 -1
  7. package/dist/mobile.mjs +0 -1
  8. package/dist/react.js +1 -1
  9. package/dist/react.mjs +0 -1
  10. package/dist/shared.js +1 -1
  11. package/dist/shared.mjs +0 -1
  12. package/dist/style.css +1 -1
  13. package/dist/web/BasicInput/BInput.js +278 -1
  14. package/dist/web/BasicInput/BInput.mjs +263 -164
  15. package/dist/web/BasicInput/utils.js +47 -1
  16. package/dist/web/BasicInput/utils.mjs +22 -20
  17. package/dist/web/CategoryDropdown/CategoryDropdown.js +376 -1
  18. package/dist/web/CategoryDropdown/CategoryDropdown.mjs +355 -235
  19. package/dist/web/CheckBox/BCheckBox.js +176 -1
  20. package/dist/web/CheckBox/BCheckBox.mjs +169 -98
  21. package/dist/web/CheckBox/Group.js +111 -1
  22. package/dist/web/CheckBox/Group.mjs +104 -64
  23. package/dist/web/CheckBox/context.js +8 -1
  24. package/dist/web/CheckBox/context.mjs +2 -4
  25. package/dist/web/CheckBox/index.js +11 -1
  26. package/dist/web/CheckBox/index.mjs +2 -4
  27. package/dist/web/Dropdown/BDropdown.js +265 -1
  28. package/dist/web/Dropdown/BDropdown.mjs +233 -133
  29. package/dist/web/EmptyInputBox/EmptyInputBox.js +89 -1
  30. package/dist/web/EmptyInputBox/EmptyInputBox.mjs +85 -72
  31. package/dist/web/FileCard/FileCard.js +414 -1
  32. package/dist/web/FileCard/FileCard.mjs +400 -116
  33. package/dist/web/Icon/Icon.js +82 -1
  34. package/dist/web/Icon/Icon.mjs +78 -8
  35. package/dist/web/Input/Input.js +230 -1
  36. package/dist/web/Input/Input.mjs +219 -164
  37. package/dist/web/InputNumber/BInputNumber.js +271 -1
  38. package/dist/web/InputNumber/BInputNumber.mjs +254 -189
  39. package/dist/web/InputNumber/StepHandler.js +112 -1
  40. package/dist/web/InputNumber/StepHandler.mjs +102 -50
  41. package/dist/web/InputNumber/hooks/useCursor.js +38 -1
  42. package/dist/web/InputNumber/hooks/useCursor.mjs +31 -34
  43. package/dist/web/InputNumber/hooks/useFrame.js +15 -1
  44. package/dist/web/InputNumber/hooks/useFrame.mjs +8 -5
  45. package/dist/web/InputNumber/utils/decimal.js +163 -1
  46. package/dist/web/InputNumber/utils/decimal.mjs +114 -79
  47. package/dist/web/MobileDrawer/BMobileDrawer.js +238 -1
  48. package/dist/web/MobileDrawer/BMobileDrawer.mjs +221 -139
  49. package/dist/web/Modal/Modal.js +148 -1
  50. package/dist/web/Modal/Modal.mjs +143 -79
  51. package/dist/web/OverlayScrollbar/BOverlayScrollbar.js +273 -1
  52. package/dist/web/OverlayScrollbar/BOverlayScrollbar.mjs +262 -143
  53. package/dist/web/Pagination/Pagination.js +352 -1
  54. package/dist/web/Pagination/Pagination.mjs +342 -247
  55. package/dist/web/ProductField/ProductField.js +443 -1
  56. package/dist/web/ProductField/ProductField.mjs +423 -208
  57. package/dist/web/ProductField/arrow-up.svg.js +4 -1
  58. package/dist/web/ProductField/arrow-up.svg.mjs +2 -4
  59. package/dist/web/ProductField/checkbox-no.svg.js +4 -1
  60. package/dist/web/ProductField/checkbox-no.svg.mjs +2 -4
  61. package/dist/web/ProductField/checkbox-ok.svg.js +4 -1
  62. package/dist/web/ProductField/checkbox-ok.svg.mjs +2 -4
  63. package/dist/web/ProductField/no_data_light.svg.js +4 -1
  64. package/dist/web/ProductField/no_data_light.svg.mjs +2 -4
  65. package/dist/web/ProductField/search.svg.js +4 -1
  66. package/dist/web/ProductField/search.svg.mjs +2 -4
  67. package/dist/web/ProductField/sort.svg.js +4 -1
  68. package/dist/web/ProductField/sort.svg.mjs +2 -4
  69. package/dist/web/Radio/BRadio.js +151 -1
  70. package/dist/web/Radio/BRadio.mjs +147 -75
  71. package/dist/web/Radio/Button.js +54 -1
  72. package/dist/web/Radio/Button.mjs +51 -8
  73. package/dist/web/Radio/Group.js +97 -1
  74. package/dist/web/Radio/Group.mjs +92 -76
  75. package/dist/web/Radio/context.js +10 -1
  76. package/dist/web/Radio/context.mjs +3 -5
  77. package/dist/web/Radio/index.js +13 -1
  78. package/dist/web/Radio/index.mjs +2 -4
  79. package/dist/web/SkuInputCard/SkuInputCard.js +427 -1
  80. package/dist/web/SkuInputCard/SkuInputCard.mjs +414 -219
  81. package/dist/web/SkuInputCard/spin_loading_red.gif.js +4 -1
  82. package/dist/web/SkuInputCard/spin_loading_red.gif.mjs +2 -4
  83. package/dist/web/Switch/Switch.js +114 -1
  84. package/dist/web/Switch/Switch.mjs +109 -58
  85. package/dist/web/Table/BTable.js +1049 -1
  86. package/dist/web/Table/BTable.mjs +1011 -667
  87. package/dist/web/Table/Column.js +6 -1
  88. package/dist/web/Table/Column.mjs +1 -3
  89. package/dist/web/Table/ColumnGroup.js +6 -1
  90. package/dist/web/Table/ColumnGroup.mjs +1 -3
  91. package/dist/web/Table/utils/columns.js +116 -1
  92. package/dist/web/Table/utils/columns.mjs +103 -37
  93. package/dist/web/Table/utils/sortFilter.js +145 -1
  94. package/dist/web/Table/utils/sortFilter.mjs +129 -57
  95. package/dist/web/Tabs/BTabs.js +260 -1
  96. package/dist/web/Tabs/BTabs.mjs +239 -122
  97. package/dist/web/Tabs/TabPane.js +19 -1
  98. package/dist/web/Tabs/TabPane.mjs +1 -4
  99. package/dist/web/Tooltip/ConfirmTooltip.js +53 -1
  100. package/dist/web/Tooltip/ConfirmTooltip.mjs +47 -22
  101. package/dist/web/Tooltip/ContentTooltip.js +156 -1
  102. package/dist/web/Tooltip/ContentTooltip.mjs +145 -76
  103. package/dist/web/Tooltip/ProgressTooltip.js +56 -1
  104. package/dist/web/Tooltip/ProgressTooltip.mjs +50 -31
  105. package/dist/web/Tooltip/TooltipWrapper.js +19 -1
  106. package/dist/web/Tooltip/TooltipWrapper.mjs +13 -9
  107. package/dist/web/Tooltip/useAutoPlacement.js +65 -1
  108. package/dist/web/Tooltip/useAutoPlacement.mjs +52 -24
  109. package/dist/web.js +58 -1
  110. package/dist/web.mjs +1 -29
  111. package/package.json +3 -1
@@ -1 +1,376 @@
1
- "use strict";const n=require("react/jsx-runtime"),i=require("react"),V=require("react-dom");;/* empty css */;/* empty css */const I=require("../Tooltip/ContentTooltip.js"),J=require("../Tooltip/TooltipWrapper.js");function z({text:d,spanClassName:p,wrapperStyle:u,placement:g="top",getPopupContainer:h,trailing:f}){const[a,y]=i.useState(!1),j=i.useRef(null),E=i.useRef(null),[o,b]=i.useState(null);function m(){var w;const _=E.current;_&&_.scrollWidth>_.offsetWidth&&(b(((w=j.current)==null?void 0:w.getBoundingClientRect())??null),y(!0))}return n.jsxs(J,{ref:j,style:u,children:[n.jsx("span",{ref:E,className:p,onMouseEnter:m,onMouseLeave:()=>y(!1),children:d}),f,a&&o&&V.createPortal(n.jsx("span",{style:{position:"fixed",top:o.top,left:o.left,width:o.width,height:o.height,display:"block",pointerEvents:"none",zIndex:9999999999},children:n.jsx(I,{content:d,placement:g,className:"bu-category-dropdown__tooltip"})}),(h==null?void 0:h())??document.body)]})}function K(){return n.jsx("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:n.jsx("path",{d:"M5.57345 8.828C5.41074 8.66528 5.41074 8.40152 5.57345 8.2388C5.73617 8.07608 5.99993 8.07608 6.16265 8.2388L10.0323 12.1084L13.8349 8.24124C13.9963 8.0772 14.26 8.07503 14.4241 8.23636C14.5881 8.39771 14.5903 8.66149 14.429 8.82555L10.5282 12.7924C10.2576 13.0675 9.81477 13.0694 9.54196 12.7966L5.57345 8.828Z",fill:"#333333"})})}function P(){return n.jsx("svg",{className:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"55697",children:n.jsx("path",{d:"M451.854222 285.361778A21.333333 21.333333 0 1 0 421.688889 315.52l198.115555 198.122667-197.994666 194.702222a21.333333 21.333333 0 0 0 29.916444 30.414222l203.107556-199.722667a35.555556 35.555556 0 0 0 0.213333-50.488888L451.854222 285.354667z","p-id":"55698"})})}function Q(d,p){var h;const u=[d];let g=d;for(let f=0;f<p.length;f++){const a=g.find(y=>y.value===p[f]);if((h=a==null?void 0:a.children)!=null&&h.length)u.push(a.children),g=a.children;else break}return u}function O(d,p){const u=[];let g=d;for(const h of p){const f=g.find(a=>a.value===h);if(!f)break;u.push(f),g=f.children??[]}return u}function U({data:d,value:p=[],onChange:u,placeholder:g="请选择分类",disabled:h=!1,maxVisible:f=6,className:a,style:y,getPopupContainer:j,dropdownStyle:E}){const[o,b]=i.useState(!1),[m,_]=i.useState(p),w=i.useRef(null),T=i.useRef(null),R=i.useRef(null),W=i.useRef(!1),[$,A]=i.useState({}),[S,H]=i.useState(),L=i.useCallback(()=>{var v;if(!w.current)return;const r=w.current.getBoundingClientRect();let e=0,t=w.current.parentElement;for(;t&&t!==document.documentElement;){const N=parseInt(window.getComputedStyle(t).zIndex,10);if(!isNaN(N)&&N>e&&(e=N),t.parentElement)for(const x of t.parentElement.children){if(x===t||!(x instanceof HTMLElement))continue;const M=parseInt(window.getComputedStyle(x).zIndex,10);!isNaN(M)&&M>e&&(e=M)}t=t.parentElement}const s=((v=R.current)==null?void 0:v.offsetHeight)??0,l=window.innerHeight-r.bottom,c=r.top,C=s>0&&l<s+4&&c>l;A({position:"fixed",top:C?r.top-s-4:r.bottom+4,left:r.left,zIndex:e>0?e+10:1100,...E})},[E]);i.useLayoutEffect(()=>{o&&L()},[o,m,L]),i.useLayoutEffect(()=>{const r=o&&!W.current;if(W.current=o,!o||!R.current)return;const e=R.current.querySelectorAll(".bu-category-dropdown__col");e.forEach(l=>{l.style.width=""});let t=0;e.forEach(l=>{l.offsetWidth>t&&(t=l.offsetWidth)});const s=r?t:Math.max(S??0,t);e.forEach(l=>{l.style.width=s?`${s}px`:""}),s!==S&&H(s||void 0)},[o,m]),i.useEffect(()=>{if(!o)return;function r(t){var l,c;const s=t.target;(l=w.current)!=null&&l.contains(s)||(c=T.current)!=null&&c.contains(s)||b(!1)}function e(){b(!1)}return document.addEventListener("mousedown",r),document.addEventListener("scroll",e,!0),window.addEventListener("resize",L),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("scroll",e,!0),window.removeEventListener("resize",L)}},[o,L]);const k=O(d,p),B=k.length>0,Z=B?k.map(r=>r.label).join(" / "):null,q=Q(d,m);function D(r,e){var s;if(e.disabled)return;const t=m.slice(0,r+1);if(t[r]=e.value,_(t),!((s=e.children)!=null&&s.length)){const l=O(d,t);u==null||u(t,l),b(!1)}}function F(){_(p),b(!0)}const G=["bu-category-dropdown__trigger",o?"bu-category-dropdown__trigger--open":"",B?"bu-category-dropdown__trigger--has-value":""].filter(Boolean).join(" ");return n.jsxs("div",{ref:w,className:`bu-category-dropdown${a?` ${a}`:""}`,style:y,children:[n.jsx("button",{type:"button",className:G,disabled:h,onClick:()=>o?b(!1):F(),children:n.jsx(z,{text:Z??g,spanClassName:`bu-category-dropdown__trigger-label${B?"":" bu-category-dropdown__trigger-label--placeholder"}`,wrapperStyle:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:8},getPopupContainer:j,trailing:n.jsx("span",{className:`bu-category-dropdown__trigger-chevron${o?" bu-category-dropdown__trigger-chevron--open":""}`,children:n.jsx(K,{})})})}),o&&V.createPortal(n.jsx("div",{ref:T,style:$,className:"bu-category-dropdown__portal",children:n.jsx("div",{className:"bu-category-dropdown__panel",ref:R,children:q.map((r,e)=>{const t=r.length>f,s=e===q.length-1,l=["bu-category-dropdown__col",e>0?"bu-category-dropdown__col--indent":"",t?"bu-category-dropdown__col--scrollable":"",s&&e>0?"bu-category-dropdown__col--last":""].filter(Boolean).join(" ");return n.jsxs("div",{style:{display:"contents"},children:[e>0&&n.jsx("div",{className:"bu-category-dropdown__divider"}),n.jsx("div",{className:l,style:S?{width:S}:void 0,onMouseEnter:t?c=>c.currentTarget.classList.add("bu-category-dropdown__col--scrollbar-visible"):void 0,onMouseLeave:t?c=>c.currentTarget.classList.remove("bu-category-dropdown__col--scrollbar-visible"):void 0,children:r.map(c=>{var x;const C=m[e]===c.value,v=!!((x=c.children)!=null&&x.length),N=["bu-category-dropdown__item",C&&v?"bu-category-dropdown__item--selected-branch":"",C&&!v?"bu-category-dropdown__item--selected-leaf":"",c.disabled?"bu-category-dropdown__item--disabled":""].filter(Boolean).join(" ");return n.jsxs("button",{type:"button",className:N,disabled:c.disabled,onClick:()=>D(e,c),children:[n.jsx(z,{text:c.label,spanClassName:"bu-category-dropdown__item-label",wrapperStyle:{flex:1,minWidth:0,display:"block"},getPopupContainer:j}),v&&n.jsx("span",{className:"bu-category-dropdown__item-arrow",children:n.jsx(P,{})})]},c.value)})})]},e)})})}),document.body)]})}module.exports=U;
1
+ "use strict";
2
+
3
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
4
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
8
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
9
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10
+ var n = require("react/jsx-runtime"),
11
+ c = require("react"),
12
+ H = require("react-dom");
13
+ ; /* empty css */
14
+ ; /* empty css */
15
+ var K = require("../Tooltip/ContentTooltip.js"),
16
+ Q = require("../Tooltip/TooltipWrapper.js");
17
+ var U = Object.defineProperty,
18
+ k = Object.getOwnPropertySymbols,
19
+ X = Object.prototype.hasOwnProperty,
20
+ Y = Object.prototype.propertyIsEnumerable,
21
+ V = function V(s, e, o) {
22
+ return e in s ? U(s, e, {
23
+ enumerable: !0,
24
+ configurable: !0,
25
+ writable: !0,
26
+ value: o
27
+ }) : s[e] = o;
28
+ },
29
+ ee = function ee(s, e) {
30
+ for (var o in e || (e = {})) X.call(e, o) && V(s, o, e[o]);
31
+ if (k) {
32
+ var _iterator = _createForOfIteratorHelper(k(e)),
33
+ _step;
34
+ try {
35
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
36
+ var o = _step.value;
37
+ Y.call(e, o) && V(s, o, e[o]);
38
+ }
39
+ } catch (err) {
40
+ _iterator.e(err);
41
+ } finally {
42
+ _iterator.f();
43
+ }
44
+ }
45
+ return s;
46
+ };
47
+ function $(_ref) {
48
+ var s = _ref.text,
49
+ e = _ref.spanClassName,
50
+ o = _ref.wrapperStyle,
51
+ _ref$placement = _ref.placement,
52
+ g = _ref$placement === void 0 ? "top" : _ref$placement,
53
+ h = _ref.getPopupContainer,
54
+ v = _ref.trailing;
55
+ var p;
56
+ var _c$useState = c.useState(!1),
57
+ _c$useState2 = _slicedToArray(_c$useState, 2),
58
+ b = _c$useState2[0],
59
+ y = _c$useState2[1],
60
+ x = c.useRef(null),
61
+ d = c.useRef(null),
62
+ _c$useState3 = c.useState(null),
63
+ _c$useState4 = _slicedToArray(_c$useState3, 2),
64
+ f = _c$useState4[0],
65
+ m = _c$useState4[1];
66
+ function R() {
67
+ var w, j;
68
+ var _ = d.current;
69
+ _ && _.scrollWidth > _.offsetWidth && (m((j = (w = x.current) == null ? void 0 : w.getBoundingClientRect()) != null ? j : null), y(!0));
70
+ }
71
+ return n.jsxs(Q, {
72
+ ref: x,
73
+ style: o,
74
+ children: [n.jsx("span", {
75
+ ref: d,
76
+ className: e,
77
+ onMouseEnter: R,
78
+ onMouseLeave: function onMouseLeave() {
79
+ return y(!1);
80
+ },
81
+ children: s
82
+ }), v, b && f && H.createPortal(n.jsx("span", {
83
+ style: {
84
+ position: "fixed",
85
+ top: f.top,
86
+ left: f.left,
87
+ width: f.width,
88
+ height: f.height,
89
+ display: "block",
90
+ pointerEvents: "none",
91
+ zIndex: 9999999999
92
+ },
93
+ children: n.jsx(K, {
94
+ content: s,
95
+ placement: g,
96
+ className: "bu-category-dropdown__tooltip"
97
+ })
98
+ }), (p = h == null ? void 0 : h()) != null ? p : document.body)]
99
+ });
100
+ }
101
+ function te() {
102
+ return n.jsx("svg", {
103
+ viewBox: "0 0 20 20",
104
+ fill: "none",
105
+ xmlns: "http://www.w3.org/2000/svg",
106
+ children: n.jsx("path", {
107
+ d: "M5.57345 8.828C5.41074 8.66528 5.41074 8.40152 5.57345 8.2388C5.73617 8.07608 5.99993 8.07608 6.16265 8.2388L10.0323 12.1084L13.8349 8.24124C13.9963 8.0772 14.26 8.07503 14.4241 8.23636C14.5881 8.39771 14.5903 8.66149 14.429 8.82555L10.5282 12.7924C10.2576 13.0675 9.81477 13.0694 9.54196 12.7966L5.57345 8.828Z",
108
+ fill: "#333333"
109
+ })
110
+ });
111
+ }
112
+ function ne() {
113
+ return n.jsx("svg", {
114
+ className: "icon",
115
+ viewBox: "0 0 1024 1024",
116
+ version: "1.1",
117
+ xmlns: "http://www.w3.org/2000/svg",
118
+ "p-id": "55697",
119
+ children: n.jsx("path", {
120
+ d: "M451.854222 285.361778A21.333333 21.333333 0 1 0 421.688889 315.52l198.115555 198.122667-197.994666 194.702222a21.333333 21.333333 0 0 0 29.916444 30.414222l203.107556-199.722667a35.555556 35.555556 0 0 0 0.213333-50.488888L451.854222 285.354667z",
121
+ "p-id": "55698"
122
+ })
123
+ });
124
+ }
125
+ function oe(s, e) {
126
+ var o;
127
+ var g = [s];
128
+ var h = s;
129
+ var _loop = function _loop(v) {
130
+ var p = h.find(function (b) {
131
+ return b.value === e[v];
132
+ });
133
+ if ((o = p == null ? void 0 : p.children) != null && o.length) g.push(p.children), h = p.children;else return 1; // break
134
+ };
135
+ for (var v = 0; v < e.length; v++) {
136
+ if (_loop(v)) break;
137
+ }
138
+ return g;
139
+ }
140
+ function A(s, e) {
141
+ var o;
142
+ var g = [];
143
+ var h = s;
144
+ var _iterator2 = _createForOfIteratorHelper(e),
145
+ _step2;
146
+ try {
147
+ var _loop2 = function _loop2() {
148
+ var v = _step2.value;
149
+ var p = h.find(function (b) {
150
+ return b.value === v;
151
+ });
152
+ if (!p) return 1; // break
153
+ g.push(p), h = (o = p.children) != null ? o : [];
154
+ };
155
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
156
+ if (_loop2()) break;
157
+ }
158
+ } catch (err) {
159
+ _iterator2.e(err);
160
+ } finally {
161
+ _iterator2.f();
162
+ }
163
+ return g;
164
+ }
165
+ function re(_ref2) {
166
+ var s = _ref2.data,
167
+ _ref2$value = _ref2.value,
168
+ e = _ref2$value === void 0 ? [] : _ref2$value,
169
+ o = _ref2.onChange,
170
+ _ref2$placeholder = _ref2.placeholder,
171
+ g = _ref2$placeholder === void 0 ? "请选择分类" : _ref2$placeholder,
172
+ _ref2$disabled = _ref2.disabled,
173
+ h = _ref2$disabled === void 0 ? !1 : _ref2$disabled,
174
+ _ref2$maxVisible = _ref2.maxVisible,
175
+ v = _ref2$maxVisible === void 0 ? 6 : _ref2$maxVisible,
176
+ p = _ref2.className,
177
+ b = _ref2.style,
178
+ y = _ref2.getPopupContainer,
179
+ x = _ref2.dropdownStyle;
180
+ var _c$useState5 = c.useState(!1),
181
+ _c$useState6 = _slicedToArray(_c$useState5, 2),
182
+ d = _c$useState6[0],
183
+ f = _c$useState6[1],
184
+ _c$useState7 = c.useState(e),
185
+ _c$useState8 = _slicedToArray(_c$useState7, 2),
186
+ m = _c$useState8[0],
187
+ R = _c$useState8[1],
188
+ w = c.useRef(null),
189
+ j = c.useRef(null),
190
+ _ = c.useRef(null),
191
+ T = c.useRef(!1),
192
+ _c$useState9 = c.useState({}),
193
+ _c$useState0 = _slicedToArray(_c$useState9, 2),
194
+ Z = _c$useState0[0],
195
+ D = _c$useState0[1],
196
+ _c$useState1 = c.useState(),
197
+ _c$useState10 = _slicedToArray(_c$useState1, 2),
198
+ E = _c$useState10[0],
199
+ I = _c$useState10[1],
200
+ C = c.useCallback(function () {
201
+ var u, r;
202
+ if (!w.current) return;
203
+ var a = w.current.getBoundingClientRect();
204
+ var l = 0,
205
+ t = w.current.parentElement;
206
+ for (; t && t !== document.documentElement;) {
207
+ var S = parseInt(window.getComputedStyle(t).zIndex, 10);
208
+ if (!isNaN(S) && S > l && (l = S), t.parentElement) {
209
+ var _iterator3 = _createForOfIteratorHelper(t.parentElement.children),
210
+ _step3;
211
+ try {
212
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
213
+ var P = _step3.value;
214
+ if (P === t || !(P instanceof HTMLElement)) continue;
215
+ var M = parseInt(window.getComputedStyle(P).zIndex, 10);
216
+ !isNaN(M) && M > l && (l = M);
217
+ }
218
+ } catch (err) {
219
+ _iterator3.e(err);
220
+ } finally {
221
+ _iterator3.f();
222
+ }
223
+ }
224
+ t = t.parentElement;
225
+ }
226
+ var i = (r = (u = _.current) == null ? void 0 : u.offsetHeight) != null ? r : 0,
227
+ L = window.innerHeight - a.bottom,
228
+ O = a.top,
229
+ N = i > 0 && L < i + 4 && O > L;
230
+ D(ee({
231
+ position: "fixed",
232
+ top: N ? a.top - i - 4 : a.bottom + 4,
233
+ left: a.left,
234
+ zIndex: l > 0 ? l + 10 : 1100
235
+ }, x));
236
+ }, [x]);
237
+ c.useLayoutEffect(function () {
238
+ d && C();
239
+ }, [d, m, C]), c.useLayoutEffect(function () {
240
+ var u = d && !T.current;
241
+ if (T.current = d, !d || !_.current) return;
242
+ var r = _.current.querySelectorAll(".bu-category-dropdown__col");
243
+ r.forEach(function (t) {
244
+ t.style.width = "";
245
+ });
246
+ var a = 0;
247
+ r.forEach(function (t) {
248
+ t.offsetWidth > a && (a = t.offsetWidth);
249
+ });
250
+ var l = u ? a : Math.max(E != null ? E : 0, a);
251
+ r.forEach(function (t) {
252
+ t.style.width = l ? "".concat(l, "px") : "";
253
+ }), l !== E && I(l || void 0);
254
+ }, [d, m]), c.useEffect(function () {
255
+ if (!d) return;
256
+ function u(a) {
257
+ var l, t;
258
+ var i = a.target;
259
+ (l = w.current) != null && l.contains(i) || (t = j.current) != null && t.contains(i) || f(!1);
260
+ }
261
+ function r() {
262
+ f(!1);
263
+ }
264
+ return document.addEventListener("mousedown", u), document.addEventListener("scroll", r, !0), window.addEventListener("resize", C), function () {
265
+ document.removeEventListener("mousedown", u), document.removeEventListener("scroll", r, !0), window.removeEventListener("resize", C);
266
+ };
267
+ }, [d, C]);
268
+ var W = A(s, e),
269
+ B = W.length > 0,
270
+ q = B ? W.map(function (u) {
271
+ return u.label;
272
+ }).join(" / ") : null,
273
+ z = oe(s, m);
274
+ function F(u, r) {
275
+ var a;
276
+ if (r.disabled) return;
277
+ var l = m.slice(0, u + 1);
278
+ if (l[u] = r.value, R(l), !((a = r.children) != null && a.length)) {
279
+ var t = A(s, l);
280
+ o == null || o(l, t), f(!1);
281
+ }
282
+ }
283
+ function G() {
284
+ R(e), f(!0);
285
+ }
286
+ var J = ["bu-category-dropdown__trigger", d ? "bu-category-dropdown__trigger--open" : "", B ? "bu-category-dropdown__trigger--has-value" : ""].filter(Boolean).join(" ");
287
+ return n.jsxs("div", {
288
+ ref: w,
289
+ className: "bu-category-dropdown".concat(p ? " ".concat(p) : ""),
290
+ style: b,
291
+ children: [n.jsx("button", {
292
+ type: "button",
293
+ className: J,
294
+ disabled: h,
295
+ onClick: function onClick() {
296
+ return d ? f(!1) : G();
297
+ },
298
+ children: n.jsx($, {
299
+ text: q != null ? q : g,
300
+ spanClassName: "bu-category-dropdown__trigger-label".concat(B ? "" : " bu-category-dropdown__trigger-label--placeholder"),
301
+ wrapperStyle: {
302
+ flex: 1,
303
+ minWidth: 0,
304
+ display: "flex",
305
+ alignItems: "center",
306
+ gap: 8
307
+ },
308
+ getPopupContainer: y,
309
+ trailing: n.jsx("span", {
310
+ className: "bu-category-dropdown__trigger-chevron".concat(d ? " bu-category-dropdown__trigger-chevron--open" : ""),
311
+ children: n.jsx(te, {})
312
+ })
313
+ })
314
+ }), d && H.createPortal(n.jsx("div", {
315
+ ref: j,
316
+ style: Z,
317
+ className: "bu-category-dropdown__portal",
318
+ children: n.jsx("div", {
319
+ className: "bu-category-dropdown__panel",
320
+ ref: _,
321
+ children: z.map(function (u, r) {
322
+ var a = u.length > v,
323
+ l = r === z.length - 1,
324
+ t = ["bu-category-dropdown__col", r > 0 ? "bu-category-dropdown__col--indent" : "", a ? "bu-category-dropdown__col--scrollable" : "", l && r > 0 ? "bu-category-dropdown__col--last" : ""].filter(Boolean).join(" ");
325
+ return n.jsxs("div", {
326
+ style: {
327
+ display: "contents"
328
+ },
329
+ children: [r > 0 && n.jsx("div", {
330
+ className: "bu-category-dropdown__divider"
331
+ }), n.jsx("div", {
332
+ className: t,
333
+ style: E ? {
334
+ width: E
335
+ } : void 0,
336
+ onMouseEnter: a ? function (i) {
337
+ return i.currentTarget.classList.add("bu-category-dropdown__col--scrollbar-visible");
338
+ } : void 0,
339
+ onMouseLeave: a ? function (i) {
340
+ return i.currentTarget.classList.remove("bu-category-dropdown__col--scrollbar-visible");
341
+ } : void 0,
342
+ children: u.map(function (i) {
343
+ var L;
344
+ var O = m[r] === i.value,
345
+ N = !!((L = i.children) != null && L.length),
346
+ S = ["bu-category-dropdown__item", O && N ? "bu-category-dropdown__item--selected-branch" : "", O && !N ? "bu-category-dropdown__item--selected-leaf" : "", i.disabled ? "bu-category-dropdown__item--disabled" : ""].filter(Boolean).join(" ");
347
+ return n.jsxs("button", {
348
+ type: "button",
349
+ className: S,
350
+ disabled: i.disabled,
351
+ onClick: function onClick() {
352
+ return F(r, i);
353
+ },
354
+ children: [n.jsx($, {
355
+ text: i.label,
356
+ spanClassName: "bu-category-dropdown__item-label",
357
+ wrapperStyle: {
358
+ flex: 1,
359
+ minWidth: 0,
360
+ display: "block"
361
+ },
362
+ getPopupContainer: y
363
+ }), N && n.jsx("span", {
364
+ className: "bu-category-dropdown__item-arrow",
365
+ children: n.jsx(ne, {})
366
+ })]
367
+ }, i.value);
368
+ })
369
+ })]
370
+ }, r);
371
+ })
372
+ })
373
+ }), document.body)]
374
+ });
375
+ }
376
+ module.exports = re;