funda-ui 4.2.375 → 4.2.445

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.
@@ -12,8 +12,8 @@
12
12
  display: inline-block;
13
13
  text-align: center;
14
14
  position: absolute;
15
- right: 0.5em;
16
- top: 1.5em;
15
+ right: -1em;
16
+ top: 50%;
17
17
  transform: translateY(-50%) rotate(0deg);
18
18
  }
19
19
  .navbar-nav li {
@@ -4199,7 +4199,7 @@ var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_re
4199
4199
  var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
4200
4200
  // EXTERNAL MODULE: ../Utils/dist/cjs/index.js
4201
4201
  var cjs = __webpack_require__(456);
4202
- ;// CONCATENATED MODULE: ./src/MenuList.tsx
4202
+ ;// CONCATENATED MODULE: ./src/ItemList.tsx
4203
4203
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4204
4204
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4205
4205
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -4212,8 +4212,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
4212
4212
  /* Recursively nested components to traverse nodes
4213
4213
  -------------------------------------------------*/
4214
4214
 
4215
- function MenuList(props) {
4216
- var alternateCollapse = props.alternateCollapse,
4215
+ function ItemList(props) {
4216
+ var root = props.root,
4217
+ alternateCollapse = props.alternateCollapse,
4217
4218
  first = props.first,
4218
4219
  arrow = props.arrow,
4219
4220
  childClassName = props.childClassName,
@@ -4268,6 +4269,7 @@ function MenuList(props) {
4268
4269
  };
4269
4270
  function handleClick(e) {
4270
4271
  e.preventDefault();
4272
+ e.stopPropagation();
4271
4273
  var hyperlink = e.currentTarget;
4272
4274
  var url = hyperlink.getAttribute('href');
4273
4275
  var subElement = (0,cjs.getNextSiblings)(hyperlink, 'ul');
@@ -4321,48 +4323,50 @@ function MenuList(props) {
4321
4323
  }));
4322
4324
  }
4323
4325
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
4324
- // Activate current item
4325
- //=====================
4326
- var allItems = rootRef.current ? [].slice.call(document.querySelectorAll(".".concat(childClassName, " a"))).map(function (item) {
4327
- var _item$parentNode$clas;
4328
- return {
4329
- href: item.getAttribute('href'),
4330
- el: item,
4331
- actived: (_item$parentNode$clas = item.parentNode.classList) !== null && _item$parentNode$clas !== void 0 && _item$parentNode$clas.contains('active') ? true : false,
4332
- expandedLink: document.body.contains(item.parentNode.parentNode.previousSibling) ? item.parentNode.parentNode.previousSibling : false
4333
- };
4334
- }) : [];
4335
- allItems.forEach(function (hyperlink) {
4336
- // Expand the currently active item by default
4337
- if (hyperlink.actived) {
4338
- hyperlink.el.setAttribute('aria-expanded', 'true');
4339
- if (hyperlink.expandedLink) {
4340
- var expandedLink = hyperlink.expandedLink; // <a>
4341
- activeClass(expandedLink.parentNode, 'add');
4342
- expandedLink.setAttribute('aria-expanded', true);
4343
- }
4344
-
4345
- // init <ul> height
4346
- var ul = (0,cjs.getNextSiblings)(hyperlink.el, 'ul');
4347
- [].slice.call(ul).forEach(function (_curUl) {
4348
- var allHeight = [].slice.call(_curUl.querySelectorAll('li')).map(function (_curLi) {
4349
- return _curLi.scrollHeight;
4350
- });
4326
+ if (root !== null && data.length > 0) {
4327
+ // Activate current item
4328
+ //=====================
4329
+ var allItems = rootRef.current ? [].slice.call(root.querySelectorAll(".".concat(childClassName, " a"))).map(function (item) {
4330
+ var _item$parentNode$clas;
4331
+ return {
4332
+ href: item.getAttribute('href'),
4333
+ el: item,
4334
+ actived: (_item$parentNode$clas = item.parentNode.classList) !== null && _item$parentNode$clas !== void 0 && _item$parentNode$clas.contains('active') ? true : false,
4335
+ expandedLink: document.body.contains(item.parentNode.parentNode.previousSibling) ? item.parentNode.parentNode.previousSibling : false
4336
+ };
4337
+ }) : [];
4338
+ allItems.forEach(function (hyperlink) {
4339
+ // Expand the currently active item by default
4340
+ if (hyperlink.actived) {
4341
+ hyperlink.el.setAttribute('aria-expanded', 'true');
4342
+ if (hyperlink.expandedLink) {
4343
+ var expandedLink = hyperlink.expandedLink; // <a>
4344
+ activeClass(expandedLink.parentNode, 'add');
4345
+ expandedLink.setAttribute('aria-expanded', true);
4346
+ }
4351
4347
 
4352
- // Prevent missing height, causing the last element to be clipped
4353
- var maxHeight = Math.max.apply(Math, _toConsumableArray(allHeight));
4354
- allHeight.push(maxHeight * 3);
4348
+ // init <ul> height
4349
+ var ul = (0,cjs.getNextSiblings)(hyperlink.el, 'ul');
4350
+ [].slice.call(ul).forEach(function (_curUl) {
4351
+ var allHeight = [].slice.call(_curUl.querySelectorAll('li')).map(function (_curLi) {
4352
+ return _curLi.scrollHeight;
4353
+ });
4355
4354
 
4356
- //
4357
- var totalHeight = allHeight.reduce(function (accumulator, currentValue) {
4358
- return accumulator + currentValue;
4359
- }, 0);
4355
+ // Prevent missing height, causing the last element to be clipped
4356
+ var maxHeight = Math.max.apply(Math, _toConsumableArray(allHeight));
4357
+ allHeight.push(maxHeight * 3);
4360
4358
 
4361
- // Prevent the use of iframe or other situations where the height is 0
4362
- _curUl.style.maxHeight = "".concat(totalHeight == 0 ? 999 : totalHeight, "px");
4363
- });
4364
- }
4365
- });
4359
+ //
4360
+ var totalHeight = allHeight.reduce(function (accumulator, currentValue) {
4361
+ return accumulator + currentValue;
4362
+ }, 0);
4363
+
4364
+ // Prevent the use of iframe or other situations where the height is 0
4365
+ _curUl.style.maxHeight = "".concat(totalHeight == 0 ? 999 : totalHeight, "px");
4366
+ });
4367
+ }
4368
+ });
4369
+ }
4366
4370
  }, [data]);
