@unifiedsoftware/react-ui 1.0.3 → 1.0.4

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/dist/index.js CHANGED
@@ -68,6 +68,10 @@ __export(src_exports, {
68
68
  Breadcrumb: () => Breadcrumb,
69
69
  Button: () => Button,
70
70
  CloseIcon: () => CloseIcon,
71
+ Collapse: () => Collapse_default,
72
+ CollapseContent: () => CollapseContent_default,
73
+ CollapseContext: () => CollapseContext_default,
74
+ CollapseTrigger: () => CollapseTrigger_default,
71
75
  DrawerContext: () => DrawerContext,
72
76
  DrawerContextProvider: () => DrawerContextProvider,
73
77
  DropEnumList: () => DropEnumList,
@@ -78,9 +82,15 @@ __export(src_exports, {
78
82
  ItemSidebar: () => ItemSidebar,
79
83
  LoaderGrid: () => LoaderGrid,
80
84
  Main: () => Main,
81
- MenuItem: () => MenuItem,
85
+ Menu: () => Menu_default,
86
+ MenuContext: () => MenuContext_default,
87
+ MenuGroup: () => MenuGroup_default,
88
+ MenuItem: () => MenuItem_default,
89
+ MenuItems: () => MenuItem2,
82
90
  MenuOptions: () => MenuOptions,
91
+ MenuSubmenu: () => MenuSubmenu_default,
83
92
  MenuTitle: () => MenuTitle,
93
+ MenuValueContext: () => MenuValueContext_default,
84
94
  NavOptions: () => NavOptions,
85
95
  Navbar: () => Navbar,
86
96
  SidebarMainContext: () => SidebarMainContext,
@@ -89,7 +99,11 @@ __export(src_exports, {
89
99
  Tab: () => Tab,
90
100
  Tabs: () => Tabs,
91
101
  Title: () => Title,
102
+ getOpenValuesByPathname: () => getOpenValuesByPathname,
103
+ useCollapse: () => useCollapse,
92
104
  useLocalStorage: () => useLocalStorage,
105
+ useMenu: () => useMenu,
106
+ useMenuItemValue: () => useMenuItemValue,
93
107
  usePrevious: () => usePrevious,
94
108
  useStep: () => useStep
95
109
  });
@@ -98,45 +112,510 @@ module.exports = __toCommonJS(src_exports);
98
112
  // src/components/Button/Button.tsx
99
113
  var import_clsx = __toESM(require("clsx"));
100
114
  var import_react = require("react");
115
+ var import_ri = require("react-icons/ri");
116
+
117
+ // src/constants/index.ts
118
+ var PREFIX_CLS = "us-";
119
+
120
+ // src/components/Button/Button.tsx
101
121
  var import_jsx_runtime = require("react/jsx-runtime");
102
- var prefixCls = "us-";
103
122
  var Button = (0, import_react.forwardRef)(
104
123
  (_a, ref) => {
105
- var _b = _a, { as: Component = "button", children, className, variant = "text", color = "primary", size = "md" } = _b, rest = __objRest(_b, ["as", "children", "className", "variant", "color", "size"]);
124
+ var _b = _a, {
125
+ as: Component = "button",
126
+ children,
127
+ className,
128
+ role = "presentation",
129
+ variant = "text",
130
+ color = "primary",
131
+ size = "md",
132
+ prefix,
133
+ suffix,
134
+ loading
135
+ } = _b, rest = __objRest(_b, [
136
+ "as",
137
+ "children",
138
+ "className",
139
+ "role",
140
+ "variant",
141
+ "color",
142
+ "size",
143
+ "prefix",
144
+ "suffix",
145
+ "loading"
146
+ ]);
106
147
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
107
148
  Component,
108
149
  __spreadProps(__spreadValues({
109
150
  ref,
110
151
  className: (0, import_clsx.default)(
111
- `${prefixCls}button`,
152
+ `${PREFIX_CLS}button`,
112
153
  {
113
- [`${prefixCls}button--${variant}`]: variant,
114
- [`${prefixCls}button--${color}`]: color,
115
- [`${prefixCls}button--${size}`]: size
154
+ [`${PREFIX_CLS}button--${variant}`]: variant,
155
+ [`${PREFIX_CLS}button--${color}`]: color,
156
+ [`${PREFIX_CLS}button--${size}`]: size
116
157
  },
117
158
  className
118
- )
159
+ ),
160
+ role
119
161
  }, rest), {
120
162
  children: [
121
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}button__elevation` }),
122
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}button__outline` }),
123
- children
163
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${PREFIX_CLS}overlay` }),
164
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ri.RiLoader4Line, { className: `${PREFIX_CLS}icon ${PREFIX_CLS}animation-spin` }) : prefix,
165
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${PREFIX_CLS}button__content`, children }),
166
+ suffix
124
167
  ]
125
168
  })
126
169
  );
127
170
  }
128
171
  );
129
172
 
130
- // src/components/Tabs/Tab.tsx
173
+ // src/components/Collapse/Collapse.tsx
174
+ var import_react3 = require("react");
175
+
176
+ // src/components/Collapse/CollapseContext.tsx
177
+ var import_react2 = require("react");
178
+ var CollapseContext = (0, import_react2.createContext)(null);
179
+ var useCollapse = () => {
180
+ const context = (0, import_react2.useContext)(CollapseContext);
181
+ if (!context) {
182
+ throw new Error("`useCollapse` must be used within a `<Collapse />`");
183
+ }
184
+ return context;
185
+ };
186
+ var CollapseContext_default = CollapseContext;
187
+
188
+ // src/components/Collapse/Collapse.tsx
189
+ var import_jsx_runtime2 = require("react/jsx-runtime");
190
+ var Collapse = ({ children, isOpen, onOpen, onClose, onToggle }) => {
191
+ const collapseRef = (0, import_react3.useRef)(null);
192
+ const [selfIsOpen, setSelfIsOpen] = (0, import_react3.useState)(isOpen != null ? isOpen : false);
193
+ const [heightAuto, setHeightAuto] = (0, import_react3.useState)(false);
194
+ const [trigger, content] = import_react3.Children.toArray(children);
195
+ const handleOpen = () => {
196
+ setSelfIsOpen(true);
197
+ onOpen == null ? void 0 : onOpen();
198
+ };
199
+ const handleClose = () => {
200
+ setSelfIsOpen(false);
201
+ onClose == null ? void 0 : onClose();
202
+ };
203
+ const handleToggle = () => {
204
+ setSelfIsOpen((prevState) => !prevState);
205
+ onToggle == null ? void 0 : onToggle();
206
+ };
207
+ (0, import_react3.useEffect)(() => {
208
+ if (isOpen !== void 0) {
209
+ setSelfIsOpen(isOpen);
210
+ }
211
+ setTimeout(() => {
212
+ if (isOpen) {
213
+ setHeightAuto(true);
214
+ } else {
215
+ setHeightAuto(false);
216
+ }
217
+ }, 100);
218
+ }, [isOpen]);
219
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
220
+ CollapseContext_default.Provider,
221
+ {
222
+ value: {
223
+ collapseRef,
224
+ isOpen: selfIsOpen,
225
+ heightAuto,
226
+ onOpen: handleOpen,
227
+ onClose: handleClose,
228
+ onToggle: handleToggle
229
+ },
230
+ children: [
231
+ trigger,
232
+ content
233
+ ]
234
+ }
235
+ );
236
+ };
237
+ var Collapse_default = Collapse;
238
+
239
+ // src/components/Collapse/CollapseContent.tsx
131
240
  var import_clsx2 = __toESM(require("clsx"));
