@vuu-ui/vuu-popups 0.8.1-debug → 0.8.2-debug
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/cjs/index.js +124 -37
- package/cjs/index.js.map +4 -4
- package/esm/index.js +131 -39
- package/esm/index.js.map +4 -4
- package/index.css +28 -3
- package/index.css.map +3 -3
- package/package.json +3 -3
- package/types/index.d.ts +1 -0
- package/types/menu/useContextMenu.d.ts +2 -2
- package/types/popup-menu/PopupMenu.d.ts +9 -0
- package/types/popup-menu/index.d.ts +1 -0
package/esm/index.js
CHANGED
|
@@ -181,14 +181,14 @@ var isDrawer = (component) => component.type === Drawer_default;
|
|
|
181
181
|
var isVertical = ({ props: { position = "left" } }) => position.match(/top|bottom/);
|
|
182
182
|
var DockLayout = (props) => {
|
|
183
183
|
const { children, className: classNameProp, id, style } = props;
|
|
184
|
-
const
|
|
184
|
+
const classBase12 = "vuuDockLayout";
|
|
185
185
|
const [drawers, content] = partition(children, isDrawer);
|
|
186
186
|
const [verticalDrawers, horizontalDrawers] = partition(drawers, isVertical);
|
|
187
187
|
const orientation = verticalDrawers.length === 0 ? "horizontal" : horizontalDrawers.length === 0 ? "vertical" : "both";
|
|
188
|
-
const className = cx5(
|
|
188
|
+
const className = cx5(classBase12, classNameProp, `${classBase12}-${orientation}`);
|
|
189
189
|
return /* @__PURE__ */ jsxs3("div", { className, id, style, children: [
|
|
190
190
|
drawers,
|
|
191
|
-
/* @__PURE__ */ jsx4("div", { className: `${
|
|
191
|
+
/* @__PURE__ */ jsx4("div", { className: `${classBase12}-content`, children: content })
|
|
192
192
|
] });
|
|
193
193
|
};
|
|
194
194
|
DockLayout.displayName = "DockLayout";
|
|
@@ -1353,10 +1353,13 @@ function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false)
|
|
|
1353
1353
|
const dimensionsRef = useRef5(dimensions);
|
|
1354
1354
|
const measure = useCallback9((target) => {
|
|
1355
1355
|
const rect = target.getBoundingClientRect();
|
|
1356
|
-
return dimensionsRef.current.reduce(
|
|
1357
|
-
map
|
|
1358
|
-
|
|
1359
|
-
|
|
1356
|
+
return dimensionsRef.current.reduce(
|
|
1357
|
+
(map, dim) => {
|
|
1358
|
+
map[dim] = getTargetSize(target, rect, dim);
|
|
1359
|
+
return map;
|
|
1360
|
+
},
|
|
1361
|
+
{}
|
|
1362
|
+
);
|
|
1360
1363
|
}, []);
|
|
1361
1364
|
useLayoutEffect(() => {
|
|
1362
1365
|
const target = ref.current;
|
|
@@ -1382,7 +1385,9 @@ function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false)
|
|
|
1382
1385
|
}
|
|
1383
1386
|
if (target) {
|
|
1384
1387
|
if (observedMap.has(target)) {
|
|
1385
|
-
throw Error(
|
|
1388
|
+
throw Error(
|
|
1389
|
+
"useResizeObserver attemping to observe same element twice"
|
|
1390
|
+
);
|
|
1386
1391
|
}
|
|
1387
1392
|
void registerObserver();
|
|
1388
1393
|
}
|
|
@@ -1393,7 +1398,7 @@ function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false)
|
|
|
1393
1398
|
cleanedUp = true;
|
|
1394
1399
|
}
|
|
1395
1400
|
};
|
|
1396
|
-
}, [ref, measure]);
|
|
1401
|
+
}, [ref, measure, reportInitialSize, onResize]);
|
|
1397
1402
|
useLayoutEffect(() => {
|
|
1398
1403
|
const target = ref.current;
|
|
1399
1404
|
const record = observedMap.get(target);
|
|
@@ -1920,6 +1925,7 @@ var View = forwardRef5(function View2(props, forwardedRef) {
|
|
|
1920
1925
|
className,
|
|
1921
1926
|
collapsed,
|
|
1922
1927
|
closeable,
|
|
1928
|
+
"data-path": dataPath,
|
|
1923
1929
|
"data-resizeable": dataResizeable,
|
|
1924
1930
|
dropTargets,
|
|
1925
1931
|
expanded,
|
|
@@ -1927,7 +1933,7 @@ var View = forwardRef5(function View2(props, forwardedRef) {
|
|
|
1927
1933
|
id: idProp,
|
|
1928
1934
|
header,
|
|
1929
1935
|
orientation = "horizontal",
|
|
1930
|
-
path,
|
|
1936
|
+
path = dataPath,
|
|
1931
1937
|
resize = "responsive",
|
|
1932
1938
|
resizeable = dataResizeable,
|
|
1933
1939
|
tearOut,
|
|
@@ -2064,7 +2070,7 @@ var Header = ({
|
|
|
2064
2070
|
const [editing, setEditing] = useState8(false);
|
|
2065
2071
|
const viewDispatch = useViewDispatch();
|
|
2066
2072
|
const handleClose = (evt) => viewDispatch == null ? void 0 : viewDispatch({ type: "remove" }, evt);
|
|
2067
|
-
const
|
|
2073
|
+
const classBase12 = "vuuHeader";
|
|
2068
2074
|
const handleTitleMouseDown = () => {
|
|
2069
2075
|
var _a;
|
|
2070
2076
|
(_a = labelFieldRef.current) == null ? void 0 : _a.focus();
|
|
@@ -2074,9 +2080,9 @@ var Header = ({
|
|
|
2074
2080
|
};
|
|
2075
2081
|
const orientation = collapsed || orientationProp;
|
|
2076
2082
|
const className = classnames2(
|
|
2077
|
-
|
|
2083
|
+
classBase12,
|
|
2078
2084
|
classNameProp,
|
|
2079
|
-
`${
|
|
2085
|
+
`${classBase12}-${orientation}`
|
|
2080
2086
|
);
|
|
2081
2087
|
const handleEnterEditMode = () => {
|
|
2082
2088
|
setEditing(true);
|
|
@@ -2209,7 +2215,7 @@ var Palette = ({
|
|
|
2209
2215
|
...props
|
|
2210
2216
|
}) => {
|
|
2211
2217
|
const dispatch = useLayoutProviderDispatch();
|
|
2212
|
-
const
|
|
2218
|
+
const classBase12 = "vuuPalette";
|
|
2213
2219
|
function handleMouseDown(evt) {
|
|
2214
2220
|
var _a;
|
|
2215
2221
|
const target = evt.target;
|
|
@@ -2256,7 +2262,7 @@ var Palette = ({
|
|
|
2256
2262
|
{
|
|
2257
2263
|
...props,
|
|
2258
2264
|
borderless: true,
|
|
2259
|
-
className: cx12(
|
|
2265
|
+
className: cx12(classBase12, className, `${classBase12}-${orientation}`),
|
|
2260
2266
|
maxHeight: 800,
|
|
2261
2267
|
selected: null,
|
|
2262
2268
|
children: children.map(
|
|
@@ -2646,7 +2652,15 @@ import { jsx as jsx28, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
|
2646
2652
|
|
|
2647
2653
|
// ../vuu-shell/src/login/login-utils.ts
|
|
2648
2654
|
import { getCookieValue } from "@vuu-ui/vuu-utils";
|
|
2649
|
-
var
|
|
2655
|
+
var getAuthModeFromCookies = () => {
|
|
2656
|
+
const mode = getCookieValue("vuu-auth-mode");
|
|
2657
|
+
return mode != null ? mode : "";
|
|
2658
|
+
};
|
|
2659
|
+
var getDefaultLoginUrl = () => {
|
|
2660
|
+
const authMode = getAuthModeFromCookies();
|
|
2661
|
+
return authMode === "login" ? "login.html" : "demo.html";
|
|
2662
|
+
};
|
|
2663
|
+
var redirectToLogin = (loginUrl = getDefaultLoginUrl()) => {
|
|
2650
2664
|
window.location.href = loginUrl;
|
|
2651
2665
|
};
|
|
2652
2666
|
var logout = (loginUrl) => {
|
|
@@ -3754,6 +3768,7 @@ var Viewport = class {
|
|
|
3754
3768
|
// TODO roll disabled/suspended into status
|
|
3755
3769
|
this.status = "";
|
|
3756
3770
|
this.suspended = false;
|
|
3771
|
+
this.suspendTimer = null;
|
|
3757
3772
|
this.rangeRequestAlreadyPending = (range) => {
|
|
3758
3773
|
const { bufferSize } = this;
|
|
3759
3774
|
const bufferThreshold = bufferSize * 0.25;
|
|
@@ -4131,6 +4146,7 @@ var Viewport = class {
|
|
|
4131
4146
|
disable(requestId) {
|
|
4132
4147
|
this.awaitOperation(requestId, { type: "disable" });
|
|
4133
4148
|
info2 == null ? void 0 : info2(\`disable: \${this.serverViewportId}\`);
|
|
4149
|
+
this.suspended = false;
|
|
4134
4150
|
return {
|
|
4135
4151
|
type: DISABLE_VP,
|
|
4136
4152
|
viewPortId: this.serverViewportId
|
|
@@ -4561,7 +4577,19 @@ var ServerProxy = class {
|
|
|
4561
4577
|
this.sendIfReady(request, requestId, viewport.status === "subscribed");
|
|
4562
4578
|
}
|
|
4563
4579
|
}
|
|
4580
|
+
suspendViewport(viewport) {
|
|
4581
|
+
viewport.suspend();
|
|
4582
|
+
viewport.suspendTimer = setTimeout(() => {
|
|
4583
|
+
info3 == null ? void 0 : info3("suspendTimer expired, escalate suspend to disable");
|
|
4584
|
+
this.disableViewport(viewport);
|
|
4585
|
+
}, 3e3);
|
|
4586
|
+
}
|
|
4564
4587
|
resumeViewport(viewport) {
|
|
4588
|
+
if (viewport.suspendTimer) {
|
|
4589
|
+
debug4 == null ? void 0 : debug4("clear suspend timer");
|
|
4590
|
+
clearTimeout(viewport.suspendTimer);
|
|
4591
|
+
viewport.suspendTimer = null;
|
|
4592
|
+
}
|
|
4565
4593
|
const rows = viewport.resume();
|
|
4566
4594
|
this.postMessageToClient({
|
|
4567
4595
|
clientViewportId: viewport.clientViewportId,
|
|
@@ -4681,7 +4709,7 @@ var ServerProxy = class {
|
|
|
4681
4709
|
case "select":
|
|
4682
4710
|
return this.select(viewport, message);
|
|
4683
4711
|
case "suspend":
|
|
4684
|
-
return
|
|
4712
|
+
return this.suspendViewport(viewport);
|
|
4685
4713
|
case "resume":
|
|
4686
4714
|
return this.resumeViewport(viewport);
|
|
4687
4715
|
case "enable":
|
|
@@ -6761,8 +6789,8 @@ var Stack3 = class {
|
|
|
6761
6789
|
// Start an empty stack
|
|
6762
6790
|
/// @internal
|
|
6763
6791
|
static start(p, state, pos = 0) {
|
|
6764
|
-
let
|
|
6765
|
-
return new Stack3(p, [], state, pos, pos, 0, [], 0,
|
|
6792
|
+
let cx29 = p.parser.context;
|
|
6793
|
+
return new Stack3(p, [], state, pos, pos, 0, [], 0, cx29 ? new StackContext(cx29, cx29.start) : null, 0, null);
|
|
6766
6794
|
}
|
|
6767
6795
|
/// The stack's current [context](#lr.ContextTracker) value, if
|
|
6768
6796
|
/// any. Its type will depend on the context tracker's type
|
|
@@ -8263,10 +8291,10 @@ var LRParser = class extends Parser {
|
|
|
8263
8291
|
if (config.props)
|
|
8264
8292
|
copy.nodeSet = this.nodeSet.extend(...config.props);
|
|
8265
8293
|
if (config.top) {
|
|
8266
|
-
let
|
|
8267
|
-
if (!
|
|
8294
|
+
let info2 = this.topRules[config.top];
|
|
8295
|
+
if (!info2)
|
|
8268
8296
|
throw new RangeError(`Invalid top rule name ${config.top}`);
|
|
8269
|
-
copy.top =
|
|
8297
|
+
copy.top = info2;
|
|
8270
8298
|
}
|
|
8271
8299
|
if (config.tokenizers)
|
|
8272
8300
|
copy.tokenizers = this.tokenizers.map((t) => {
|
|
@@ -9473,9 +9501,11 @@ import {
|
|
|
9473
9501
|
debounce,
|
|
9474
9502
|
EventEmitter as EventEmitter4,
|
|
9475
9503
|
itemsOrOrderChanged,
|
|
9504
|
+
logger as logger2,
|
|
9476
9505
|
throttle,
|
|
9477
9506
|
uuid as uuid10
|
|
9478
9507
|
} from "@vuu-ui/vuu-utils";
|
|
9508
|
+
var { info } = logger2("RemoteDataSource");
|
|
9479
9509
|
var _config2, _groupBy2, _optimize, _range3, _selectedRowsCount3, _size3, _title3;
|
|
9480
9510
|
var RemoteDataSource = class extends EventEmitter4 {
|
|
9481
9511
|
constructor({
|
|
@@ -9493,8 +9523,6 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
9493
9523
|
super();
|
|
9494
9524
|
this.server = null;
|
|
9495
9525
|
this.status = "initialising";
|
|
9496
|
-
this.disabled = false;
|
|
9497
|
-
this.suspended = false;
|
|
9498
9526
|
__privateAdd(this, _config2, vanillaConfig);
|
|
9499
9527
|
__privateAdd(this, _groupBy2, []);
|
|
9500
9528
|
__privateAdd(this, _optimize, "throttle");
|
|
@@ -9633,6 +9661,7 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
9633
9661
|
}
|
|
9634
9662
|
unsubscribe() {
|
|
9635
9663
|
var _a, _b;
|
|
9664
|
+
info == null ? void 0 : info(`unsubscribe #${this.viewport}`);
|
|
9636
9665
|
if (this.viewport) {
|
|
9637
9666
|
(_a = this.server) == null ? void 0 : _a.unsubscribe(this.viewport);
|
|
9638
9667
|
}
|
|
@@ -9641,8 +9670,9 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
9641
9670
|
}
|
|
9642
9671
|
suspend() {
|
|
9643
9672
|
var _a;
|
|
9673
|
+
info == null ? void 0 : info(`suspend #${this.viewport}, current status ${this.status}`);
|
|
9644
9674
|
if (this.viewport) {
|
|
9645
|
-
this.
|
|
9675
|
+
this.status = "suspended";
|
|
9646
9676
|
(_a = this.server) == null ? void 0 : _a.send({
|
|
9647
9677
|
type: "suspend",
|
|
9648
9678
|
viewport: this.viewport
|
|
@@ -9652,20 +9682,25 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
9652
9682
|
}
|
|
9653
9683
|
resume() {
|
|
9654
9684
|
var _a;
|
|
9655
|
-
|
|
9656
|
-
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
})
|
|
9660
|
-
|
|
9685
|
+
info == null ? void 0 : info(`resume #${this.viewport}, current status ${this.status}`);
|
|
9686
|
+
if (this.viewport) {
|
|
9687
|
+
if (this.status === "disabled" || this.status === "disabling") {
|
|
9688
|
+
this.enable();
|
|
9689
|
+
} else if (this.status === "suspended") {
|
|
9690
|
+
(_a = this.server) == null ? void 0 : _a.send({
|
|
9691
|
+
type: "resume",
|
|
9692
|
+
viewport: this.viewport
|
|
9693
|
+
});
|
|
9694
|
+
this.status = "subscribed";
|
|
9695
|
+
}
|
|
9661
9696
|
}
|
|
9662
9697
|
return this;
|
|
9663
9698
|
}
|
|
9664
9699
|
disable() {
|
|
9665
9700
|
var _a;
|
|
9701
|
+
info == null ? void 0 : info(`disable #${this.viewport}, current status ${this.status}`);
|
|
9666
9702
|
if (this.viewport) {
|
|
9667
9703
|
this.status = "disabling";
|
|
9668
|
-
this.disabled = true;
|
|
9669
9704
|
(_a = this.server) == null ? void 0 : _a.send({
|
|
9670
9705
|
viewport: this.viewport,
|
|
9671
9706
|
type: "disable"
|
|
@@ -9675,13 +9710,13 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
9675
9710
|
}
|
|
9676
9711
|
enable() {
|
|
9677
9712
|
var _a;
|
|
9678
|
-
|
|
9713
|
+
info == null ? void 0 : info(`enable #${this.viewport}, current status ${this.status}`);
|
|
9714
|
+
if (this.viewport && (this.status === "disabled" || this.status === "disabling")) {
|
|
9679
9715
|
this.status = "enabling";
|
|
9680
9716
|
(_a = this.server) == null ? void 0 : _a.send({
|
|
9681
9717
|
viewport: this.viewport,
|
|
9682
9718
|
type: "enable"
|
|
9683
9719
|
});
|
|
9684
|
-
this.disabled = false;
|
|
9685
9720
|
}
|
|
9686
9721
|
return this;
|
|
9687
9722
|
}
|
|
@@ -10161,7 +10196,7 @@ var ThemeProvider = ({
|
|
|
10161
10196
|
ThemeProvider.displayName = "ThemeProvider";
|
|
10162
10197
|
|
|
10163
10198
|
// ../vuu-shell/src/shell.tsx
|
|
10164
|
-
import { logger as
|
|
10199
|
+
import { logger as logger3 } from "@vuu-ui/vuu-utils";
|
|
10165
10200
|
|
|
10166
10201
|
// ../vuu-shell/src/shell-layouts/context-panel/ContextPanel.tsx
|
|
10167
10202
|
import { Button as Button6 } from "@salt-ds/core";
|
|
@@ -10183,7 +10218,7 @@ import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
|
10183
10218
|
|
|
10184
10219
|
// ../vuu-shell/src/shell.tsx
|
|
10185
10220
|
import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
10186
|
-
var { error } =
|
|
10221
|
+
var { error } = logger3("Shell");
|
|
10187
10222
|
|
|
10188
10223
|
// ../vuu-shell/src/ShellContextProvider.tsx
|
|
10189
10224
|
import { createContext as createContext3, useContext as useContext4 } from "react";
|
|
@@ -11384,7 +11419,7 @@ var Popup = (props) => {
|
|
|
11384
11419
|
|
|
11385
11420
|
// src/menu/useContextMenu.tsx
|
|
11386
11421
|
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
11387
|
-
var useContextMenu = (menuBuilder) => {
|
|
11422
|
+
var useContextMenu = (menuBuilder, menuActionHandler) => {
|
|
11388
11423
|
const ctx = useContext5(ContextMenuContext);
|
|
11389
11424
|
const [themeClass, densityClass, dataMode] = useThemeAttributes();
|
|
11390
11425
|
const buildMenuOptions = useCallback32(
|
|
@@ -11412,11 +11447,12 @@ var useContextMenu = (menuBuilder) => {
|
|
|
11412
11447
|
console.log({
|
|
11413
11448
|
menuItemDescriptors
|
|
11414
11449
|
});
|
|
11415
|
-
|
|
11450
|
+
const menuHandler = menuActionHandler != null ? menuActionHandler : ctx == null ? void 0 : ctx.menuActionHandler;
|
|
11451
|
+
if (menuItemDescriptors.length && menuHandler) {
|
|
11416
11452
|
console.log(`showContextMenu ${location2}`, {
|
|
11417
11453
|
options
|
|
11418
11454
|
});
|
|
11419
|
-
showContextMenu(e, menuItemDescriptors,
|
|
11455
|
+
showContextMenu(e, menuItemDescriptors, menuHandler, {
|
|
11420
11456
|
...ContextMenuProps2,
|
|
11421
11457
|
className: cx27(
|
|
11422
11458
|
ContextMenuProps2 == null ? void 0 : ContextMenuProps2.className,
|
|
@@ -11438,6 +11474,7 @@ var useContextMenu = (menuBuilder) => {
|
|
|
11438
11474
|
ctx == null ? void 0 : ctx.menuBuilders,
|
|
11439
11475
|
dataMode,
|
|
11440
11476
|
densityClass,
|
|
11477
|
+
menuActionHandler,
|
|
11441
11478
|
menuBuilder,
|
|
11442
11479
|
themeClass
|
|
11443
11480
|
]
|
|
@@ -11485,6 +11522,60 @@ var showContextMenu = (e, menuDescriptors, handleContextMenuAction, {
|
|
|
11485
11522
|
);
|
|
11486
11523
|
PopupService.showPopup({ left: 0, top: 0, component });
|
|
11487
11524
|
};
|
|
11525
|
+
|
|
11526
|
+
// src/popup-menu/PopupMenu.tsx
|
|
11527
|
+
import {
|
|
11528
|
+
useCallback as useCallback33,
|
|
11529
|
+
useRef as useRef22,
|
|
11530
|
+
useState as useState18
|
|
11531
|
+
} from "react";
|
|
11532
|
+
import cx28 from "classnames";
|
|
11533
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
11534
|
+
var classBase11 = "vuuPopupMenu";
|
|
11535
|
+
var getPosition3 = (element) => {
|
|
11536
|
+
if (element) {
|
|
11537
|
+
const { bottom, left } = element.getBoundingClientRect();
|
|
11538
|
+
return { x: left, y: bottom + 6 };
|
|
11539
|
+
}
|
|
11540
|
+
};
|
|
11541
|
+
var PopupMenu = ({
|
|
11542
|
+
className,
|
|
11543
|
+
menuActionHandler,
|
|
11544
|
+
menuBuilder,
|
|
11545
|
+
menuLocation = "header",
|
|
11546
|
+
...htmlAttributes
|
|
11547
|
+
}) => {
|
|
11548
|
+
const rootRef = useRef22(null);
|
|
11549
|
+
const [menuOpen, setMenuOpen] = useState18(false);
|
|
11550
|
+
const showContextMenu2 = useContextMenu(menuBuilder, menuActionHandler);
|
|
11551
|
+
const handleMenuClose = useCallback33(() => {
|
|
11552
|
+
setMenuOpen(false);
|
|
11553
|
+
}, []);
|
|
11554
|
+
const showColumnMenu = useCallback33(
|
|
11555
|
+
(e) => {
|
|
11556
|
+
setMenuOpen(true);
|
|
11557
|
+
showContextMenu2(e, menuLocation, {
|
|
11558
|
+
ContextMenuProps: {
|
|
11559
|
+
onClose: handleMenuClose,
|
|
11560
|
+
position: getPosition3(rootRef.current)
|
|
11561
|
+
}
|
|
11562
|
+
});
|
|
11563
|
+
},
|
|
11564
|
+
[handleMenuClose, menuLocation, showContextMenu2]
|
|
11565
|
+
);
|
|
11566
|
+
return /* @__PURE__ */ jsx46(
|
|
11567
|
+
"span",
|
|
11568
|
+
{
|
|
11569
|
+
...htmlAttributes,
|
|
11570
|
+
className: cx28(classBase11, className, {
|
|
11571
|
+
[`${classBase11}-open`]: menuOpen
|
|
11572
|
+
}),
|
|
11573
|
+
"data-icon": "more-vert",
|
|
11574
|
+
onClick: showColumnMenu,
|
|
11575
|
+
ref: rootRef
|
|
11576
|
+
}
|
|
11577
|
+
);
|
|
11578
|
+
};
|
|
11488
11579
|
export {
|
|
11489
11580
|
ContextMenu,
|
|
11490
11581
|
ContextMenuContext,
|
|
@@ -11494,6 +11585,7 @@ export {
|
|
|
11494
11585
|
MenuItem,
|
|
11495
11586
|
MenuItemGroup,
|
|
11496
11587
|
Popup,
|
|
11588
|
+
PopupMenu,
|
|
11497
11589
|
PopupService,
|
|
11498
11590
|
Portal,
|
|
11499
11591
|
Separator,
|