@genesislcap/foundation-ui 15.58.0 → 15.58.1-FUI-2629.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/custom-elements.json +214 -32
- package/dist/dts/actions-menu/actions-menu.d.ts +34 -2
- package/dist/dts/actions-menu/actions-menu.d.ts.map +1 -1
- package/dist/dts/actions-menu/actions-menu.styles.d.ts.map +1 -1
- package/dist/dts/actions-menu/actions-menu.template.d.ts.map +1 -1
- package/dist/dts/filter-bar/filter-bar.utils.d.ts +1 -1
- package/dist/dts/utils/index.d.ts +1 -0
- package/dist/dts/utils/index.d.ts.map +1 -1
- package/dist/dts/utils/popover-position.d.ts +26 -0
- package/dist/dts/utils/popover-position.d.ts.map +1 -0
- package/dist/esm/actions-menu/actions-menu.js +74 -12
- package/dist/esm/actions-menu/actions-menu.styles.js +74 -5
- package/dist/esm/actions-menu/actions-menu.template.js +49 -5
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/popover-position.js +70 -0
- package/dist/foundation-ui.api.json +276 -10
- package/dist/foundation-ui.d.ts +34 -3
- package/package.json +17 -17
|
@@ -21,10 +21,17 @@ export const actionsMenuBaseStyles = (context, definition) => css `
|
|
|
21
21
|
margin: 0;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/* The vertical menu follows AG Grid's context menu (ag-menu / ag-menu-list / ag-menu-option),
|
|
25
|
+
so it matches the grid it usually sits in. Outside a grid the --ag-* vars are unset and the
|
|
26
|
+
design system's own tokens apply. */
|
|
24
27
|
.actions-vertical .actions-menu {
|
|
25
|
-
padding:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
padding: var(--ag-spacing, 4px) 0;
|
|
29
|
+
background-color: var(--ag-menu-background-color, var(--fill-color));
|
|
30
|
+
border: var(--ag-menu-border, calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-rest));
|
|
31
|
+
border-radius: var(--ag-border-radius, calc(var(--control-corner-radius) * 1px));
|
|
32
|
+
box-shadow: var(--ag-menu-shadow, var(--ag-popup-shadow, 0 2px 8px rgb(0 0 0 / 30%)));
|
|
33
|
+
color: var(--ag-menu-text-color, var(--neutral-foreground-rest));
|
|
34
|
+
font-family: var(--ag-font-family, var(--body-font));
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
.actions-menu:not(.hidden):hover {
|
|
@@ -48,6 +55,31 @@ export const actionsMenuBaseStyles = (context, definition) => css `
|
|
|
48
55
|
);
|
|
49
56
|
}
|
|
50
57
|
|
|
58
|
+
:host([icon-name]) .actions-container {
|
|
59
|
+
justify-content: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* The icon-only opener mirrors grid-pro's icon renderer: a bare icon with a hover chip. */
|
|
63
|
+
.actions-opener.icon-only {
|
|
64
|
+
align-items: center;
|
|
65
|
+
justify-content: center;
|
|
66
|
+
height: auto;
|
|
67
|
+
padding: 5px;
|
|
68
|
+
border-radius: 5px;
|
|
69
|
+
line-height: 1;
|
|
70
|
+
color: inherit;
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.actions-opener.icon-only:hover,
|
|
75
|
+
.actions-opener.icon-only.opened {
|
|
76
|
+
background-color: var(--neutral-stroke-hover);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.actions-opener.icon-only:focus-visible {
|
|
80
|
+
outline: calc(var(--focus-stroke-width) * 1px) solid var(--accent-fill-rest);
|
|
81
|
+
}
|
|
82
|
+
|
|
51
83
|
svg {
|
|
52
84
|
width: 100%;
|
|
53
85
|
height: 100%;
|
|
@@ -80,10 +112,47 @@ export const actionsMenuBaseStyles = (context, definition) => css `
|
|
|
80
112
|
min-height: 0;
|
|
81
113
|
}
|
|
82
114
|
|
|
115
|
+
/* The open menu is a flex column, so a flex-basis would override the AG row height. */
|
|
83
116
|
.actions-vertical .menu-item {
|
|
84
|
-
flex:
|
|
117
|
+
flex: none;
|
|
118
|
+
box-sizing: border-box;
|
|
119
|
+
height: calc(var(--ag-icon-size, 16px) + (var(--ag-spacing, 4px) + 2px) * 2);
|
|
120
|
+
max-height: none;
|
|
121
|
+
margin: 0;
|
|
122
|
+
background: transparent;
|
|
123
|
+
border: none;
|
|
124
|
+
border-radius: 0;
|
|
125
|
+
color: inherit;
|
|
126
|
+
font-family: inherit;
|
|
127
|
+
font-size: var(--ag-font-size, var(--type-ramp-base-font-size));
|
|
128
|
+
font-weight: 500;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.actions-vertical .menu-item:hover,
|
|
132
|
+
.actions-vertical .menu-item:focus {
|
|
133
|
+
background: var(--ag-row-hover-color, var(--neutral-fill-stealth-hover));
|
|
134
|
+
border: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.actions-vertical .menu-item[disabled] {
|
|
138
|
+
background: transparent;
|
|
139
|
+
opacity: 50%;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.actions-vertical .menu-item::part(start) {
|
|
143
|
+
padding-left: calc(var(--ag-spacing, 4px) * 2);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.actions-vertical .menu-item [slot='start'] {
|
|
85
147
|
justify-content: center;
|
|
86
|
-
|
|
148
|
+
width: var(--ag-icon-size, 16px);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* AG's trailing shortcut and popup-pointer cells add 2 more spacings on the right. */
|
|
152
|
+
.actions-vertical .menu-item::part(content) {
|
|
153
|
+
margin-inline: 0;
|
|
154
|
+
padding-inline: calc(var(--ag-spacing, 4px) * 2) calc(var(--ag-spacing, 4px) * 4);
|
|
155
|
+
line-height: var(--ag-icon-size, 16px);
|
|
87
156
|
}
|
|
88
157
|
|
|
89
158
|
.actions-vertical .visible,
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { html, ref, repeat, when } from '@microsoft/fast-element';
|
|
2
2
|
import { getPrefix } from '../utils';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* A bare icon opener (e.g. a "kebab"), styled like grid-pro's icon renderer rather than a button.
|
|
5
|
+
*/
|
|
6
|
+
const iconOpenerTemplate = (prefix) => html `
|
|
7
|
+
<div
|
|
8
|
+
${ref('actionsOpener')}
|
|
9
|
+
class="actions-opener icon-only${(x) => (x.open ? ' opened' : '')}"
|
|
10
|
+
part="icon-opener"
|
|
11
|
+
role="button"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
aria-label="${(x) => x.name}"
|
|
14
|
+
aria-haspopup="menu"
|
|
15
|
+
aria-expanded="${(x) => String(x.open)}"
|
|
16
|
+
@click=${(x) => x.toggleActionsMenuVisibility()}
|
|
17
|
+
@keydown=${(x, c) => x.onIconOpenerKeydown(c.event)}
|
|
18
|
+
>
|
|
19
|
+
<${prefix}-icon name="${(x) => x.iconName}" size="lg"></${prefix}-icon>
|
|
20
|
+
</div>
|
|
21
|
+
`;
|
|
22
|
+
const buttonOpenerTemplate = (prefix) => html `
|
|
4
23
|
<${prefix}-button
|
|
5
24
|
${ref('actionsOpener')}
|
|
6
25
|
id="actiosnMenuTrigger"
|
|
@@ -15,25 +34,50 @@ export const menuTemplate = (prefix) => html `
|
|
|
15
34
|
${x.name}
|
|
16
35
|
`}
|
|
17
36
|
</${prefix}-button>
|
|
18
|
-
|
|
37
|
+
`;
|
|
38
|
+
export const menuTemplate = (prefix) => html `
|
|
39
|
+
${(x) => (x.iconName ? iconOpenerTemplate(prefix) : buttonOpenerTemplate(prefix))}
|
|
40
|
+
<${prefix}-menu
|
|
41
|
+
${ref('actionsMenu')}
|
|
42
|
+
popover="${(x) => (x.isVertical ? 'auto' : 'manual')}"
|
|
43
|
+
class="actions-menu ${(x) => x.classNames}"
|
|
44
|
+
part="actions-menu"
|
|
45
|
+
@toggle=${(x, c) => x.onPopoverToggle(c.event)}
|
|
46
|
+
>
|
|
19
47
|
${repeat((x) => x.allActions, html `
|
|
20
|
-
${when((x, context) =>
|
|
48
|
+
${when((x, context) => context.parent.isActionDisabled(x), html `
|
|
21
49
|
<${prefix}-menu-item
|
|
22
50
|
class="menu-item"
|
|
23
51
|
tabindex="${(x, context) => context.index}"
|
|
24
52
|
disabled
|
|
25
53
|
style=${(x, ctx) => (ctx.parent.hideDisabled ? 'display:none' : '')}
|
|
26
54
|
>
|
|
55
|
+
${when((x) => x.icon, html `
|
|
56
|
+
<${prefix}-icon
|
|
57
|
+
name=${(x) => x.icon.name}
|
|
58
|
+
size=${(x) => x.icon.size}
|
|
59
|
+
variant=${(x) => x.icon.variant}
|
|
60
|
+
slot="start"
|
|
61
|
+
></${prefix}-icon>
|
|
62
|
+
`)}
|
|
27
63
|
${(x, ctx) => ctx.parent.getLabel(x.name)}
|
|
28
64
|
</${prefix}-menu-item>
|
|
29
65
|
`)}
|
|
30
|
-
${when((x, context) => !
|
|
66
|
+
${when((x, context) => !context.parent.isActionDisabled(x), html `
|
|
31
67
|
<${prefix}-menu-item
|
|
32
68
|
class="menu-item"
|
|
33
69
|
tabindex="${(x, context) => context.index}"
|
|
34
70
|
@click=${(x, context) => context.parent.onActionMenuItemClick(x.callback)}
|
|
35
71
|
style="${(x) => (x.color ? `color: ${x.color};` : '')}"
|
|
36
72
|
>
|
|
73
|
+
${when((x) => x.icon, html `
|
|
74
|
+
<${prefix}-icon
|
|
75
|
+
name=${(x) => x.icon.name}
|
|
76
|
+
size=${(x) => x.icon.size}
|
|
77
|
+
variant=${(x) => x.icon.variant}
|
|
78
|
+
slot="start"
|
|
79
|
+
></${prefix}-icon>
|
|
80
|
+
`)}
|
|
37
81
|
${(x, ctx) => ctx.parent.getLabel(x.name)}
|
|
38
82
|
</${prefix}-menu-item>
|
|
39
83
|
`)}
|
|
@@ -49,7 +93,7 @@ export const singleOptionTemplate = (prefix) => html `
|
|
|
49
93
|
return x === null || x === void 0 ? void 0 : x.singleOption.callback(x.rowData);
|
|
50
94
|
}}
|
|
51
95
|
?disabled=${(x) => {
|
|
52
|
-
return
|
|
96
|
+
return x.isActionDisabled(x.singleOption);
|
|
53
97
|
}}
|
|
54
98
|
>
|
|
55
99
|
${(x) => x.getLabel(x === null || x === void 0 ? void 0 : x.singleOption.name)}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walks up from `element`, crossing shadow-root boundaries via `.host`, collecting every
|
|
3
|
+
* scrollable ancestor (including the anchor's own document).
|
|
4
|
+
* @remarks Native `scroll` events are not `composed`, so they don't cross shadow-DOM boundaries
|
|
5
|
+
* the way `click`/`keydown` do — a listener on `document` never sees a shadow-DOM-nested
|
|
6
|
+
* viewport's own scroll. Callers must listen on each returned ancestor directly.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export function findScrollableAncestors(element) {
|
|
10
|
+
var _a;
|
|
11
|
+
const ancestors = [];
|
|
12
|
+
let node = element.parentNode;
|
|
13
|
+
while (node) {
|
|
14
|
+
if (node instanceof ShadowRoot) {
|
|
15
|
+
node = node.host;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (node instanceof Document) {
|
|
19
|
+
ancestors.push(node);
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
if (node instanceof HTMLElement) {
|
|
23
|
+
const style = (_a = node.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(node);
|
|
24
|
+
if (!style) {
|
|
25
|
+
node = node.parentNode;
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (/(auto|scroll|overlay)/.test(style.overflowY) ||
|
|
29
|
+
/(auto|scroll|overlay)/.test(style.overflowX)) {
|
|
30
|
+
ancestors.push(node);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
node = node.parentNode;
|
|
34
|
+
}
|
|
35
|
+
return ancestors;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Keeps a Popover-API element anchored to its trigger while any of the trigger's scrollable
|
|
39
|
+
* ancestors scroll, and reports back when the trigger has been removed from the DOM (e.g. AG
|
|
40
|
+
* Grid row virtualization recycling the row that owns it).
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export class AnchoredPopoverPositionTracker {
|
|
44
|
+
constructor(anchor, onReposition, onAnchorDetached) {
|
|
45
|
+
this.anchor = anchor;
|
|
46
|
+
this.onReposition = onReposition;
|
|
47
|
+
this.onAnchorDetached = onAnchorDetached;
|
|
48
|
+
this.ancestors = [];
|
|
49
|
+
this.handleScroll = () => {
|
|
50
|
+
if (!this.anchor.isConnected) {
|
|
51
|
+
this.onAnchorDetached();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.onReposition();
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
start() {
|
|
58
|
+
this.stop();
|
|
59
|
+
this.ancestors = findScrollableAncestors(this.anchor);
|
|
60
|
+
for (const ancestor of this.ancestors) {
|
|
61
|
+
ancestor.addEventListener('scroll', this.handleScroll, { passive: true });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
stop() {
|
|
65
|
+
for (const ancestor of this.ancestors) {
|
|
66
|
+
ancestor.removeEventListener('scroll', this.handleScroll);
|
|
67
|
+
}
|
|
68
|
+
this.ancestors = [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -279,7 +279,25 @@
|
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"kind": "Content",
|
|
282
|
-
"text": "{\n name: string | ((rowData: any) => string);\n callback: (rowData: any) => void | any;\n isDisabled?: (rowData: any) => boolean;\n color?: string;\n
|
|
282
|
+
"text": "{\n name: string | ((rowData: any) => string);\n callback: (rowData: any) => void | any;\n isDisabled?: boolean | ((rowData: any) => boolean);\n color?: string;\n icon?: {\n variant?: "
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"kind": "Reference",
|
|
286
|
+
"text": "IconStyle",
|
|
287
|
+
"canonicalReference": "@fortawesome/fontawesome-common-types!IconStyle:type"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"kind": "Content",
|
|
291
|
+
"text": ";\n name: string;\n size?: "
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"kind": "Reference",
|
|
295
|
+
"text": "FaSize",
|
|
296
|
+
"canonicalReference": "@genesislcap/foundation-ui!FaSize:type"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"kind": "Content",
|
|
300
|
+
"text": ";\n };\n}"
|
|
283
301
|
},
|
|
284
302
|
{
|
|
285
303
|
"kind": "Content",
|
|
@@ -291,7 +309,47 @@
|
|
|
291
309
|
"name": "ActionMenuItem",
|
|
292
310
|
"typeTokenRange": {
|
|
293
311
|
"startIndex": 1,
|
|
294
|
-
"endIndex":
|
|
312
|
+
"endIndex": 6
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"kind": "TypeAlias",
|
|
317
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItems:type",
|
|
318
|
+
"docComment": "/**\n * The actions shown by the Actions Menu: a fixed array, or a function of the row data returning one (for row-scoped eligibility/permission filtering).\n *\n * @public\n */\n",
|
|
319
|
+
"excerptTokens": [
|
|
320
|
+
{
|
|
321
|
+
"kind": "Content",
|
|
322
|
+
"text": "export type ActionMenuItems = "
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"kind": "Reference",
|
|
326
|
+
"text": "ActionMenuItem",
|
|
327
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItem:type"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"kind": "Content",
|
|
331
|
+
"text": "[] | ((rowData: any) => "
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"kind": "Reference",
|
|
335
|
+
"text": "ActionMenuItem",
|
|
336
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItem:type"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"kind": "Content",
|
|
340
|
+
"text": "[])"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"kind": "Content",
|
|
344
|
+
"text": ";"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
"fileUrlPath": "src/actions-menu/actions-menu.ts",
|
|
348
|
+
"releaseTag": "Public",
|
|
349
|
+
"name": "ActionMenuItems",
|
|
350
|
+
"typeTokenRange": {
|
|
351
|
+
"startIndex": 1,
|
|
352
|
+
"endIndex": 5
|
|
295
353
|
}
|
|
296
354
|
},
|
|
297
355
|
{
|
|
@@ -330,12 +388,8 @@
|
|
|
330
388
|
},
|
|
331
389
|
{
|
|
332
390
|
"kind": "Reference",
|
|
333
|
-
"text": "
|
|
334
|
-
"canonicalReference": "@genesislcap/foundation-ui!
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
"kind": "Content",
|
|
338
|
-
"text": "[]"
|
|
391
|
+
"text": "ActionMenuItems",
|
|
392
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItems:type"
|
|
339
393
|
},
|
|
340
394
|
{
|
|
341
395
|
"kind": "Content",
|
|
@@ -348,7 +402,7 @@
|
|
|
348
402
|
"name": "actions",
|
|
349
403
|
"propertyTypeTokenRange": {
|
|
350
404
|
"startIndex": 1,
|
|
351
|
-
"endIndex":
|
|
405
|
+
"endIndex": 2
|
|
352
406
|
},
|
|
353
407
|
"isStatic": false,
|
|
354
408
|
"isProtected": false,
|
|
@@ -870,6 +924,85 @@
|
|
|
870
924
|
"isProtected": false,
|
|
871
925
|
"isAbstract": false
|
|
872
926
|
},
|
|
927
|
+
{
|
|
928
|
+
"kind": "Property",
|
|
929
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#iconName:member",
|
|
930
|
+
"docComment": "/**\n * When set, the opener renders this icon instead of the `name` text (e.g. `ellipsis` for an icon-only \"kebab\" opener).\n */\n",
|
|
931
|
+
"excerptTokens": [
|
|
932
|
+
{
|
|
933
|
+
"kind": "Content",
|
|
934
|
+
"text": "iconName: "
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"kind": "Content",
|
|
938
|
+
"text": "string"
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"kind": "Content",
|
|
942
|
+
"text": ";"
|
|
943
|
+
}
|
|
944
|
+
],
|
|
945
|
+
"isReadonly": false,
|
|
946
|
+
"isOptional": false,
|
|
947
|
+
"releaseTag": "Public",
|
|
948
|
+
"name": "iconName",
|
|
949
|
+
"propertyTypeTokenRange": {
|
|
950
|
+
"startIndex": 1,
|
|
951
|
+
"endIndex": 2
|
|
952
|
+
},
|
|
953
|
+
"isStatic": false,
|
|
954
|
+
"isProtected": false,
|
|
955
|
+
"isAbstract": false
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"kind": "Method",
|
|
959
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#isActionDisabled:member(1)",
|
|
960
|
+
"docComment": "/**\n * Resolves an action's `isDisabled` flag or row-data function for the current row.\n */\n",
|
|
961
|
+
"excerptTokens": [
|
|
962
|
+
{
|
|
963
|
+
"kind": "Content",
|
|
964
|
+
"text": "isActionDisabled(action: "
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"kind": "Reference",
|
|
968
|
+
"text": "ActionMenuItem",
|
|
969
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItem:type"
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"kind": "Content",
|
|
973
|
+
"text": "): "
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"kind": "Content",
|
|
977
|
+
"text": "boolean"
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"kind": "Content",
|
|
981
|
+
"text": ";"
|
|
982
|
+
}
|
|
983
|
+
],
|
|
984
|
+
"isStatic": false,
|
|
985
|
+
"returnTypeTokenRange": {
|
|
986
|
+
"startIndex": 3,
|
|
987
|
+
"endIndex": 4
|
|
988
|
+
},
|
|
989
|
+
"releaseTag": "Public",
|
|
990
|
+
"isProtected": false,
|
|
991
|
+
"overloadIndex": 1,
|
|
992
|
+
"parameters": [
|
|
993
|
+
{
|
|
994
|
+
"parameterName": "action",
|
|
995
|
+
"parameterTypeTokenRange": {
|
|
996
|
+
"startIndex": 1,
|
|
997
|
+
"endIndex": 2
|
|
998
|
+
},
|
|
999
|
+
"isOptional": false
|
|
1000
|
+
}
|
|
1001
|
+
],
|
|
1002
|
+
"isOptional": false,
|
|
1003
|
+
"isAbstract": false,
|
|
1004
|
+
"name": "isActionDisabled"
|
|
1005
|
+
},
|
|
873
1006
|
{
|
|
874
1007
|
"kind": "Property",
|
|
875
1008
|
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#isVertical:member",
|
|
@@ -978,6 +1111,104 @@
|
|
|
978
1111
|
"isAbstract": false,
|
|
979
1112
|
"name": "onActionMenuItemClick"
|
|
980
1113
|
},
|
|
1114
|
+
{
|
|
1115
|
+
"kind": "Method",
|
|
1116
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#onIconOpenerKeydown:member(1)",
|
|
1117
|
+
"docComment": "/**\n * Opens the icon-only opener from the keyboard, as a native button would.\n */\n",
|
|
1118
|
+
"excerptTokens": [
|
|
1119
|
+
{
|
|
1120
|
+
"kind": "Content",
|
|
1121
|
+
"text": "onIconOpenerKeydown(event: "
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
"kind": "Reference",
|
|
1125
|
+
"text": "KeyboardEvent",
|
|
1126
|
+
"canonicalReference": "!KeyboardEvent:interface"
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"kind": "Content",
|
|
1130
|
+
"text": "): "
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"kind": "Content",
|
|
1134
|
+
"text": "boolean"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
"kind": "Content",
|
|
1138
|
+
"text": ";"
|
|
1139
|
+
}
|
|
1140
|
+
],
|
|
1141
|
+
"isStatic": false,
|
|
1142
|
+
"returnTypeTokenRange": {
|
|
1143
|
+
"startIndex": 3,
|
|
1144
|
+
"endIndex": 4
|
|
1145
|
+
},
|
|
1146
|
+
"releaseTag": "Public",
|
|
1147
|
+
"isProtected": false,
|
|
1148
|
+
"overloadIndex": 1,
|
|
1149
|
+
"parameters": [
|
|
1150
|
+
{
|
|
1151
|
+
"parameterName": "event",
|
|
1152
|
+
"parameterTypeTokenRange": {
|
|
1153
|
+
"startIndex": 1,
|
|
1154
|
+
"endIndex": 2
|
|
1155
|
+
},
|
|
1156
|
+
"isOptional": false
|
|
1157
|
+
}
|
|
1158
|
+
],
|
|
1159
|
+
"isOptional": false,
|
|
1160
|
+
"isAbstract": false,
|
|
1161
|
+
"name": "onIconOpenerKeydown"
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"kind": "Method",
|
|
1165
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#onPopoverToggle:member(1)",
|
|
1166
|
+
"docComment": "/**\n * Syncs `open` when the native `popover=\"auto\"` light-dismiss (outside click / Escape) closes the vertical menu without going through `toggleActionsMenuVisibility()`.\n */\n",
|
|
1167
|
+
"excerptTokens": [
|
|
1168
|
+
{
|
|
1169
|
+
"kind": "Content",
|
|
1170
|
+
"text": "onPopoverToggle(event: "
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"kind": "Reference",
|
|
1174
|
+
"text": "Event",
|
|
1175
|
+
"canonicalReference": "!Event:interface"
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"kind": "Content",
|
|
1179
|
+
"text": "): "
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
"kind": "Content",
|
|
1183
|
+
"text": "void"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"kind": "Content",
|
|
1187
|
+
"text": ";"
|
|
1188
|
+
}
|
|
1189
|
+
],
|
|
1190
|
+
"isStatic": false,
|
|
1191
|
+
"returnTypeTokenRange": {
|
|
1192
|
+
"startIndex": 3,
|
|
1193
|
+
"endIndex": 4
|
|
1194
|
+
},
|
|
1195
|
+
"releaseTag": "Public",
|
|
1196
|
+
"isProtected": false,
|
|
1197
|
+
"overloadIndex": 1,
|
|
1198
|
+
"parameters": [
|
|
1199
|
+
{
|
|
1200
|
+
"parameterName": "event",
|
|
1201
|
+
"parameterTypeTokenRange": {
|
|
1202
|
+
"startIndex": 1,
|
|
1203
|
+
"endIndex": 2
|
|
1204
|
+
},
|
|
1205
|
+
"isOptional": false
|
|
1206
|
+
}
|
|
1207
|
+
],
|
|
1208
|
+
"isOptional": false,
|
|
1209
|
+
"isAbstract": false,
|
|
1210
|
+
"name": "onPopoverToggle"
|
|
1211
|
+
},
|
|
981
1212
|
{
|
|
982
1213
|
"kind": "Property",
|
|
983
1214
|
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#open:member",
|
|
@@ -1039,6 +1270,41 @@
|
|
|
1039
1270
|
"isAbstract": false,
|
|
1040
1271
|
"name": "openChanged"
|
|
1041
1272
|
},
|
|
1273
|
+
{
|
|
1274
|
+
"kind": "Property",
|
|
1275
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#resolvedActions:member",
|
|
1276
|
+
"docComment": "",
|
|
1277
|
+
"excerptTokens": [
|
|
1278
|
+
{
|
|
1279
|
+
"kind": "Content",
|
|
1280
|
+
"text": "get resolvedActions(): "
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"kind": "Reference",
|
|
1284
|
+
"text": "ActionMenuItem",
|
|
1285
|
+
"canonicalReference": "@genesislcap/foundation-ui!ActionMenuItem:type"
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"kind": "Content",
|
|
1289
|
+
"text": "[]"
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
"kind": "Content",
|
|
1293
|
+
"text": ";"
|
|
1294
|
+
}
|
|
1295
|
+
],
|
|
1296
|
+
"isReadonly": true,
|
|
1297
|
+
"isOptional": false,
|
|
1298
|
+
"releaseTag": "Public",
|
|
1299
|
+
"name": "resolvedActions",
|
|
1300
|
+
"propertyTypeTokenRange": {
|
|
1301
|
+
"startIndex": 1,
|
|
1302
|
+
"endIndex": 3
|
|
1303
|
+
},
|
|
1304
|
+
"isStatic": false,
|
|
1305
|
+
"isProtected": false,
|
|
1306
|
+
"isAbstract": false
|
|
1307
|
+
},
|
|
1042
1308
|
{
|
|
1043
1309
|
"kind": "Property",
|
|
1044
1310
|
"canonicalReference": "@genesislcap/foundation-ui!ActionsMenu#rowData:member",
|
|
@@ -54125,7 +54391,7 @@
|
|
|
54125
54391
|
},
|
|
54126
54392
|
{
|
|
54127
54393
|
"kind": "Content",
|
|
54128
|
-
"text": "\"boolean\" | \"number\" | \"
|
|
54394
|
+
"text": "\"boolean\" | \"number\" | \"text\" | \"date\" | \"enum\""
|
|
54129
54395
|
}
|
|
54130
54396
|
],
|
|
54131
54397
|
"fileUrlPath": "src/filter-bar/filter-bar.utils.ts",
|
package/dist/foundation-ui.d.ts
CHANGED
|
@@ -310,21 +310,39 @@ export declare class AccordionItem extends AccordionItem_2 {
|
|
|
310
310
|
export declare type ActionMenuItem = {
|
|
311
311
|
name: string | ((rowData: any) => string);
|
|
312
312
|
callback: (rowData: any) => void | any;
|
|
313
|
-
|
|
313
|
+
/** A fixed flag, or a function of the row data (the grid row from the cell params). */
|
|
314
|
+
isDisabled?: boolean | ((rowData: any) => boolean);
|
|
314
315
|
color?: string;
|
|
316
|
+
icon?: {
|
|
317
|
+
variant?: IconStyle;
|
|
318
|
+
name: string;
|
|
319
|
+
size?: FaSize;
|
|
320
|
+
};
|
|
315
321
|
};
|
|
316
322
|
|
|
323
|
+
/**
|
|
324
|
+
* The actions shown by the Actions Menu: a fixed array, or a function of the row data returning
|
|
325
|
+
* one (for row-scoped eligibility/permission filtering).
|
|
326
|
+
* @public
|
|
327
|
+
*/
|
|
328
|
+
export declare type ActionMenuItems = ActionMenuItem[] | ((rowData: any) => ActionMenuItem[]);
|
|
329
|
+
|
|
317
330
|
/**
|
|
318
331
|
* @tagname %%prefix%%-actions-menu
|
|
319
332
|
*/
|
|
320
333
|
export declare class ActionsMenu extends FoundationElement {
|
|
321
|
-
actions:
|
|
334
|
+
actions: ActionMenuItems;
|
|
322
335
|
isVertical: boolean;
|
|
323
336
|
addDefaultActions: boolean;
|
|
324
337
|
autoCloseOnAction: boolean;
|
|
325
338
|
classNames: string;
|
|
326
339
|
definition: any;
|
|
327
340
|
name: string;
|
|
341
|
+
/**
|
|
342
|
+
* When set, the opener renders this icon instead of the `name` text (e.g. `ellipsis`
|
|
343
|
+
* for an icon-only "kebab" opener).
|
|
344
|
+
*/
|
|
345
|
+
iconName: string;
|
|
328
346
|
open: boolean;
|
|
329
347
|
buttonAppearance: string;
|
|
330
348
|
hideDisabled: boolean;
|
|
@@ -332,12 +350,25 @@ export declare class ActionsMenu extends FoundationElement {
|
|
|
332
350
|
singleOption: ActionMenuItem;
|
|
333
351
|
actionsMenu: HTMLElement;
|
|
334
352
|
actionsOpener: HTMLElement;
|
|
353
|
+
private positionTracker?;
|
|
335
354
|
disconnectedCallback(): void;
|
|
336
355
|
private updateMenuPosition;
|
|
356
|
+
private startTrackingPosition;
|
|
357
|
+
private stopTrackingPosition;
|
|
337
358
|
protected definitionChanged(oldValue: any, newValue: any): void;
|
|
338
359
|
protected openChanged(): void;
|
|
339
360
|
toggleActionsMenuVisibility(): void;
|
|
361
|
+
/**
|
|
362
|
+
* Syncs `open` when the native `popover="auto"` light-dismiss (outside click / Escape) closes
|
|
363
|
+
* the vertical menu without going through `toggleActionsMenuVisibility()`.
|
|
364
|
+
*/
|
|
365
|
+
onPopoverToggle(event: Event): void;
|
|
366
|
+
/** Opens the icon-only opener from the keyboard, as a native button would. */
|
|
367
|
+
onIconOpenerKeydown(event: KeyboardEvent): boolean;
|
|
340
368
|
onActionMenuItemClick(callback: (rowData: any) => void | any): void;
|
|
369
|
+
/** Resolves an action's `isDisabled` flag or row-data function for the current row. */
|
|
370
|
+
isActionDisabled(action: ActionMenuItem): boolean;
|
|
371
|
+
get resolvedActions(): ActionMenuItem[];
|
|
341
372
|
get allActions(): ActionMenuItem[];
|
|
342
373
|
get rowData(): any;
|
|
343
374
|
getLabel(name: string | ((rowData: any) => string)): string;
|
|
@@ -5480,7 +5511,7 @@ export declare class Listbox extends Listbox_2 {
|
|
|
5480
5511
|
export declare class ListboxOption extends ListboxOption_2 {
|
|
5481
5512
|
}
|
|
5482
5513
|
|
|
5483
|
-
export declare const mapType: (TYPE: string) => "boolean" | "number" | "
|
|
5514
|
+
export declare const mapType: (TYPE: string) => "boolean" | "number" | "text" | "date" | "enum";
|
|
5484
5515
|
|
|
5485
5516
|
export declare const MAX_DAYS = 31;
|
|
5486
5517
|
|