241
+ var import_react4 = require("react");
242
+ var CollapseContent = (0, import_react4.forwardRef)(({ children }, ref) => {
243
+ var _a, _b;
244
+ const { collapseRef, isOpen, heightAuto } = useCollapse();
245
+ const child = import_react4.Children.only(children);
246
+ return (0, import_react4.cloneElement)(child, __spreadProps(__spreadValues({}, child.props), {
247
+ ref: (node) => {
248
+ collapseRef.current = node;
249
+ if (ref !== null) {
250
+ ref.current = node;
251
+ }
252
+ },
253
+ style: __spreadProps(__spreadValues({}, child.props.style), {
254
+ height: isOpen && heightAuto ? "auto" : isOpen ? (_a = collapseRef.current) == null ? void 0 : _a.scrollHeight : !isOpen && heightAuto ? (_b = collapseRef.current) == null ? void 0 : _b.scrollHeight : 0
255
+ }),
256
+ className: (0, import_clsx2.default)(`${PREFIX_CLS}collapse`, child.props.className)
257
+ }));
258
+ });
259
+ var CollapseContent_default = CollapseContent;
260
+
261
+ // src/components/Collapse/CollapseTrigger.tsx
262
+ var import_react5 = require("react");
263
+ var CollapseTrigger = (0, import_react5.forwardRef)(({ children }, ref) => {
264
+ const { collapseRef, onToggle } = useCollapse();
265
+ const child = import_react5.Children.only(children);
266
+ return (0, import_react5.cloneElement)(child, __spreadValues({
267
+ ref,
268
+ onClick: (event) => {
269
+ var _a, _b;
270
+ if (!collapseRef.current) {
271
+ return;
272
+ }
273
+ onToggle();
274
+ (_b = (_a = child.props).onClick) == null ? void 0 : _b.call(_a, event);
275
+ }
276
+ }, child.props));
277
+ });
278
+ var CollapseTrigger_default = CollapseTrigger;
279
+
280
+ // src/components/Menu/Menu.tsx
281
+ var import_clsx6 = __toESM(require("clsx"));
282
+ var import_react11 = require("react");
283
+
284
+ // src/components/Menu/MenuContext.tsx
285
+ var import_react6 = require("react");
286
+ var MenuContext = (0, import_react6.createContext)(null);
287
+ var useMenu = () => {
288
+ const context = (0, import_react6.useContext)(MenuContext);
289
+ if (!context) {
290
+ throw new Error("`useMenu` must be used within a `<Menu />`");
291
+ }
292
+ return context;
293
+ };
294
+ var MenuContext_default = MenuContext;
295
+
296
+ // src/components/Menu/MenuGroup.tsx
297
+ var import_clsx5 = __toESM(require("clsx"));
298
+ var import_react10 = require("react");
299
+
300
+ // src/components/Menu/MenuItem.tsx
301
+ var import_clsx3 = __toESM(require("clsx"));
302
+ var import_react8 = require("react");
303
+
304
+ // src/components/Menu/MenuValueContext.tsx
305
+ var import_react7 = require("react");
306
+ var MenuValueContext = (0, import_react7.createContext)([]);
307
+ var useMenuItemValue = () => {
308
+ const context = (0, import_react7.useContext)(MenuValueContext);
309
+ if (!context) {
310
+ throw new Error("`useMenuValue` must be used within a `<MenuValueContext.Provider />`");
311
+ }
312
+ return context;
313
+ };
314
+ var MenuValueContext_default = MenuValueContext;
315
+
316
+ // src/components/Menu/MenuItem.tsx
317
+ var import_jsx_runtime3 = require("react/jsx-runtime");
318
+ var MenuItem = (0, import_react8.forwardRef)(
319
+ (_a, ref) => {
320
+ var _b = _a, { as: Component = "div", className, style, value, title, icon, level = 1, disabled, onClick } = _b, rest = __objRest(_b, ["as", "className", "style", "value", "title", "icon", "level", "disabled", "onClick"]);
321
+ const { value: menuValue, openMode, onChange, onOpen } = useMenu();
322
+ const values = (0, import_react8.useContext)(MenuValueContext_default);
323
+ const mergedValues = [...values, value];
324
+ const [openMounted, setOpenMounted] = (0, import_react8.useState)(false);
325
+ const handleClick = (event) => {
326
+ if (value !== void 0) {
327
+ onChange(mergedValues);
328
+ }
329
+ onClick == null ? void 0 : onClick(event);
330
+ };
331
+ (0, import_react8.useEffect)(() => {
332
+ if (openMode === "automatic" && menuValue.length > 0 && menuValue[menuValue.length - 1] === value && !openMounted) {
333
+ onOpen(values);
334
+ onChange(mergedValues);
335
+ setOpenMounted(true);
336
+ }
337
+ }, [value, menuValue, openMode, openMounted]);
338
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
339
+ Component,
340
+ __spreadProps(__spreadValues({
341
+ ref,
342
+ className: (0, import_clsx3.default)(
343
+ `${PREFIX_CLS}menu-item`,
344
+ {
345
+ [`${PREFIX_CLS}menu-item--selected`]: menuValue.includes(value),
346
+ [`${PREFIX_CLS}menu-item--disabled`]: disabled
347
+ },
348
+ className
349
+ ),
350
+ style: __spreadValues({
351
+ paddingLeft: level <= 1 ? `var(--${PREFIX_CLS}menu-item-padding-x)` : `calc(${level} * var(--${PREFIX_CLS}menu-item-padding-level))`
352
+ }, style),
353
+ onClick: handleClick
354
+ }, rest), {
355
+ children: [
356
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${PREFIX_CLS}overlay`, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${PREFIX_CLS}overlay__surface` }) }),
357
+ icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: icon }),
358
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${PREFIX_CLS}menu-item__content`, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: `${PREFIX_CLS}menu-item__title`, children: title }) })
359
+ ]
360
+ })
361
+ );
362
+ }
363
+ );
364
+ MenuItem.displayName = "MenuItem";
365
+ var MenuItem_default = MenuItem;
366
+
367
+ // src/components/Menu/MenuSubmenu.tsx
368
+ var import_clsx4 = __toESM(require("clsx"));
369
+ var import_react9 = require("react");
370
+ var import_md = require("react-icons/md");
371
+
372
+ // src/components/Menu/utils.ts
373
+ var getOpenValuesByPathname = (pathname) => {
374
+ return pathname.split("/").reduce((previousValue, currentValue) => {
375
+ const previousPath = previousValue[previousValue.length - 1];
376
+ if (previousPath != void 0) {
377
+ previousValue.push(previousPath + "/" + currentValue);
378
+ } else {
379
+ previousValue.push("");
380
+ }
381
+ return previousValue;
382
+ }, []);
383
+ };
384
+ var addOrRemoveValueInArray = (array, value) => {
385
+ const index = array.indexOf(value);
386
+ const newArray = [...array];
387
+ if (index === -1) {
388
+ newArray.push(value);
389
+ } else {
390
+ newArray.splice(index, 1);
391
+ }
392
+ return newArray;
393
+ };
394
+
395
+ // src/components/Menu/MenuSubmenu.tsx
396
+ var import_jsx_runtime4 = require("react/jsx-runtime");
397
+ var MenuSubmenu = (_a) => {
398
+ var _b = _a, {
399
+ children,
400
+ className,
401
+ style,
402
+ value,
403
+ title,
404
+ icon,
405
+ level = 1,
406
+ items,
407
+ onClick
408
+ } = _b, rest = __objRest(_b, [
409
+ "children",
410
+ "className",
411
+ "style",
412
+ "value",
413
+ "title",
414
+ "icon",
415
+ "level",
416
+ "items",
417
+ "onClick"
418
+ ]);
419
+ const { value: menuValue, openValues, expandMode, openMode, onOpen } = useMenu();
420
+ const values = (0, import_react9.useContext)(MenuValueContext_default);
421
+ const isOpen = openValues.includes(value);
422
+ const mergedValues = [...values, value];
423
+ const [openMounted, setOpenMounted] = (0, import_react9.useState)(false);
424
+ const content = (0, import_react9.useMemo)(() => {
425
+ return items == null ? void 0 : items.map((_a2, index) => {
426
+ var _b2 = _a2, { type } = _b2, item = __objRest(_b2, ["type"]);
427
+ return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MenuItem_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MenuSubmenu, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : type === "group" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MenuGroup_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MenuItem_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index);
428
+ });
429
+ }, [items]);
430
+ const handleClick = (event) => {
431
+ if (expandMode === "multiple") {
432
+ const updatedOpenValues = addOrRemoveValueInArray(openValues, value);
433
+ onOpen(updatedOpenValues);
434
+ } else {
435
+ if (isOpen) {
436
+ const updatedOpenValues = addOrRemoveValueInArray(mergedValues, value);
437
+ onOpen(updatedOpenValues);
438
+ } else {
439
+ const updatedOpenValues = addOrRemoveValueInArray(values, value);
440
+ onOpen(updatedOpenValues);
441
+ }
442
+ }
443
+ onClick == null ? void 0 : onClick(event);
444
+ };
445
+ (0, import_react9.useEffect)(() => {
446
+ if (openMode === "automatic" && menuValue.length > 0 && menuValue[menuValue.length - 1] === value && !openMounted) {
447
+ onOpen(values);
448
+ setOpenMounted(true);
449
+ }
450
+ }, [value, menuValue, openMode, openMounted]);
451
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MenuValueContext_default.Provider, { value: mergedValues, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: (0, import_clsx4.default)(`${PREFIX_CLS}menu-submenu`), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Collapse_default, { isOpen, children: [
452
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CollapseTrigger_default, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
453
+ "div",
454
+ __spreadProps(__spreadValues({
455
+ className: (0, import_clsx4.default)(
456
+ `${PREFIX_CLS}menu-item`,
457
+ {
458
+ [`${PREFIX_CLS}menu-item--selected`]: menuValue.includes(value) || items && mergedValues.includes(menuValue)
459
+ },
460
+ className
461
+ ),
462
+ style: __spreadValues({
463
+ paddingLeft: level <= 1 ? `var(--${PREFIX_CLS}menu-item-padding-x)` : `calc(${level} * var(--${PREFIX_CLS}menu-item-padding-level))`
464
+ }, style),
465
+ onClick: handleClick
466
+ }, rest), {
467
+ children: [
468
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: `${PREFIX_CLS}overlay`, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: `${PREFIX_CLS}overlay__surface` }) }),
469
+ icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: icon }),
470
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: `${PREFIX_CLS}menu-item__content`, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: `${PREFIX_CLS}menu-item__title`, children: title }) }),
471
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_md.MdKeyboardArrowUp, { className: `${PREFIX_CLS}icon` }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_md.MdKeyboardArrowDown, { className: `${PREFIX_CLS}icon` }) })
472
+ ]
473
+ })
474
+ ) }),
475
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CollapseContent_default, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
476
+ "ul",
477
+ {
478
+ className: (0, import_clsx4.default)(`${PREFIX_CLS}menu`, {
479
+ [`${PREFIX_CLS}menu-open`]: !open
480
+ }),
481
+ children: content || children
482
+ }
483
+ ) })
484
+ ] }) }) });
485
+ };
486
+ var MenuSubmenu_default = MenuSubmenu;
487
+
488
+ // src/components/Menu/MenuGroup.tsx
489
+ var import_jsx_runtime5 = require("react/jsx-runtime");
490
+ var MenuGroup = (_a) => {
491
+ var _b = _a, {
492
+ children,
493
+ className,
494
+ style,
495
+ title,
496
+ icon,
497
+ level = 1,
498
+ items
499
+ } = _b, rest = __objRest(_b, [
500
+ "children",
501
+ "className",
502
+ "style",
503
+ "title",
504
+ "icon",
505
+ "level",
506
+ "items"
507
+ ]);
508
+ const content = (0, import_react10.useMemo)(() => {
509
+ return items == null ? void 0 : items.map((_a2, index) => {
510
+ var _b2 = _a2, { type } = _b2, item = __objRest(_b2, ["type"]);
511
+ return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MenuItem_default, __spreadValues({}, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MenuSubmenu_default, __spreadValues({}, item), index) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MenuItem_default, __spreadValues({}, item), index);
512
+ });
513
+ }, [items]);
514
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
515
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
516
+ "div",
517
+ __spreadProps(__spreadValues({
518
+ className: (0, import_clsx5.default)(`${PREFIX_CLS}menu-group`, className),
519
+ style: __spreadValues({
520
+ paddingLeft: level <= 1 ? `var(--${PREFIX_CLS}menu-group-padding-x)` : `calc(${level} * var(--${PREFIX_CLS}menu-group-padding-level))`
521
+ }, style)
522
+ }, rest), {
523
+ children: [
524
+ icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: `${PREFIX_CLS}menu-group__icon`, children: icon }),
525
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: `${PREFIX_CLS}menu-group__content`, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: `${PREFIX_CLS}menu-group__title`, children: title }) })
526
+ ]
527
+ })
528
+ ),
529
+ content || children
530
+ ] });
531
+ };
532
+ var MenuGroup_default = MenuGroup;
533
+
534
+ // src/components/Menu/Menu.tsx
535
+ var import_jsx_runtime6 = require("react/jsx-runtime");
536
+ var Menu = (_a) => {
537
+ var _b = _a, {
538
+ children,
539
+ value: valueProp,
540
+ defaultValue,
541
+ openValues: openValuesProp,
542
+ expandMode = "multiple",
543
+ openMode = "manual",
544
+ items,
545
+ onChange,
546
+ onOpen
547
+ } = _b, rest = __objRest(_b, [
548
+ "children",
549
+ "value",
550
+ "defaultValue",
551
+ "openValues",
552
+ "expandMode",
553
+ "openMode",
554
+ "items",
555
+ "onChange",
556
+ "onOpen"
557
+ ]);
558
+ var _a2;
559
+ const [selfValue, setSelfValue] = (0, import_react11.useState)((_a2 = valueProp != null ? valueProp : defaultValue) != null ? _a2 : []);
560
+ const [selfOpenValues, setSelfOpenValues] = (0, import_react11.useState)(openValuesProp != null ? openValuesProp : []);
561
+ const content = (0, import_react11.useMemo)(() => {
562
+ return items == null ? void 0 : items.map((_a3, index) => {
563
+ var _b2 = _a3, { type } = _b2, item = __objRest(_b2, ["type"]);
564
+ return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenuItem_default, __spreadValues({}, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenuSubmenu_default, __spreadValues({}, item), index) : type === "group" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenuGroup_default, __spreadValues({}, item), index) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenuItem_default, __spreadValues({}, item), index);
565
+ });
566
+ }, [items]);
567
+ const handleChange = (value) => {
568
+ if (valueProp !== void 0) {
569
+ onChange == null ? void 0 : onChange(value);
570
+ } else {
571
+ setSelfValue(value);
572
+ }
573
+ };
574
+ const handleOpen = (values) => {
575
+ if (openValuesProp !== void 0) {
576
+ onOpen == null ? void 0 : onOpen(values);
577
+ } else {
578
+ setSelfOpenValues(values);
579
+ }
580
+ };
581
+ (0, import_react11.useEffect)(() => {
582
+ if (valueProp !== void 0) {
583
+ setSelfValue(valueProp);
584
+ }
585
+ }, [valueProp]);
586
+ (0, import_react11.useEffect)(() => {
587
+ if (openValuesProp !== void 0) {
588
+ setSelfOpenValues(openValuesProp);
589
+ }
590
+ }, [openValuesProp]);
591
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
592
+ MenuContext_default.Provider,
593
+ {
594
+ value: {
595
+ value: selfValue,
596
+ openValues: selfOpenValues,
597
+ expandMode,
598
+ openMode,
599
+ onOpen: handleOpen,
600
+ onChange: handleChange
601
+ },
602
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", __spreadProps(__spreadValues({ className: (0, import_clsx6.default)(`${PREFIX_CLS}menu`) }, rest), { children: content || children }))
603
+ }
604
+ );
605
+ };
606
+ Menu.displayName = "Menu";
607
+ var Menu_default = Menu;
608
+
609
+ // src/components/Tabs/Tab.tsx
610
+ var import_clsx7 = __toESM(require("clsx"));
132
611
  var import_merge_refs = __toESM(require("merge-refs"));
133
- var import_react3 = require("react");
612
+ var import_react13 = require("react");
134
613
 
135
614
  // src/components/Tabs/TabsContext.ts
136
- var import_react2 = require("react");
137
- var TabsContext = (0, import_react2.createContext)(null);
615
+ var import_react12 = require("react");
616
+ var TabsContext = (0, import_react12.createContext)(null);
138
617
  var useTabs = () => {
139
- const context = (0, import_react2.useContext)(TabsContext);
618
+ const context = (0, import_react12.useContext)(TabsContext);
140
619
  if (!context) {
141
620
  throw new Error("`useTabs` must be used within a `<Tabs />`");
142
621
  }
@@ -144,12 +623,11 @@ var useTabs = () => {
144
623
  };
145
624
 
146
625
  // src/components/Tabs/Tab.tsx
147
- var import_jsx_runtime2 = require("react/jsx-runtime");
148
- var prefixCls2 = "us-";
149
- var Tab = (0, import_react3.forwardRef)(
626
+ var import_jsx_runtime7 = require("react/jsx-runtime");
627
+ var Tab = (0, import_react13.forwardRef)(
150
628
  (_a, ref) => {
151
- var _b = _a, { as: Component = "div", children, className, value, onClick } = _b, rest = __objRest(_b, ["as", "children", "className", "value", "onClick"]);
152
- const tabRef = (0, import_react3.useRef)(null);
629
+ var _b = _a, { as: Component = "div", children, className, role = "presentation", value, onClick } = _b, rest = __objRest(_b, ["as", "children", "className", "role", "value", "onClick"]);
630
+ const tabRef = (0, import_react13.useRef)(null);
153
631
  const tabs = useTabs();
154
632
  const handleClick = (event) => {
155
633
  const previousTab = tabs.previousTabRef.current;
@@ -157,8 +635,8 @@ var Tab = (0, import_react3.forwardRef)(
157
635
  if (!currentTab)
158
636
  return;
159
637
  if (previousTab) {
160
- const previousIndicator = previousTab.querySelector(`.${prefixCls2}tab__indicator`);
161
- const currentIndicator = currentTab.querySelector(`.${prefixCls2}tab__indicator`);
638
+ const previousIndicator = previousTab.querySelector(`.${PREFIX_CLS}tab__indicator`);
639
+ const currentIndicator = currentTab.querySelector(`.${PREFIX_CLS}tab__indicator`);
162
640
  if (!previousIndicator || !currentIndicator)
163
641
  return;
164
642
  const from = {};
@@ -185,55 +663,57 @@ var Tab = (0, import_react3.forwardRef)(
185
663
  tabs.onChange(value);
186
664
  onClick == null ? void 0 : onClick(event);
187
665
  };
188
- (0, import_react3.useEffect)(() => {
666
+ (0, import_react13.useEffect)(() => {
189
667
  if (value === tabs.value) {
190
668
  tabs.previousTabRef.current = tabRef.current;
191
669
  }
192
670
  }, []);
193
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
671
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
194
672
  Component,
195
673
  __spreadProps(__spreadValues({
196
674
  ref: (0, import_merge_refs.default)(tabRef, ref),
197
- className: (0, import_clsx2.default)(`${prefixCls2}tab`, { [`${prefixCls2}tab--selected`]: value === tabs.value }, className),
675
+ className: (0, import_clsx7.default)(`${PREFIX_CLS}tab`, { [`${PREFIX_CLS}tab--selected`]: value === tabs.value }, className),
676
+ role,
198
677
  onClick: handleClick
199
678
  }, rest), {
200
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `${prefixCls2}tab__content`, children: [
201
- children,
202
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: `${prefixCls2}tab__indicator` })
203
- ] })
679
+ children: [
680
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `${PREFIX_CLS}overlay` }),
681
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `${PREFIX_CLS}tab__content`, children }),
682
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `${PREFIX_CLS}tab__indicator` })
683
+ ]
204
684
  })
205
685
  );
206
686
  }
207
687
  );
208
688
 
209
689
  // src/components/Tabs/Tabs.tsx
210
- var import_clsx3 = __toESM(require("clsx"));
211
- var import_react4 = require("react");
212
- var import_jsx_runtime3 = require("react/jsx-runtime");
213
- var prefixCls3 = "us-";
690
+ var import_clsx8 = __toESM(require("clsx"));
691
+ var import_react14 = require("react");
692
+ var import_jsx_runtime8 = require("react/jsx-runtime");
693
+ var prefixCls = "us-";
214
694
  var Tabs = (_a) => {
215
695
  var _b = _a, { children, className, value, defaultValue, onChange } = _b, rest = __objRest(_b, ["children", "className", "value", "defaultValue", "onChange"]);
216
- const previousTabRef = (0, import_react4.useRef)(null);
217
- const [selfValue, setSelfValue] = (0, import_react4.useState)(value != null ? value : defaultValue);
696
+ const previousTabRef = (0, import_react14.useRef)(null);
697
+ const [selfValue, setSelfValue] = (0, import_react14.useState)(value != null ? value : defaultValue);
218
698
  const handleChange = (value2) => {
219
699
  setSelfValue(value2);
220
700
  onChange == null ? void 0 : onChange(value2);
221
701
  };
222
- (0, import_react4.useEffect)(() => {
702
+ (0, import_react14.useEffect)(() => {
223
703
  if (value !== void 0) {
224
704
  setSelfValue(value);
225
705
  }
226
706
  }, [value]);
227
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(TabsContext.Provider, { value: { previousTabRef, value: selfValue, onChange: handleChange }, children: [
228
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", __spreadProps(__spreadValues({ className: (0, import_clsx3.default)(`${prefixCls3}tabs`, className) }, rest), { children })),
229
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${prefixCls3}divider` })
707
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(TabsContext.Provider, { value: { previousTabRef, value: selfValue, onChange: handleChange }, children: [
708
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadProps(__spreadValues({ className: (0, import_clsx8.default)(`${prefixCls}tabs`, className) }, rest), { children })),
709
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${prefixCls}divider` })
230
710
  ] });
231
711
  };
232
712
 
233
713
  // src/components/DropdownEnumList.tsx
234
714
  var import_kendo_react_dropdowns = require("@progress/kendo-react-dropdowns");
235
- var import_react5 = require("react");
236
- var import_jsx_runtime4 = require("react/jsx-runtime");
715
+ var import_react15 = require("react");
716
+ var import_jsx_runtime9 = require("react/jsx-runtime");
237
717
  function parsearDataForComboBox(array, key, text, itemAll = false) {
238
718
  const dataForComboBox = [];
239
719
  if (itemAll)
@@ -268,16 +748,16 @@ function EnumToArray(typeEnum, replaceGuionForSpace = true, description) {
268
748
  return values;
269
749
  }
270
750
  var DropEnumList = ({ dataEnum, description, onChange, width, defaultValue }) => {
271
- const [value, setValue] = (0, import_react5.useState)("");
272
- const [data, setData] = (0, import_react5.useState)([]);
273
- (0, import_react5.useEffect)(() => {
751
+ const [value, setValue] = (0, import_react15.useState)("");
752
+ const [data, setData] = (0, import_react15.useState)([]);
753
+ (0, import_react15.useEffect)(() => {
274
754
  setData(
275
755
  parsearDataForComboBox(EnumToArray(dataEnum, true, description), "value", "label", false).sort(
276
756
  (a, b) => Number(a.key) - Number(b.key)
277
757
  )
278
758
  );
279
759
  }, []);
280
- (0, import_react5.useEffect)(() => {
760
+ (0, import_react15.useEffect)(() => {
281
761
  if (data.length > 0) {
282
762
  setValue(data.filter((x) => x.key == defaultValue)[0]);
283
763
  }
@@ -286,7 +766,7 @@ var DropEnumList = ({ dataEnum, description, onChange, width, defaultValue }) =>
286
766
  onChange(e);
287
767
  setValue(e);
288
768
  };
289
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
769
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
290
770
  import_kendo_react_dropdowns.DropDownList,
291
771
  {
292
772
  className: "d-inline-block align-middle mr-2",
@@ -307,22 +787,22 @@ var DropEnumList = ({ dataEnum, description, onChange, width, defaultValue }) =>
307
787
  };
308
788
 
309
789
  // src/contexts/BreadCrumbContext.tsx
310
- var import_react9 = require("react");
790
+ var import_react19 = require("react");
311
791
 
312
792
  // src/hooks/useLocalStorage.tsx
313
- var import_react8 = require("react");
793
+ var import_react18 = require("react");
314
794
 
315
795
  // src/hooks/useEventListener.tsx
316
- var import_react7 = require("react");
796
+ var import_react17 = require("react");
317
797
 
318
798
  // src/hooks/useIsomorphicLayoutEffect.tsx
319
- var import_react6 = require("react");
320
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? import_react6.useLayoutEffect : import_react6.useEffect;
799
+ var import_react16 = require("react");
800
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? import_react16.useLayoutEffect : import_react16.useEffect;
321
801
  var useIsomorphicLayoutEffect_default = useIsomorphicLayoutEffect;
322
802
 
323
803
  // src/hooks/useEventListener.tsx
324
804
  function useEventListener(handler) {
325
- const savedHandler = (0, import_react7.useRef)(handler);
805
+ const savedHandler = (0, import_react17.useRef)(handler);
326
806
  useIsomorphicLayoutEffect_default(() => {
327
807
  savedHandler.current = handler;
328
808
  }, [handler]);
@@ -331,7 +811,7 @@ var useEventListener_default = useEventListener;
331
811
 
332
812
  // src/hooks/useLocalStorage.tsx
333
813
  function useLocalStorage(key, initialValue) {
334
- const readValue = (0, import_react8.useCallback)(() => {
814
+ const readValue = (0, import_react18.useCallback)(() => {
335
815
  if (typeof window === "undefined") {
336
816
  return initialValue;
337
817
  }
@@ -343,8 +823,8 @@ function useLocalStorage(key, initialValue) {
343
823
  return initialValue;
344
824
  }
345
825
  }, [initialValue, key]);
346
- const [storedValue, setStoredValue] = (0, import_react8.useState)(readValue);
347
- const setValue = (0, import_react8.useCallback)(
826
+ const [storedValue, setStoredValue] = (0, import_react18.useState)(readValue);
827
+ const setValue = (0, import_react18.useCallback)(
348
828
  (value) => {
349
829
  if (typeof window == "undefined") {
350
830
  console.warn(`Tried setting localStorage key \u201C${key}\u201D even though environment is not a client`);
@@ -360,10 +840,10 @@ function useLocalStorage(key, initialValue) {
360
840
  },
361
841
  [key, storedValue]
362
842
  );
363
- (0, import_react8.useEffect)(() => {
843
+ (0, import_react18.useEffect)(() => {
364
844
  setStoredValue(readValue());
365
845
  }, []);
366
- const handleStorageChange = (0, import_react8.useCallback)(() => {
846
+ const handleStorageChange = (0, import_react18.useCallback)(() => {
367
847
  setStoredValue(readValue());
368
848
  }, [readValue]);
369
849
  useEventListener_default("storage", handleStorageChange);
@@ -380,15 +860,15 @@ function parseJSON(value) {
380
860
  }
381
861
 
382
862
  // src/contexts/BreadCrumbContext.tsx
383
- var import_jsx_runtime5 = require("react/jsx-runtime");
384
- var BreadCrumbContext = (0, import_react9.createContext)({});
863
+ var import_jsx_runtime10 = require("react/jsx-runtime");
864
+ var BreadCrumbContext = (0, import_react19.createContext)({});
385
865
  var BreadCrumbContextProvider = ({ children }) => {
386
866
  const [active, setActive] = useLocalStorage("@active", "");
387
867
  const [path, setPath] = useLocalStorage("@path", "/");
388
868
  const [goBack, setGoBack] = useLocalStorage("@goBack", false);
389
869
  const [pathChild, setPathChild] = useLocalStorage("@pathChild", "");
390
- const [routes, setRoutes] = (0, import_react9.useState)([]);
391
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
870
+ const [routes, setRoutes] = (0, import_react19.useState)([]);
871
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
392
872
  BreadCrumbContext.Provider,
393
873
  {
394
874
  value: {
@@ -409,18 +889,18 @@ var BreadCrumbContextProvider = ({ children }) => {
409
889
  };
410
890
 
411
891
  // src/contexts/DrawerContext.tsx
412
- var import_react10 = require("react");
413
- var import_jsx_runtime6 = require("react/jsx-runtime");
414
- var DrawerContext = (0, import_react10.createContext)({});
892
+ var import_react20 = require("react");
893
+ var import_jsx_runtime11 = require("react/jsx-runtime");
894
+ var DrawerContext = (0, import_react20.createContext)({});
415
895
  var DrawerContextProvider = ({ children }) => {
416
- const [active, setActive] = (0, import_react10.useState)(false);
417
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DrawerContext.Provider, { value: { active, setActive }, children });
896
+ const [active, setActive] = (0, import_react20.useState)(false);
897
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DrawerContext.Provider, { value: { active, setActive }, children });
418
898
  };
419
899
 
420
900
  // src/contexts/HistoryContext.tsx
421
- var import_react11 = require("react");
422
- var import_jsx_runtime7 = require("react/jsx-runtime");
423
- var HistoryContext = (0, import_react11.createContext)({});
901
+ var import_react21 = require("react");
902
+ var import_jsx_runtime12 = require("react/jsx-runtime");
903
+ var HistoryContext = (0, import_react21.createContext)({});
424
904
  var HistoryContextProvider = ({ children }) => {
425
905
  const [list, setList] = useLocalStorage("@list_paths", []);
426
906
  const updateList = (value) => {
@@ -432,41 +912,41 @@ var HistoryContextProvider = ({ children }) => {
432
912
  })
433
913
  );
434
914
  };
435
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(HistoryContext.Provider, { value: { list, updateList }, children });
915
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(HistoryContext.Provider, { value: { list, updateList }, children });
436
916
  };
437
917
 
438
918
  // src/contexts/SidebarMainContext.tsx
439
- var import_react12 = require("react");
440
- var import_jsx_runtime8 = require("react/jsx-runtime");
441
- var SidebarMainContext = (0, import_react12.createContext)({});
919
+ var import_react22 = require("react");
920
+ var import_jsx_runtime13 = require("react/jsx-runtime");
921
+ var SidebarMainContext = (0, import_react22.createContext)({});
442
922
  var SidebarMainContextProvider = ({ children }) => {
443
- const [open, setOpen] = (0, import_react12.useState)(true);
444
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SidebarMainContext.Provider, { value: { open, setOpen }, children });
923
+ const [open2, setOpen] = (0, import_react22.useState)(true);
924
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SidebarMainContext.Provider, { value: { open: open2, setOpen }, children });
445
925
  };
446
926
 
447
927
  // src/contexts/GlobalProvider.tsx
448
- var import_jsx_runtime9 = require("react/jsx-runtime");
928
+ var import_jsx_runtime14 = require("react/jsx-runtime");
449
929
  function GlobalProvider({ children }) {
450
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(HistoryContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BreadCrumbContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SidebarMainContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DrawerContextProvider, { children }) }) }) });
930
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(HistoryContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(BreadCrumbContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SidebarMainContextProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DrawerContextProvider, { children }) }) }) });
451
931
  }
452
932
 
453
933
  // src/hooks/usePrevious.tsx
454
- var import_react13 = require("react");
934
+ var import_react23 = require("react");
455
935
  var usePrevious = (value) => {
456
- const ref = (0, import_react13.useRef)();
457
- (0, import_react13.useEffect)(() => {
936
+ const ref = (0, import_react23.useRef)();
937
+ (0, import_react23.useEffect)(() => {
458
938
  ref.current = value;
459
939
  });
460
940
  return ref.current;
461
941
  };
462
942
 
463
943
  // src/hooks/useStep.tsx
464
- var import_react14 = require("react");
944
+ var import_react24 = require("react");
465
945
  var useStep = (maxStep) => {
466
- const [currentStep, setCurrentStep] = (0, import_react14.useState)(1);
467
- const canGoToNextStep = (0, import_react14.useMemo)(() => currentStep + 1 <= maxStep, [currentStep, maxStep]);
468
- const canGoToPrevStep = (0, import_react14.useMemo)(() => currentStep - 1 >= 1, [currentStep]);
469
- const setStep = (0, import_react14.useCallback)(
946
+ const [currentStep, setCurrentStep] = (0, import_react24.useState)(1);
947
+ const canGoToNextStep = (0, import_react24.useMemo)(() => currentStep + 1 <= maxStep, [currentStep, maxStep]);
948
+ const canGoToPrevStep = (0, import_react24.useMemo)(() => currentStep - 1 >= 1, [currentStep]);
949
+ const setStep = (0, import_react24.useCallback)(
470
950
  (step) => {
471
951
  const newStep = step instanceof Function ? step(currentStep) : step;
472
952
  if (newStep >= 1 && newStep <= maxStep) {
@@ -477,17 +957,17 @@ var useStep = (maxStep) => {
477
957
  },
478
958
  [maxStep, currentStep]
479
959
  );
480
- const goToNextStep = (0, import_react14.useCallback)(() => {
960
+ const goToNextStep = (0, import_react24.useCallback)(() => {
481
961
  if (canGoToNextStep) {
482
962
  setCurrentStep((step) => step + 1);
483
963
  }
484
964
  }, [canGoToNextStep]);
485
- const goToPrevStep = (0, import_react14.useCallback)(() => {
965
+ const goToPrevStep = (0, import_react24.useCallback)(() => {
486
966
  if (canGoToPrevStep) {
487
967
  setCurrentStep((step) => step - 1);
488
968
  }
489
969
  }, [canGoToPrevStep]);
490
- const reset = (0, import_react14.useCallback)(() => {
970
+ const reset = (0, import_react24.useCallback)(() => {
491
971
  setCurrentStep(1);
492
972
  }, []);
493
973
  return [
@@ -504,8 +984,8 @@ var useStep = (maxStep) => {
504
984
  };
505
985
 
506
986
  // src/layout/AppBreadcrumb.tsx
507
- var import_react15 = require("react");
508
- var import_md = require("react-icons/md");
987
+ var import_react25 = require("react");
988
+ var import_md2 = require("react-icons/md");
509
989
  var import_vsc = require("react-icons/vsc");
510
990
  var import_react_router_dom3 = require("react-router-dom");
511
991
 
@@ -550,7 +1030,7 @@ var TitlePage = import_styled_components.default.div`
550
1030
  // src/styled-components/menu.ts
551
1031
  var import_react_router_dom = require("react-router-dom");
552
1032
  var import_styled_components2 = __toESM(require("styled-components"));
553
- var MenuItem = (0, import_styled_components2.default)(import_react_router_dom.Link)`
1033
+ var MenuItem2 = (0, import_styled_components2.default)(import_react_router_dom.Link)`
554
1034
  text-decoration: none;
555
1035
  color: black;
556
1036
  display: flex;
@@ -929,48 +1409,48 @@ var CloseIcon = import_styled_components6.default.button`
929
1409
  `;
930
1410
 
931
1411
  // src/layout/AppBreadcrumb.tsx
932
- var import_jsx_runtime10 = require("react/jsx-runtime");
1412
+ var import_jsx_runtime15 = require("react/jsx-runtime");
933
1413
  var AppBreadCrumb = ({ title, paths }) => {
934
- const { setRoutes } = (0, import_react15.useContext)(BreadCrumbContext);
935
- (0, import_react15.useEffect)(() => {
1414
+ const { setRoutes } = (0, import_react25.useContext)(BreadCrumbContext);
1415
+ (0, import_react25.useEffect)(() => {
936
1416
  if (!(paths == null ? void 0 : paths.length))
937
1417
  return;
938
1418
  setRoutes(paths != null ? paths : []);
939
1419
  }, []);
940
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(BreadCrumbTitle, { children: title != null ? title : "Home" });
1420
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BreadCrumbTitle, { children: title != null ? title : "Home" });
941
1421
  };
942
1422
  var AppBreadCrumbNav = ({
943
1423
  paths,
944
1424
  onPush
945
1425
  }) => {
946
- const { active, path, routes, setRoutes } = (0, import_react15.useContext)(BreadCrumbContext);
947
- const { updateList } = (0, import_react15.useContext)(HistoryContext);
948
- (0, import_react15.useEffect)(() => {
1426
+ const { active, path, routes, setRoutes } = (0, import_react25.useContext)(BreadCrumbContext);
1427
+ const { updateList } = (0, import_react25.useContext)(HistoryContext);
1428
+ (0, import_react25.useEffect)(() => {
949
1429
  updateList({ name: active, path });
950
1430
  }, [path, active]);
951
- (0, import_react15.useEffect)(() => {
1431
+ (0, import_react25.useEffect)(() => {
952
1432
  setRoutes(paths != null ? paths : []);
953
1433
  }, [paths]);
954
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Breadcrumb, { children: [
955
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "d-flex align-items-center", children: [
956
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_router_dom3.Link, { to: "/", className: "link", children: "HOME" }),
957
- routes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_vsc.VscChevronRight, { color: "black" }),
1434
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Breadcrumb, { children: [
1435
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "d-flex align-items-center", children: [
1436
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_router_dom3.Link, { to: "/", className: "link", children: "HOME" }),
1437
+ routes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_vsc.VscChevronRight, { color: "black" }),
958
1438
  routes.length > 0 ? routes.map((i, idx, arr) => {
959
1439
  if (i.route === -1) {
960
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "link", onClick: () => onPush(-1), children: [
1440
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "link", onClick: () => onPush(-1), children: [
961
1441
  i.title,
962
1442
  " ",
963
- idx + 1 === arr.length ? "" : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_vsc.VscChevronRight, { color: "black" })
1443
+ idx + 1 === arr.length ? "" : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_vsc.VscChevronRight, { color: "black" })
964
1444
  ] }, idx);
965
1445
  }
966
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_router_dom3.Link, { to: i.route, className: "link", children: [
1446
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_router_dom3.Link, { to: i.route, className: "link", children: [
967
1447
  i.title,
968
1448
  " ",
969
- idx + 1 === arr.length ? "" : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_vsc.VscChevronRight, { color: "black" })
1449
+ idx + 1 === arr.length ? "" : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_vsc.VscChevronRight, { color: "black" })
970
1450
  ] }, idx);
971
1451
  }) : ""
972
1452
  ] }),
973
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1453
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
974
1454
  CloseIcon,
975
1455
  {
976
1456
  onClick: () => {
@@ -981,21 +1461,21 @@ var AppBreadCrumbNav = ({
981
1461
  }
982
1462
  onPush(`${routes && routes[(routes == null ? void 0 : routes.length) - 2].route}`);
983
1463
  },
984
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_md.MdClose, { fontSize: 20 })
1464
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_md2.MdClose, { fontSize: 20 })
985
1465
  }
986
1466
  )
987
1467
  ] });
