@fundamental-ngx/core 0.63.1-rc.9 → 0.63.1
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/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-calendar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-form.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-list.mjs +34 -12
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +70 -15
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-settings.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-time.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-title.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tree.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/package.json +4 -4
- package/schematics/add-styles/index.js +2 -2
- package/schematics/add-styles/index.js.map +1 -1
- package/schematics/migrations.json +10 -0
- package/schematics/update-sibling-packages/index.d.ts +2 -0
- package/schematics/update-sibling-packages/index.js +52 -0
- package/schematics/update-sibling-packages/index.js.map +1 -0
- package/types/fundamental-ngx-core-list.d.ts +9 -0
- package/types/fundamental-ngx-core-menu.d.ts +10 -0
|
@@ -266,6 +266,11 @@ class MenuInteractiveComponent {
|
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
/** @hidden */
|
|
269
|
+
get role() {
|
|
270
|
+
// Parent items switch to role="none" when expanded so VoiceOver doesn't count them.
|
|
271
|
+
return this.ariaHaspopup && this.ariaExpanded ? 'none' : 'menuitem';
|
|
272
|
+
}
|
|
273
|
+
/** @hidden */
|
|
269
274
|
get startAddon() {
|
|
270
275
|
if (!this._startAddonInstance) {
|
|
271
276
|
this.addonPortalOutlet.detach();
|
|
@@ -301,7 +306,7 @@ class MenuInteractiveComponent {
|
|
|
301
306
|
this._cdr.markForCheck();
|
|
302
307
|
}
|
|
303
308
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuInteractiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
304
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: MenuInteractiveComponent, isStandalone: true, selector: "[fd-menu-interactive]", host: {
|
|
309
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: MenuInteractiveComponent, isStandalone: true, selector: "[fd-menu-interactive]", host: { listeners: { "keydown.enter": "_handleKeydown($event)", "keydown.space": "_handleKeydown($event)" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex", "class.is-disabled": "this.disabled", "attr.aria-controls": "this.ariaControls", "class.is-selected": "this.selected", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-haspopup": "this.ariaHaspopup", "class.has-child": "this.ariaHaspopup", "class.fd-menu__link": "this.fdMenuLinkClass" } }, queries: [{ propertyName: "_addon", first: true, predicate: MenuAddonDirective, descendants: true }, { propertyName: "_input", first: true, predicate: MenuItemInputDirective, descendants: true }], viewQueries: [{ propertyName: "addonPortalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true }], ngImport: i0, template: `
|
|
305
310
|
<ng-template cdkPortalOutlet></ng-template>
|
|
306
311
|
<ng-content></ng-content>
|
|
307
312
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -315,9 +320,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
315
320
|
<ng-template cdkPortalOutlet></ng-template>
|
|
316
321
|
<ng-content></ng-content>
|
|
317
322
|
`,
|
|
318
|
-
host: {
|
|
319
|
-
role: 'menuitem'
|
|
320
|
-
},
|
|
321
323
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
322
324
|
imports: [PortalModule]
|
|
323
325
|
}]
|
|
@@ -327,6 +329,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
327
329
|
}], _addon: [{
|
|
328
330
|
type: ContentChild,
|
|
329
331
|
args: [MenuAddonDirective]
|
|
332
|
+
}], role: [{
|
|
333
|
+
type: HostBinding,
|
|
334
|
+
args: ['attr.role']
|
|
330
335
|
}], tabindex: [{
|
|
331
336
|
type: HostBinding,
|
|
332
337
|
args: ['attr.tabindex']
|
|
@@ -765,7 +770,7 @@ class MenuItemComponent {
|
|
|
765
770
|
}));
|
|
766
771
|
}
|
|
767
772
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
768
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: MenuItemComponent, isStandalone: true, selector: "li[fd-menu-item]", inputs: { disabled: "disabled", itemId: "itemId", submenu: "submenu", parentSubmenu: "parentSubmenu", hasSeparator: ["hasSeparator", "hasSeparator", booleanAttribute] }, outputs: { onSelect: "onSelect" }, host: { properties: { "
|
|
773
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: MenuItemComponent, isStandalone: true, selector: "li[fd-menu-item]", inputs: { disabled: "disabled", itemId: "itemId", submenu: "submenu", parentSubmenu: "parentSubmenu", hasSeparator: ["hasSeparator", "hasSeparator", booleanAttribute] }, outputs: { onSelect: "onSelect" }, host: { properties: { "class.fd-menu__item": "true", "class.fd-menu--full-width": "menuService?.menuComponent?.mobile() ?? false", "class.has-separator": "this.hasSeparator" } }, providers: [
|
|
769
774
|
{
|
|
770
775
|
provide: FD_MENU_ITEM_COMPONENT,
|
|
771
776
|
useExisting: forwardRef(() => MenuItemComponent)
|
|
@@ -775,7 +780,6 @@ class MenuItemComponent {
|
|
|
775
780
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
776
781
|
type: Component,
|
|
777
782
|
args: [{ selector: 'li[fd-menu-item]', exportAs: 'fd-menu-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
778
|
-
'[attr.role]': '"menuitem"',
|
|
779
783
|
'[class.fd-menu__item]': 'true',
|
|
780
784
|
'[class.fd-menu--full-width]': 'menuService?.menuComponent?.mobile() ?? false'
|
|
781
785
|
}, imports: [NgTemplateOutlet], providers: [
|
|
@@ -1493,6 +1497,7 @@ class MenuComponent {
|
|
|
1493
1497
|
this._viewContainerRef = inject(ViewContainerRef);
|
|
1494
1498
|
this._dynamicComponentService = inject(DynamicComponentService, { optional: true });
|
|
1495
1499
|
this._destroyRef = inject(DestroyRef);
|
|
1500
|
+
this._submenuSubscriptions = new Map();
|
|
1496
1501
|
// Watch mobile mode changes
|
|
1497
1502
|
effect(() => {
|
|
1498
1503
|
this._menuService.setMenuMode(this.mobile());
|
|
@@ -1545,22 +1550,22 @@ class MenuComponent {
|
|
|
1545
1550
|
// Use afterNextRender to ensure this runs after ngAfterContentInit sets the menu component
|
|
1546
1551
|
afterNextRender(() => {
|
|
1547
1552
|
runInInjectionContext(this._injector, () => {
|
|
1548
|
-
// Track previous subscriptions to clean up when effect re-runs
|
|
1549
|
-
let submenuSubscriptions = [];
|
|
1550
1553
|
effect((onCleanup) => {
|
|
1551
1554
|
// Clean up previous subscriptions before creating new ones
|
|
1552
|
-
|
|
1553
|
-
submenuSubscriptions = [];
|
|
1555
|
+
this._clearSubmenuSubscriptions();
|
|
1554
1556
|
const menuItems = this._menuItems();
|
|
1555
1557
|
this._menuService.rebuildMenu();
|
|
1558
|
+
// Set aria-posinset and aria-setsize for all menu items recursively
|
|
1559
|
+
// IMPORTANT: Defer this until after Angular processes @Input() bindings
|
|
1560
|
+
// Otherwise menuItem.submenu will be undefined
|
|
1561
|
+
afterNextRender(() => {
|
|
1562
|
+
this._setAriaPositionAttributesRecursive(menuItems);
|
|
1563
|
+
}, { injector: this._injector });
|
|
1556
1564
|
// Whether menu have submenu or not.
|
|
1557
1565
|
let hasSubmenus = false;
|
|
1558
1566
|
menuItems.forEach((menuItem) => {
|
|
1559
1567
|
if (menuItem.submenu) {
|
|
1560
1568
|
hasSubmenus = true;
|
|
1561
|
-
// Subscribe to submenu changes and track subscription for cleanup
|
|
1562
|
-
const subscription = menuItem.submenu._menuItemsChange$.subscribe(() => this._menuService.rebuildMenu());
|
|
1563
|
-
submenuSubscriptions.push(() => subscription.unsubscribe());
|
|
1564
1569
|
}
|
|
1565
1570
|
});
|
|
1566
1571
|
// Always disable scrollbar when menu has submenus to prevent clipping
|
|
@@ -1570,8 +1575,7 @@ class MenuComponent {
|
|
|
1570
1575
|
this._popoverService.disableScrollbar.set(shouldDisableScrollbar);
|
|
1571
1576
|
// Cleanup callback when effect is destroyed or re-runs
|
|
1572
1577
|
onCleanup(() => {
|
|
1573
|
-
|
|
1574
|
-
submenuSubscriptions = [];
|
|
1578
|
+
this._clearSubmenuSubscriptions();
|
|
1575
1579
|
});
|
|
1576
1580
|
});
|
|
1577
1581
|
});
|
|
@@ -1813,6 +1817,57 @@ class MenuComponent {
|
|
|
1813
1817
|
this.trigger.nativeElement.focus();
|
|
1814
1818
|
}
|
|
1815
1819
|
}
|
|
1820
|
+
/** @hidden */
|
|
1821
|
+
_clearSubmenuSubscriptions() {
|
|
1822
|
+
this._submenuSubscriptions.forEach((unsubscribe) => unsubscribe());
|
|
1823
|
+
this._submenuSubscriptions.clear();
|
|
1824
|
+
}
|
|
1825
|
+
/**
|
|
1826
|
+
* @hidden
|
|
1827
|
+
* Sets aria-posinset and aria-setsize on all menu items recursively.
|
|
1828
|
+
*/
|
|
1829
|
+
_setAriaPositionAttributesRecursive(menuItems) {
|
|
1830
|
+
// Filter out submenu items - contentChildren returns all descendants
|
|
1831
|
+
const submenuItems = new Set();
|
|
1832
|
+
menuItems.forEach((item) => {
|
|
1833
|
+
if (item.submenu?.menuItems) {
|
|
1834
|
+
item.submenu.menuItems.forEach((child) => submenuItems.add(child));
|
|
1835
|
+
}
|
|
1836
|
+
});
|
|
1837
|
+
const directChildren = menuItems.filter((item) => !submenuItems.has(item));
|
|
1838
|
+
const directInteractiveItems = directChildren
|
|
1839
|
+
.map((menuItem) => ({
|
|
1840
|
+
menuItem,
|
|
1841
|
+
interactiveElement: menuItem.elementRef.nativeElement.querySelector('[fd-menu-interactive]')
|
|
1842
|
+
}))
|
|
1843
|
+
.filter(({ interactiveElement }) => !!interactiveElement && (interactiveElement.getAttribute('role') || 'menuitem') === 'menuitem');
|
|
1844
|
+
directChildren.forEach((menuItem) => {
|
|
1845
|
+
const interactiveElement = menuItem.elementRef.nativeElement.querySelector('[fd-menu-interactive]');
|
|
1846
|
+
if (interactiveElement) {
|
|
1847
|
+
const position = directInteractiveItems.findIndex((item) => item.menuItem === menuItem);
|
|
1848
|
+
if (position > -1) {
|
|
1849
|
+
this._renderer.setAttribute(interactiveElement, 'aria-posinset', String(position + 1));
|
|
1850
|
+
this._renderer.setAttribute(interactiveElement, 'aria-setsize', String(directInteractiveItems.length));
|
|
1851
|
+
}
|
|
1852
|
+
else {
|
|
1853
|
+
// Keep aria metadata aligned when an item switches to role="none".
|
|
1854
|
+
this._renderer.removeAttribute(interactiveElement, 'aria-posinset');
|
|
1855
|
+
this._renderer.removeAttribute(interactiveElement, 'aria-setsize');
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
if (menuItem.submenu) {
|
|
1859
|
+
const nestedMenuItems = menuItem.submenu.menuItems || [];
|
|
1860
|
+
this._setAriaPositionAttributesRecursive(nestedMenuItems);
|
|
1861
|
+
if (!this._submenuSubscriptions.has(menuItem.submenu)) {
|
|
1862
|
+
const subscription = menuItem.submenu._menuItemsChange$.subscribe(() => {
|
|
1863
|
+
this._menuService.rebuildMenu();
|
|
1864
|
+
this._setAriaPositionAttributesRecursive(this._menuItems());
|
|
1865
|
+
});
|
|
1866
|
+
this._submenuSubscriptions.set(menuItem.submenu, () => subscription.unsubscribe());
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
});
|
|
1870
|
+
}
|
|
1816
1871
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1817
1872
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.0", type: MenuComponent, isStandalone: true, selector: "fd-menu", inputs: { openOnHoverTime: { classPropertyName: "openOnHoverTime", publicName: "openOnHoverTime", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, mobile: { classPropertyName: "mobile", publicName: "mobile", isSignal: true, isRequired: false, transformFunction: null }, mobileConfig: { classPropertyName: "mobileConfig", publicName: "mobileConfig", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscapeKey: { classPropertyName: "closeOnEscapeKey", publicName: "closeOnEscapeKey", isSignal: true, isRequired: false, transformFunction: null }, focusAutoCapture: { classPropertyName: "focusAutoCapture", publicName: "focusAutoCapture", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disableScrollbar: { classPropertyName: "disableScrollbar", publicName: "disableScrollbar", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, fillControlMode: { classPropertyName: "fillControlMode", publicName: "fillControlMode", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, noArrow: { classPropertyName: "noArrow", publicName: "noArrow", isSignal: true, isRequired: false, transformFunction: null }, focusTrapped: { classPropertyName: "focusTrapped", publicName: "focusTrapped", isSignal: true, isRequired: false, transformFunction: null }, additionalBodyClass: { classPropertyName: "additionalBodyClass", publicName: "additionalBodyClass", isSignal: true, isRequired: false, transformFunction: null }, closeOnNavigation: { classPropertyName: "closeOnNavigation", publicName: "closeOnNavigation", isSignal: true, isRequired: false, transformFunction: null }, restoreFocusOnClose: { classPropertyName: "restoreFocusOnClose", publicName: "restoreFocusOnClose", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, fixedPosition: { classPropertyName: "fixedPosition", publicName: "fixedPosition", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", isOpenChange: "isOpenChange", activePath: "activePath", beforeOpen: "beforeOpen" }, host: { properties: { "class.fd-popover-custom--disabled": "disabled()" } }, providers: [
|
|
1818
1873
|
MenuService,
|