4367
4371
  if (data) {
4368
4372
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("ul", {
@@ -4417,9 +4421,10 @@ function MenuList(props) {
4417
4421
  dangerouslySetInnerHTML: {
4418
4422
  __html: "".concat(item.title)
4419
4423
  }
4420
- }), item.children ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
4424
+ }), item.children && item.children.length > 0 ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
4421
4425
  className: "arrow"
4422
- }, arrowGenerator()) : ''), item.children && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuList, {
4426
+ }, arrowGenerator()) : ''), item.children && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(ItemList, {
4427
+ root: root,
4423
4428
  data: item.children,
4424
4429
  first: false,
4425
4430
  arrow: arrow,
@@ -4450,6 +4455,7 @@ var MultilevelDropdownMenu = function MultilevelDropdownMenu(props) {
4450
4455
  data = props.data,
4451
4456
  id = props.id,
4452
4457
  onSelect = props.onSelect;
4458
+ var rootRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
4453
4459
  var uniqueID = (0,cjs.useComId)();
4454
4460
  var idRes = id || uniqueID;
4455
4461
  var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
@@ -4461,8 +4467,10 @@ var MultilevelDropdownMenu = function MultilevelDropdownMenu(props) {
4461
4467
  }, [data]);
4462
4468
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("nav", {
4463
4469
  id: idRes,
4464
- className: navbarClassName ? navbarClassName : "navbar"
4465
- }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuList, {
4470
+ className: navbarClassName ? navbarClassName : "navbar",
4471
+ ref: rootRef
4472
+ }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(ItemList, {
4473
+ root: rootRef.current,
4466
4474
  alternateCollapse: alternateCollapse,
4467
4475
  first: true,
4468
4476
  arrow: arrow,
@@ -30,6 +30,7 @@
30
30
  border-radius: 0.35rem;
31
31
  position: relative;
32
32
  background: var(--m-select-body-bg);
33
+ /*-------- Multilevel --------*/
33
34
  /*-------- List --------*/
34
35
  }
35
36
  .m-select__wrapper .m-select-diving-line {
@@ -74,8 +75,7 @@
74
75
  cursor: default;
75
76
  position: relative;
76
77
  font-size: var(--m-select-body-font-size);
77
- display: flex;
78
- justify-content: space-between;
78
+ display: block;
79
79
  background: var(--m-select-options-item-bg);
80
80
  border-bottom: 1px solid var(--m-select-options-item-dividingline-color);
81
81
  }
@@ -99,37 +99,34 @@
99
99
  .m-select__wrapper .m-select-inner li:last-child {
100
100
  border-bottom: none;
101
101
  }
102
- .m-select__wrapper .m-select-inner li > span {
102
+ .m-select__wrapper .m-select-inner li > div {
103
103
  padding: 0.35rem 0.75rem;
104
- display: inline-block;
105
- max-width: 100%;
104
+ display: flex;
105
+ justify-content: space-between;
106
+ width: 100%;
106
107
  overflow: hidden;
107
108
  text-overflow: ellipsis;
108
109
  word-wrap: break-word;
109
110
  word-break: break-word;
110
111
  }
111
- .m-select__wrapper .m-select-inner li > strong {
112
+ .m-select__wrapper .m-select-inner li > div > strong {
112
113
  font-weight: normal;
114
+ display: flex;
115
+ align-items: center;
113
116
  }
114
- .m-select__wrapper .m-select-inner li > i {
117
+ .m-select__wrapper .m-select-inner li > div > strong .arrow {
115
118
  display: inline-block;
116
- padding: 0.35rem 0.75rem;
117
- cursor: pointer;
119
+ margin-left: 0.2rem;
118
120
  }
119
- .m-select__wrapper .m-select-inner li > i svg path {
120
- fill: var(--m-select-options-item-icon-color);
121
+ .m-select__wrapper .m-select-inner li > div.active .arrow {
122
+ transform: rotate(90deg);
121
123
  }
122
- .m-select__wrapper .m-select-inner li a {
123
- color: #999;
124
- text-decoration: none;
125
- padding: 0;
126
- display: block;
124
+ .m-select__wrapper .m-select-inner li > div > i {
125
+ display: inline-block;
127
126
  cursor: pointer;
128
127
  }
129
- .m-select__wrapper .m-select-inner li a.m-select__item-action {
130
- position: absolute;
131
- right: 0.5rem;
132
- top: 0.5rem;
128
+ .m-select__wrapper .m-select-inner li > div > i svg path {
129
+ fill: var(--m-select-options-item-icon-color);
133
130
  }
134
131
  .m-select__wrapper .m-select-inner div.m-select__selected__container .m-select__header {
135
132
  border-radius: 0 0.35rem 0 0;
@@ -186,26 +183,38 @@
186
183
  .m-select__wrapper .m-select-inner .m-select__search__container i svg {
187
184
  fill: var(--m-select-search-icon-color);
188
185
  }
189
- .m-select__wrapper .m-select__options-contentlist {
186
+ .m-select__wrapper ul.m-select__options-contentlist > li ul {
187
+ transition: max-height 0.25s ease;
188
+ overflow: hidden;
189
+ position: relative;
190
+ padding-left: 1rem;
191
+ }
192
+ .m-select__wrapper ul.m-select__options-contentlist > li:not(.active) ul {
193
+ max-height: 0;
194
+ }
195
+ .m-select__wrapper ul.m-select__options-contentlist > li ul ul {
196
+ margin-top: auto;
197
+ }
198
+ .m-select__wrapper ul.m-select__options-contentlist {
190
199
  position: relative;
191
200
  width: 100%;
192
201
  overflow: hidden;
193
202
  overflow-y: auto;
194
203
  max-height: calc(315px - 1.75rem);
195
204
  }
196
- .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar {
205
+ .m-select__wrapper ul.m-select__options-contentlist::-webkit-scrollbar {
197
206
  width: var(--m-select-scrollbar-w);
198
207
  }
199
- .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar-thumb {
208
+ .m-select__wrapper ul.m-select__options-contentlist::-webkit-scrollbar-thumb {
200
209
  background: var(--m-select-scrollbar-color);
201
210
  }
202
- .m-select__wrapper .m-select__options-contentlist::-webkit-scrollbar-track {
211
+ .m-select__wrapper ul.m-select__options-contentlist::-webkit-scrollbar-track {
203
212
  background: var(--m-select-scrollbar-track);
204
213
  }
205
- .m-select__wrapper .m-select__options-contentlist.dragging {
214
+ .m-select__wrapper ul.m-select__options-contentlist.dragging {
206
215
  cursor: grab;
207
216
  }
208
- .m-select__wrapper .m-select__options-contentlist--hide {
217
+ .m-select__wrapper ul.m-select__options-contentlist--hide {
209
218
  overflow: hidden;
210
219
  height: auto;
211
220
  }
@@ -4,6 +4,7 @@ export interface OptionConfig {
4
4
  }
5
5
  declare type MultipleSelectProps = {
6
6
  wrapperClassName?: string;
7
+ childClassName?: string;
7
8
  wrapperMinHeight?: string;
8
9
  wrapperMinWidth?: string;
9
10
  availableHeaderTitle?: string;
@@ -16,6 +17,8 @@ declare type MultipleSelectProps = {
16
17
  hierarchical?: boolean;
17
18
  indentation?: string;
18
19
  doubleIndent?: boolean;
20
+ alternateCollapse?: boolean;
21
+ arrow?: React.ReactNode;
19
22
  value?: string;
20
23
  label?: React.ReactNode | string;
21
24
  name?: string;