988
1468
  };
989
1469
 
990
1470
  // src/layout/AppLoader.tsx
991
- var import_react16 = require("react");
1471
+ var import_react26 = require("react");
992
1472
  var import_react_dom = __toESM(require("react-dom"));
993
- var import_jsx_runtime11 = require("react/jsx-runtime");
1473
+ var import_jsx_runtime16 = require("react/jsx-runtime");
994
1474
  var LoaderGrid = () => {
995
- const Loader = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "k-loading-mask", children: [
996
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "k-loading-text", children: "Loading" }),
997
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "k-loading-image" }),
998
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "k-loading-color" })
1475
+ const Loader = /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "k-loading-mask", children: [
1476
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "k-loading-text", children: "Loading" }),
1477
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "k-loading-image" }),
1478
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "k-loading-color" })
999
1479
  ] });
1000
1480
  const gridContent = document && document.querySelector(".k-grid-content");
1001
1481
  const reportContent = document && document.querySelector(".loading-report");
@@ -1004,12 +1484,12 @@ var LoaderGrid = () => {
1004
1484
  var AppLoader = (props) => {
1005
1485
  const { type = "grid", parent, minDuration } = props;
1006
1486
  const parentEl = type === "grid" ? document.querySelector(parent != null ? parent : ".k-grid-container") : parent ? document.querySelector(parent) : null;
1007
- const Loading = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: `${type}-loading k-loading-mask`, children: [
1008
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "k-loading-text", children: "Loading" }),
1009
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "k-loading-image" }),
1010
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "k-loading-color" })
1487
+ const Loading = /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: `${type}-loading k-loading-mask`, children: [
1488
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "k-loading-text", children: "Loading" }),
1489
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "k-loading-image" }),
1490
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "k-loading-color" })
1011
1491
  ] });
1012
- (0, import_react16.useEffect)(() => {
1492
+ (0, import_react26.useEffect)(() => {
1013
1493
  if (type === "button") {
1014
1494
  const loadingEl = document.createElement("div");
1015
1495
  loadingEl.className = "icon button-loading k-loading-mask";
@@ -1048,7 +1528,7 @@ var AppLoader = (props) => {
1048
1528
  var import_react_bootstrap = require("react-bootstrap");
1049
1529
  var import_bs = require("react-icons/bs");
1050
1530
  var import_fi = require("react-icons/fi");
1051
- var import_jsx_runtime12 = require("react/jsx-runtime");
1531
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1052
1532
  var NavOptions = ({
1053
1533
  exportExcel,
1054
1534
  customButtons,
@@ -1058,27 +1538,27 @@ var NavOptions = ({
1058
1538
  onClear,
1059
1539
  onExpandScreen
1060
1540
  }) => {
1061
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(MenuOptions, { children: [
1062
- onCreate && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: onCreate, children: [
1063
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_fi.FiPlusSquare, { className: "icon" }),
1541
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(MenuOptions, { children: [
1542
+ onCreate && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: onCreate, children: [
1543
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_fi.FiPlusSquare, { className: "icon" }),
1064
1544
  " ",
1065
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: "New" })
1545
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: "New" })
1066
1546
  ] }),
1067
- onRefresh && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: onRefresh, children: [
1068
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_fi.FiRefreshCcw, { className: "icon" }),
1547
+ onRefresh && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: onRefresh, children: [
1548
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_fi.FiRefreshCcw, { className: "icon" }),
1069
1549
  " ",
1070
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: "Refresh" })
1550
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: "Refresh" })
1071
1551
  ] }),
1072
- exportExcel && exportExcel.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_bootstrap.Dropdown, { className: "button-option", children: [
1073
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1552
+ exportExcel && exportExcel.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_bootstrap.Dropdown, { className: "button-option", children: [
1553
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1074
1554
  import_react_bootstrap.Dropdown.Toggle,
1075
1555
  {
1076
1556
  id: "btnExport",
1077
1557
  className: "p-2 bg-light text-dark border-0 font-weight-bold",
1078
1558
  title: "Export to Excel",
1079
1559
  children: [
1080
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_fi.FiSave, { className: "icon" }),
1081
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1560
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_fi.FiSave, { className: "icon" }),
1561
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1082
1562
  "span",
1083
1563
  {
1084
1564
  style: {
@@ -1092,45 +1572,45 @@ var NavOptions = ({
1092
1572
  ]
1093
1573
  }
1094
1574
  ),
1095
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_bootstrap.Dropdown.Menu, { children: exportExcel.map((item, index) => {
1096
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_bootstrap.Dropdown.Item, { onClick: item.onAction, children: [
1097
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("i", { className: `${item.classNameIcon} mr-2` }),
1575
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_bootstrap.Dropdown.Menu, { children: exportExcel.map((item, index) => {
1576
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_bootstrap.Dropdown.Item, { onClick: item.onAction, children: [
1577
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("i", { className: `${item.classNameIcon} mr-2` }),
1098
1578
  " ",
1099
1579
  item.title
1100
1580
  ] }, index);
1101
1581
  }) })
1102
1582
  ] }),
1103
- onSelect && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: onSelect, children: [
1104
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_fi.FiCheckCircle, { className: "icon" }),
1583
+ onSelect && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: onSelect, children: [
1584
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_fi.FiCheckCircle, { className: "icon" }),
1105
1585
  " ",
1106
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: "Select All" })
1586
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: "Select All" })
1107
1587
  ] }),
1108
- onClear && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: onClear, children: [
1109
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_fi.FiFilter, { className: "icon" }),
1588
+ onClear && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: onClear, children: [
1589
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_fi.FiFilter, { className: "icon" }),
1110
1590
  " ",
1111
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: "Clear Filters" })
1591
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: "Clear Filters" })
1112
1592
  ] }),
1113
- onExpandScreen && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: onExpandScreen, children: [
1114
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_bs.BsArrowsFullscreen, { className: "icon" }),
1593
+ onExpandScreen && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: onExpandScreen, children: [
1594
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_bs.BsArrowsFullscreen, { className: "icon" }),
1115
1595
  " ",
1116
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: "Full Page" })
1596
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: "Full Page" })
1117
1597
  ] }),
1118
1598
  customButtons == null ? void 0 : customButtons.map((custom, index) => {
1119
1599
  if (custom.render) {
1120
1600
  return custom.render;
1121
1601
  }
1122
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { className: "button-option", onClick: custom.onAction, children: [
1123
- custom.Icon !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(custom.Icon, { className: "icon" }),
1124
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text", children: custom.title })
1602
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { className: "button-option", onClick: custom.onAction, children: [
1603
+ custom.Icon !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(custom.Icon, { className: "icon" }),
1604
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text", children: custom.title })
1125
1605
  ] }, index);
1126
1606
  })
1127
1607
  ] });
1128
1608
  };
1129
1609
 
1130
1610
  // src/layout/title.tsx
1131
- var import_jsx_runtime13 = require("react/jsx-runtime");
1611
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1132
1612
  var Title = ({ title }) => {
1133
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TitlePage, { children: title != null ? title : "Home" });
1613
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TitlePage, { children: title != null ? title : "Home" });
1134
1614
  };
1135
1615
  // Annotate the CommonJS export names for ESM import in node:
1136
1616
  0 && (module.exports = {
@@ -1143,6 +1623,10 @@ var Title = ({ title }) => {
1143
1623
  Breadcrumb,
1144
1624
  Button,
1145
1625
  CloseIcon,
1626
+ Collapse,
1627
+ CollapseContent,
1628
+ CollapseContext,
1629
+ CollapseTrigger,
1146
1630
  DrawerContext,
1147
1631
  DrawerContextProvider,
1148
1632
  DropEnumList,
@@ -1153,9 +1637,15 @@ var Title = ({ title }) => {
1153
1637
  ItemSidebar,
1154
1638
  LoaderGrid,
1155
1639
  Main,
1640
+ Menu,
1641
+ MenuContext,
1642
+ MenuGroup,
1156
1643
  MenuItem,
1644
+ MenuItems,
1157
1645
  MenuOptions,
1646
+ MenuSubmenu,
1158
1647
  MenuTitle,
1648
+ MenuValueContext,
1159
1649
  NavOptions,
1160
1650
  Navbar,
1161
1651
  SidebarMainContext,
@@ -1164,7 +1654,11 @@ var Title = ({ title }) => {
1164
1654
  Tab,
1165
1655
  Tabs,
1166
1656
  Title,
1657
+ getOpenValuesByPathname,
1658
+ useCollapse,
1167
1659
  useLocalStorage,
1660
+ useMenu,
1661
+ useMenuItemValue,
1168
1662
  usePrevious,
1169
1663
  useStep
1170
1664
  });