@fabric-msft/fabric-web 4.0.0 → 5.0.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/CHANGELOG.json +334 -0
- package/CHANGELOG.md +108 -1
- package/dist/dts/components/accordion-menu/accordion-menu.d.ts +2 -2
- package/dist/dts/components/accordion-menu/accordion-menu.d.ts.map +1 -1
- package/dist/dts/components/accordion-menu/accordion-menu.template.d.ts +1 -1
- package/dist/dts/components/accordion-menu/accordion-menu.template.d.ts.map +1 -1
- package/dist/dts/components/accordion-menu-panel/accordion-menu-panel.d.ts +2 -2
- package/dist/dts/components/accordion-menu-panel/accordion-menu-panel.d.ts.map +1 -1
- package/dist/dts/components/accordion-menu-panel/accordion-menu-panel.template.d.ts +1 -1
- package/dist/dts/components/accordion-menu-panel/accordion-menu-panel.template.d.ts.map +1 -1
- package/dist/dts/components/button/button.d.ts +1 -1
- package/dist/dts/components/button/button.d.ts.map +1 -1
- package/dist/dts/components/card/card.template.d.ts +1 -1
- package/dist/dts/components/card/card.template.d.ts.map +1 -1
- package/dist/dts/components/card-footer/card-footer.template.d.ts +1 -1
- package/dist/dts/components/card-footer/card-footer.template.d.ts.map +1 -1
- package/dist/dts/components/card-header/card-header.template.d.ts +1 -1
- package/dist/dts/components/card-header/card-header.template.d.ts.map +1 -1
- package/dist/dts/components/card-preview/card-preview.template.d.ts +1 -1
- package/dist/dts/components/card-preview/card-preview.template.d.ts.map +1 -1
- package/dist/dts/components/carousel/carousel.template.d.ts +1 -1
- package/dist/dts/components/carousel/carousel.template.d.ts.map +1 -1
- package/dist/dts/components/component-register.d.ts +67 -0
- package/dist/dts/components/component-register.d.ts.map +1 -0
- package/dist/dts/components/compound-button/compound-button.d.ts +1 -1
- package/dist/dts/components/compound-button/compound-button.d.ts.map +1 -1
- package/dist/dts/components/compound-button/compound-button.options.d.ts +1 -1
- package/dist/dts/components/compound-button/compound-button.options.d.ts.map +1 -1
- package/dist/dts/components/counter-badge/counter-badge.definition.d.ts +1 -1
- package/dist/dts/components/counter-badge/counter-badge.definition.d.ts.map +1 -1
- package/dist/dts/components/counter-badge/counter-badge.options.d.ts +64 -0
- package/dist/dts/components/counter-badge/counter-badge.options.d.ts.map +1 -0
- package/dist/dts/components/counter-badge/index.d.ts +4 -3
- package/dist/dts/components/counter-badge/index.d.ts.map +1 -1
- package/dist/dts/components/field/field.d.ts +32 -1
- package/dist/dts/components/field/field.d.ts.map +1 -1
- package/dist/dts/components/filter-pill/filter-pill.d.ts +2 -2
- package/dist/dts/components/filter-pill/filter-pill.d.ts.map +1 -1
- package/dist/dts/components/filter-pill/filter-pill.styles.d.ts.map +1 -1
- package/dist/dts/components/filter-pill/filter-pill.template.d.ts +1 -1
- package/dist/dts/components/filter-pill/filter-pill.template.d.ts.map +1 -1
- package/dist/dts/components/listbox/listbox.d.ts +1 -1
- package/dist/dts/components/listbox/listbox.d.ts.map +1 -1
- package/dist/dts/components/loading-button/loading-button.template.d.ts +1 -1
- package/dist/dts/components/loading-button/loading-button.template.d.ts.map +1 -1
- package/dist/dts/components/menu/menu.d.ts +71 -83
- package/dist/dts/components/menu/menu.d.ts.map +1 -1
- package/dist/dts/components/menu/menu.positioning.d.ts +26 -67
- package/dist/dts/components/menu/menu.positioning.d.ts.map +1 -1
- package/dist/dts/components/menu/menu.styles.d.ts.map +1 -1
- package/dist/dts/components/menu/menu.template.d.ts +1 -1
- package/dist/dts/components/menu/menu.template.d.ts.map +1 -1
- package/dist/dts/components/menu-item/menu-item.d.ts +4 -4
- package/dist/dts/components/menu-item/menu-item.d.ts.map +1 -1
- package/dist/dts/components/menu-list/menu-list.d.ts +1 -1
- package/dist/dts/components/menu-list/menu-list.d.ts.map +1 -1
- package/dist/dts/components/multi-view/multi-view.template.d.ts +1 -1
- package/dist/dts/components/multi-view/multi-view.template.d.ts.map +1 -1
- package/dist/dts/components/multi-view-controller/multi-view-controller.styles.d.ts.map +1 -1
- package/dist/dts/components/multi-view-controller/multi-view-controller.template.d.ts +1 -1
- package/dist/dts/components/multi-view-controller/multi-view-controller.template.d.ts.map +1 -1
- package/dist/dts/components/multi-view-group/multi-view-group.template.d.ts +1 -1
- package/dist/dts/components/multi-view-group/multi-view-group.template.d.ts.map +1 -1
- package/dist/dts/components/option-group/option-group.d.ts +1 -1
- package/dist/dts/components/option-group/option-group.d.ts.map +1 -1
- package/dist/dts/components/option-group/option-group.template.d.ts +1 -1
- package/dist/dts/components/option-group/option-group.template.d.ts.map +1 -1
- package/dist/dts/components/popover/index.d.ts +1 -1
- package/dist/dts/components/popover/index.d.ts.map +1 -1
- package/dist/dts/components/popover/popover.d.ts +53 -74
- package/dist/dts/components/popover/popover.d.ts.map +1 -1
- package/dist/dts/components/popover/popover.definition.d.ts +1 -1
- package/dist/dts/components/popover/popover.definition.d.ts.map +1 -1
- package/dist/dts/components/popover/popover.options.d.ts +25 -10
- package/dist/dts/components/popover/popover.options.d.ts.map +1 -1
- package/dist/dts/components/popover/popover.positioning.d.ts +92 -0
- package/dist/dts/components/popover/popover.positioning.d.ts.map +1 -0
- package/dist/dts/components/popover/popover.styles.d.ts.map +1 -1
- package/dist/dts/components/popover/popover.template.d.ts +1 -1
- package/dist/dts/components/popover/popover.template.d.ts.map +1 -1
- package/dist/dts/components/search-box/index.d.ts +1 -1
- package/dist/dts/components/search-box/index.d.ts.map +1 -1
- package/dist/dts/components/search-box/search-box.d.ts +1 -1
- package/dist/dts/components/search-box/search-box.d.ts.map +1 -1
- package/dist/dts/components/search-box/search-box.options.d.ts.map +1 -1
- package/dist/dts/components/search-box/search-box.template.d.ts +1 -1
- package/dist/dts/components/search-box/search-box.template.d.ts.map +1 -1
- package/dist/dts/components/svg-icon/scripts/sprite-builder.d.ts +1 -1
- package/dist/dts/components/svg-icon/scripts/sprite-builder.d.ts.map +1 -1
- package/dist/dts/components/svg-icon/svg-icon.styles.d.ts.map +1 -1
- package/dist/dts/components/table/index.d.ts +6 -5
- package/dist/dts/components/table/index.d.ts.map +1 -1
- package/dist/dts/components/table/table.d.ts +2 -2
- package/dist/dts/components/table/table.d.ts.map +1 -1
- package/dist/dts/components/table/table.options.d.ts +4 -4
- package/dist/dts/components/table/table.options.d.ts.map +1 -1
- package/dist/dts/components/table/table.styles.d.ts.map +1 -1
- package/dist/dts/components/table/table.template.d.ts +1 -1
- package/dist/dts/components/table/table.template.d.ts.map +1 -1
- package/dist/dts/components/table-cell/index.d.ts +6 -5
- package/dist/dts/components/table-cell/index.d.ts.map +1 -1
- package/dist/dts/components/table-cell/table-cell.options.d.ts +2 -2
- package/dist/dts/components/table-cell/table-cell.options.d.ts.map +1 -1
- package/dist/dts/components/table-cell/table-cell.template.d.ts +1 -1
- package/dist/dts/components/table-cell/table-cell.template.d.ts.map +1 -1
- package/dist/dts/components/tag/tag.d.ts +1 -1
- package/dist/dts/components/tag/tag.d.ts.map +1 -1
- package/dist/dts/components/tag/tag.styles.d.ts.map +1 -1
- package/dist/dts/components/tag/tag.template.d.ts +1 -1
- package/dist/dts/components/tag/tag.template.d.ts.map +1 -1
- package/dist/dts/components/teaching-bubble/index.d.ts +2 -0
- package/dist/dts/components/teaching-bubble/index.d.ts.map +1 -1
- package/dist/dts/components/teaching-bubble/teaching-bubble.d.ts +1 -12
- package/dist/dts/components/teaching-bubble/teaching-bubble.d.ts.map +1 -1
- package/dist/dts/components/teaching-bubble/teaching-bubble.styles.d.ts.map +1 -1
- package/dist/dts/components/teaching-bubble/teaching-bubble.template.d.ts +1 -1
- package/dist/dts/components/teaching-bubble/teaching-bubble.template.d.ts.map +1 -1
- package/dist/dts/components/text/index.d.ts +4 -3
- package/dist/dts/components/text/index.d.ts.map +1 -1
- package/dist/dts/components/text/text.d.ts +3 -3
- package/dist/dts/components/text/text.options.d.ts +35 -0
- package/dist/dts/components/text/text.options.d.ts.map +1 -0
- package/dist/dts/components/text-input/index.d.ts +1 -1
- package/dist/dts/components/text-input/index.d.ts.map +1 -1
- package/dist/dts/components/text-input/text-input.base.d.ts +3 -3
- package/dist/dts/components/text-input/text-input.base.d.ts.map +1 -1
- package/dist/dts/components/text-input/text-input.d.ts.map +1 -1
- package/dist/dts/components/text-input/text-input.styles.d.ts.map +1 -1
- package/dist/dts/components/text-input/text-input.template.d.ts +1 -2
- package/dist/dts/components/text-input/text-input.template.d.ts.map +1 -1
- package/dist/dts/components/textarea/index.d.ts +5 -3
- package/dist/dts/components/textarea/index.d.ts.map +1 -1
- package/dist/dts/components/textarea/textarea.options.d.ts +39 -0
- package/dist/dts/components/textarea/textarea.options.d.ts.map +1 -0
- package/dist/dts/components/tooltip/tooltip.d.ts +27 -0
- package/dist/dts/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/dts/components/tooltip/tooltip.template.d.ts +13 -0
- package/dist/dts/components/tooltip/tooltip.template.d.ts.map +1 -0
- package/dist/dts/components/tree/tree.d.ts +16 -0
- package/dist/dts/components/tree/tree.d.ts.map +1 -1
- package/dist/dts/components/tree-item/index.d.ts +2 -1
- package/dist/dts/components/tree-item/index.d.ts.map +1 -1
- package/dist/dts/components/tree-item/tree-item.definition.d.ts.map +1 -1
- package/dist/dts/components/tree-item/tree-item.styles.d.ts +2 -0
- package/dist/dts/components/tree-item/tree-item.styles.d.ts.map +1 -0
- package/dist/dts/components/tree-item/tree-item.template.d.ts +4 -0
- package/dist/dts/components/tree-item/tree-item.template.d.ts.map +1 -0
- package/dist/dts/components/wizard/index.d.ts +1 -1
- package/dist/dts/components/wizard/index.d.ts.map +1 -1
- package/dist/dts/components/wizard/wizard.d.ts +1 -1
- package/dist/dts/components/wizard/wizard.d.ts.map +1 -1
- package/dist/dts/components/wizard/wizard.template.d.ts +1 -1
- package/dist/dts/components/wizard/wizard.template.d.ts.map +1 -1
- package/dist/dts/components/wizard-panel/wizard-panel.template.d.ts +1 -1
- package/dist/dts/components/wizard-panel/wizard-panel.template.d.ts.map +1 -1
- package/dist/dts/components/wizard-step/index.d.ts +1 -1
- package/dist/dts/components/wizard-step/index.d.ts.map +1 -1
- package/dist/dts/components/wizard-step/wizard-step.d.ts +1 -1
- package/dist/dts/components/wizard-step/wizard-step.d.ts.map +1 -1
- package/dist/dts/components/wizard-step/wizard-step.styles.d.ts.map +1 -1
- package/dist/dts/components/wizard-step/wizard-step.template.d.ts +1 -1
- package/dist/dts/components/wizard-step/wizard-step.template.d.ts.map +1 -1
- package/dist/dts/index.d.ts +20 -13
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/util/accessibility-utilities.d.ts +23 -0
- package/dist/dts/util/accessibility-utilities.d.ts.map +1 -0
- package/dist/dts/util/attribute-utilities.d.ts +9 -0
- package/dist/dts/util/attribute-utilities.d.ts.map +1 -0
- package/dist/dts/util/debounce.d.ts.map +1 -0
- package/dist/dts/util/debug.d.ts +32 -0
- package/dist/dts/util/debug.d.ts.map +1 -0
- package/dist/dts/util/direction.d.ts +193 -0
- package/dist/dts/util/direction.d.ts.map +1 -1
- package/dist/dts/util/dom.d.ts +2 -0
- package/dist/dts/util/dom.d.ts.map +1 -0
- package/dist/dts/util/element-internal-mocks.d.ts +67 -0
- package/dist/dts/util/element-internal-mocks.d.ts.map +1 -0
- package/dist/dts/util/focus-management.d.ts +132 -0
- package/dist/dts/util/focus-management.d.ts.map +1 -0
- package/dist/dts/util/hash-utilities.d.ts +8 -0
- package/dist/dts/util/hash-utilities.d.ts.map +1 -0
- package/dist/dts/util/index.d.ts +13 -6
- package/dist/dts/util/index.d.ts.map +1 -1
- package/dist/dts/util/positioning/flexible-position-strategy.d.ts +87 -0
- package/dist/dts/util/positioning/flexible-position-strategy.d.ts.map +1 -0
- package/dist/dts/util/positioning/index.d.ts +9 -0
- package/dist/dts/util/positioning/index.d.ts.map +1 -0
- package/dist/dts/util/positioning/position-calculator.d.ts +46 -0
- package/dist/dts/util/positioning/position-calculator.d.ts.map +1 -0
- package/dist/dts/util/positioning/types.d.ts +181 -0
- package/dist/dts/util/positioning/types.d.ts.map +1 -0
- package/dist/dts/util/template-helpers.d.ts +2 -1
- package/dist/dts/util/template-helpers.d.ts.map +1 -1
- package/dist/esm/components/accordion-menu/accordion-menu.js +1 -1
- package/dist/esm/components/accordion-menu/accordion-menu.js.map +1 -1
- package/dist/esm/components/accordion-menu/accordion-menu.styles.js +1 -1
- package/dist/esm/components/accordion-menu/accordion-menu.template.js.map +1 -1
- package/dist/esm/components/accordion-menu-panel/accordion-menu-panel.js +3 -2
- package/dist/esm/components/accordion-menu-panel/accordion-menu-panel.js.map +1 -1
- package/dist/esm/components/accordion-menu-panel/accordion-menu-panel.styles.js +3 -2
- package/dist/esm/components/accordion-menu-panel/accordion-menu-panel.styles.js.map +1 -1
- package/dist/esm/components/accordion-menu-panel/accordion-menu-panel.template.js.map +1 -1
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/card/card.js.map +1 -1
- package/dist/esm/components/card/card.styles.js +1 -1
- package/dist/esm/components/card/card.template.js.map +1 -1
- package/dist/esm/components/card-footer/card-footer.styles.js +1 -1
- package/dist/esm/components/card-footer/card-footer.template.js.map +1 -1
- package/dist/esm/components/card-header/card-header.styles.js +1 -1
- package/dist/esm/components/card-header/card-header.template.js.map +1 -1
- package/dist/esm/components/card-preview/card-preview.styles.js +1 -1
- package/dist/esm/components/card-preview/card-preview.template.js.map +1 -1
- package/dist/esm/components/carousel/carousel.js +1 -1
- package/dist/esm/components/carousel/carousel.js.map +1 -1
- package/dist/esm/components/carousel/carousel.styles.js +1 -1
- package/dist/esm/components/carousel/carousel.template.js.map +1 -1
- package/dist/esm/components/component-register.js +67 -0
- package/dist/esm/components/component-register.js.map +1 -0
- package/dist/esm/components/compound-button/compound-button.js.map +1 -1
- package/dist/esm/components/compound-button/compound-button.options.js +1 -1
- package/dist/esm/components/counter-badge/counter-badge.definition.js.map +1 -1
- package/dist/esm/components/counter-badge/counter-badge.options.js +32 -0
- package/dist/esm/components/counter-badge/counter-badge.options.js.map +1 -0
- package/dist/esm/components/counter-badge/define.js +2 -2
- package/dist/esm/components/counter-badge/define.js.map +1 -1
- package/dist/esm/components/counter-badge/index.js +3 -3
- package/dist/esm/components/counter-badge/index.js.map +1 -1
- package/dist/esm/components/field/field.js +68 -1
- package/dist/esm/components/field/field.js.map +1 -1
- package/dist/esm/components/filter-pill/filter-pill.js +1 -1
- package/dist/esm/components/filter-pill/filter-pill.js.map +1 -1
- package/dist/esm/components/filter-pill/filter-pill.options.js +1 -1
- package/dist/esm/components/filter-pill/filter-pill.styles.js +5 -3
- package/dist/esm/components/filter-pill/filter-pill.styles.js.map +1 -1
- package/dist/esm/components/filter-pill/filter-pill.template.js.map +1 -1
- package/dist/esm/components/listbox/listbox.js +1 -1
- package/dist/esm/components/listbox/listbox.js.map +1 -1
- package/dist/esm/components/loading-button/loading-button.js.map +1 -1
- package/dist/esm/components/loading-button/loading-button.template.js +3 -5
- package/dist/esm/components/loading-button/loading-button.template.js.map +1 -1
- package/dist/esm/components/menu/menu.js +159 -230
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/menu/menu.options.js +1 -1
- package/dist/esm/components/menu/menu.options.js.map +1 -1
- package/dist/esm/components/menu/menu.positioning.js +98 -201
- package/dist/esm/components/menu/menu.positioning.js.map +1 -1
- package/dist/esm/components/menu/menu.styles.js +2 -2
- package/dist/esm/components/menu/menu.styles.js.map +1 -1
- package/dist/esm/components/menu/menu.template.js.map +1 -1
- package/dist/esm/components/menu-item/menu-item.js +4 -4
- package/dist/esm/components/menu-item/menu-item.js.map +1 -1
- package/dist/esm/components/menu-item/menu-item.styles.js +4 -3
- package/dist/esm/components/menu-item/menu-item.styles.js.map +1 -1
- package/dist/esm/components/menu-item/menu-item.template.js +1 -0
- package/dist/esm/components/menu-item/menu-item.template.js.map +1 -1
- package/dist/esm/components/menu-list/menu-list.js +1 -1
- package/dist/esm/components/menu-list/menu-list.js.map +1 -1
- package/dist/esm/components/menu-list/menu-list.styles.js +1 -1
- package/dist/esm/components/multi-view/multi-view.styles.js +1 -1
- package/dist/esm/components/multi-view/multi-view.template.js +1 -0
- package/dist/esm/components/multi-view/multi-view.template.js.map +1 -1
- package/dist/esm/components/multi-view-controller/multi-view-controller.styles.js +3 -2
- package/dist/esm/components/multi-view-controller/multi-view-controller.styles.js.map +1 -1
- package/dist/esm/components/multi-view-controller/multi-view-controller.template.js.map +1 -1
- package/dist/esm/components/multi-view-group/multi-view-group.js +1 -0
- package/dist/esm/components/multi-view-group/multi-view-group.js.map +1 -1
- package/dist/esm/components/multi-view-group/multi-view-group.styles.js +1 -1
- package/dist/esm/components/multi-view-group/multi-view-group.template.js.map +1 -1
- package/dist/esm/components/option-group/option-group.js +1 -1
- package/dist/esm/components/option-group/option-group.js.map +1 -1
- package/dist/esm/components/option-group/option-group.template.js.map +1 -1
- package/dist/esm/components/popover/define.js +2 -2
- package/dist/esm/components/popover/define.js.map +1 -1
- package/dist/esm/components/popover/index.js +1 -1
- package/dist/esm/components/popover/index.js.map +1 -1
- package/dist/esm/components/popover/popover.definition.js.map +1 -1
- package/dist/esm/components/popover/popover.js +88 -127
- package/dist/esm/components/popover/popover.js.map +1 -1
- package/dist/esm/components/popover/popover.options.js +13 -10
- package/dist/esm/components/popover/popover.options.js.map +1 -1
- package/dist/esm/components/popover/popover.positioning.js +314 -0
- package/dist/esm/components/popover/popover.positioning.js.map +1 -0
- package/dist/esm/components/popover/popover.styles.js +26 -4
- package/dist/esm/components/popover/popover.styles.js.map +1 -1
- package/dist/esm/components/popover/popover.template.js +1 -2
- package/dist/esm/components/popover/popover.template.js.map +1 -1
- package/dist/esm/components/search-box/index.js +1 -1
- package/dist/esm/components/search-box/index.js.map +1 -1
- package/dist/esm/components/search-box/search-box.js +1 -1
- package/dist/esm/components/search-box/search-box.js.map +1 -1
- package/dist/esm/components/search-box/search-box.options.js +8 -2
- package/dist/esm/components/search-box/search-box.options.js.map +1 -1
- package/dist/esm/components/search-box/search-box.styles.js +3 -2
- package/dist/esm/components/search-box/search-box.styles.js.map +1 -1
- package/dist/esm/components/search-box/search-box.template.js.map +1 -1
- package/dist/esm/components/simple-table/simple-table.styles.js +2 -1
- package/dist/esm/components/svg-icon/scripts/sprite-builder.js.map +1 -1
- package/dist/esm/components/svg-icon/svg-icon.js.map +1 -1
- package/dist/esm/components/svg-icon/svg-icon.styles.js +3 -2
- package/dist/esm/components/svg-icon/svg-icon.styles.js.map +1 -1
- package/dist/esm/components/svg-icon/svg-icon.template.js +1 -0
- package/dist/esm/components/svg-icon/svg-icon.template.js.map +1 -1
- package/dist/esm/components/table/index.js +5 -5
- package/dist/esm/components/table/index.js.map +1 -1
- package/dist/esm/components/table/table.js +1 -1
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/table/table.options.js +2 -2
- package/dist/esm/components/table/table.options.js.map +1 -1
- package/dist/esm/components/table/table.styles.js +3 -2
- package/dist/esm/components/table/table.styles.js.map +1 -1
- package/dist/esm/components/table/table.template.js +3 -3
- package/dist/esm/components/table/table.template.js.map +1 -1
- package/dist/esm/components/table-cell/index.js +5 -5
- package/dist/esm/components/table-cell/index.js.map +1 -1
- package/dist/esm/components/table-cell/table-cell.options.js +2 -2
- package/dist/esm/components/table-cell/table-cell.options.js.map +1 -1
- package/dist/esm/components/table-cell/table-cell.styles.js +2 -2
- package/dist/esm/components/table-cell/table-cell.styles.js.map +1 -1
- package/dist/esm/components/table-cell/table-cell.template.js.map +1 -1
- package/dist/esm/components/tag/tag.js.map +1 -1
- package/dist/esm/components/tag/tag.styles.js +3 -2
- package/dist/esm/components/tag/tag.styles.js.map +1 -1
- package/dist/esm/components/tag/tag.template.js.map +1 -1
- package/dist/esm/components/teaching-bubble/index.js +2 -0
- package/dist/esm/components/teaching-bubble/index.js.map +1 -1
- package/dist/esm/components/teaching-bubble/teaching-bubble.js +7 -22
- package/dist/esm/components/teaching-bubble/teaching-bubble.js.map +1 -1
- package/dist/esm/components/teaching-bubble/teaching-bubble.styles.js +3 -2
- package/dist/esm/components/teaching-bubble/teaching-bubble.styles.js.map +1 -1
- package/dist/esm/components/teaching-bubble/teaching-bubble.template.js +1 -0
- package/dist/esm/components/teaching-bubble/teaching-bubble.template.js.map +1 -1
- package/dist/esm/components/text/define.js +2 -2
- package/dist/esm/components/text/define.js.map +1 -1
- package/dist/esm/components/text/index.js +3 -3
- package/dist/esm/components/text/index.js.map +1 -1
- package/dist/esm/components/text/text.definition.js.map +1 -1
- package/dist/esm/components/text/text.js +3 -3
- package/dist/esm/components/text/text.options.js +16 -0
- package/dist/esm/components/text/text.options.js.map +1 -0
- package/dist/esm/components/text-input/index.js +1 -1
- package/dist/esm/components/text-input/index.js.map +1 -1
- package/dist/esm/components/text-input/text-input.base.js +3 -3
- package/dist/esm/components/text-input/text-input.base.js.map +1 -1
- package/dist/esm/components/text-input/text-input.js +1 -0
- package/dist/esm/components/text-input/text-input.js.map +1 -1
- package/dist/esm/components/text-input/text-input.styles.js +3 -2
- package/dist/esm/components/text-input/text-input.styles.js.map +1 -1
- package/dist/esm/components/text-input/text-input.template.js +2 -3
- package/dist/esm/components/text-input/text-input.template.js.map +1 -1
- package/dist/esm/components/textarea/index.js +4 -3
- package/dist/esm/components/textarea/index.js.map +1 -1
- package/dist/esm/components/textarea/textarea.options.js +22 -0
- package/dist/esm/components/textarea/textarea.options.js.map +1 -0
- package/dist/esm/components/tooltip/tooltip.js +82 -1
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/components/tooltip/tooltip.template.js +16 -0
- package/dist/esm/components/tooltip/tooltip.template.js.map +1 -0
- package/dist/esm/components/tree/tree.js +38 -1
- package/dist/esm/components/tree/tree.js.map +1 -1
- package/dist/esm/components/tree-item/index.js +2 -1
- package/dist/esm/components/tree-item/index.js.map +1 -1
- package/dist/esm/components/tree-item/tree-item.definition.js +4 -3
- package/dist/esm/components/tree-item/tree-item.definition.js.map +1 -1
- package/dist/esm/components/tree-item/tree-item.styles.js +9 -0
- package/dist/esm/components/tree-item/tree-item.styles.js.map +1 -0
- package/dist/esm/components/tree-item/tree-item.template.js +6 -0
- package/dist/esm/components/tree-item/tree-item.template.js.map +1 -0
- package/dist/esm/components/wizard/index.js.map +1 -1
- package/dist/esm/components/wizard/wizard.js +5 -3
- package/dist/esm/components/wizard/wizard.js.map +1 -1
- package/dist/esm/components/wizard/wizard.styles.js +1 -1
- package/dist/esm/components/wizard/wizard.template.js +2 -1
- package/dist/esm/components/wizard/wizard.template.js.map +1 -1
- package/dist/esm/components/wizard-panel/wizard-panel.styles.js +1 -1
- package/dist/esm/components/wizard-panel/wizard-panel.template.js +1 -0
- package/dist/esm/components/wizard-panel/wizard-panel.template.js.map +1 -1
- package/dist/esm/components/wizard-step/wizard-step.js +1 -1
- package/dist/esm/components/wizard-step/wizard-step.js.map +1 -1
- package/dist/esm/components/wizard-step/wizard-step.styles.js +3 -2
- package/dist/esm/components/wizard-step/wizard-step.styles.js.map +1 -1
- package/dist/esm/components/wizard-step/wizard-step.template.js +1 -0
- package/dist/esm/components/wizard-step/wizard-step.template.js.map +1 -1
- package/dist/esm/components/wizard-step/wizard-step.unit.component.js +1 -0
- package/dist/esm/components/wizard-step/wizard-step.unit.component.js.map +1 -1
- package/dist/esm/index.js +27 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/util/accessibility-utilities.js +40 -0
- package/dist/esm/util/accessibility-utilities.js.map +1 -0
- package/dist/esm/util/attribute-utilities.js +12 -0
- package/dist/esm/util/attribute-utilities.js.map +1 -0
- package/dist/esm/util/debounce.js.map +1 -0
- package/dist/esm/util/debug.js +74 -0
- package/dist/esm/util/debug.js.map +1 -0
- package/dist/esm/util/direction.js +240 -8
- package/dist/esm/util/direction.js.map +1 -1
- package/dist/esm/util/dom.js +3 -0
- package/dist/esm/util/dom.js.map +1 -0
- package/dist/esm/util/element-internal-mocks.js +114 -0
- package/dist/esm/util/element-internal-mocks.js.map +1 -0
- package/dist/esm/util/focus-management.js +247 -0
- package/dist/esm/util/focus-management.js.map +1 -0
- package/dist/esm/util/hash-utilities.js +12 -0
- package/dist/esm/util/hash-utilities.js.map +1 -0
- package/dist/esm/util/index.js +13 -6
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/positioning/flexible-position-strategy.js +232 -0
- package/dist/esm/util/positioning/flexible-position-strategy.js.map +1 -0
- package/dist/esm/util/positioning/index.js +10 -0
- package/dist/esm/util/positioning/index.js.map +1 -0
- package/dist/esm/util/positioning/position-calculator.js +196 -0
- package/dist/esm/util/positioning/position-calculator.js.map +1 -0
- package/dist/esm/util/positioning/types.js +30 -0
- package/dist/esm/util/positioning/types.js.map +1 -0
- package/dist/esm/util/template-helpers.js.map +1 -1
- package/dist/index.d.ts +904 -270
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15978 -14624
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +137 -112
- package/dist/index.min.js.map +1 -1
- package/package.json +9 -11
- package/dist/component-utilities.js +0 -43
- package/dist/dts/components/popover/positioning.d.ts +0 -51
- package/dist/dts/components/popover/positioning.d.ts.map +0 -1
- package/dist/dts/util/positioning.d.ts +0 -129
- package/dist/dts/util/positioning.d.ts.map +0 -1
- package/dist/dts/utils/debounce.d.ts.map +0 -1
- package/dist/esm/component-utilities.js +0 -13
- package/dist/esm/components/popover/positioning.js +0 -189
- package/dist/esm/components/popover/positioning.js.map +0 -1
- package/dist/esm/util/positioning.js +0 -130
- package/dist/esm/util/positioning.js.map +0 -1
- package/dist/esm/utils/debounce.js.map +0 -1
- /package/dist/dts/{utils → util}/debounce.d.ts +0 -0
- /package/dist/esm/{utils → util}/debounce.js +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { attr, observable, FASTElement, Updates } from '@microsoft/fast-element';
|
|
2
2
|
import { keyEnter, keySpace, keyEscape } from '@microsoft/fast-web-utilities';
|
|
3
|
-
import { debounce } from '../../
|
|
3
|
+
import { debounce } from '../../util/debounce.js';
|
|
4
|
+
import '../menu-list/menu-list.js';
|
|
4
5
|
import { MenuPositions, MenuRepositionModes } from './menu.options.js';
|
|
5
6
|
import { MenuPositioning } from './menu.positioning.js';
|
|
6
7
|
|
|
@@ -15,6 +16,12 @@ var __decorate = globalThis && globalThis.__decorate || function (decorators, ta
|
|
|
15
16
|
* Menu
|
|
16
17
|
* @summary A Menu component that provides an interactive menu interface with support for various trigger and open behaviors.
|
|
17
18
|
*
|
|
19
|
+
* When `reposition-mode="auto"` is set the component creates a {@link MenuPositioning} manager backed by
|
|
20
|
+
* `FlexiblePositionStrategy`. On every open/resize/scroll cycle the strategy measures available space, picks
|
|
21
|
+
* the best-fitting position from the preferred position plus its fallbacks, and resizes the menu if there is
|
|
22
|
+
* not enough available space. Supply `overflowBoundary` to scope collision detection to a specific scrolling
|
|
23
|
+
* container instead of the viewport.
|
|
24
|
+
*
|
|
18
25
|
* @example
|
|
19
26
|
* ```html
|
|
20
27
|
* <fabric-menu open-on-hover="true" open-on-context="true" close-on-scroll="true" persist-on-item-click="true">
|
|
@@ -32,8 +39,10 @@ var __decorate = globalThis && globalThis.__decorate || function (decorators, ta
|
|
|
32
39
|
* @attr {boolean | undefined} close-on-scroll - Determines if the menu should close on scroll.
|
|
33
40
|
* @attr {boolean | undefined} persist-on-item-click - Determines if the menu open state should persist on click of a menu item.
|
|
34
41
|
* @attr {boolean | undefined} split - Determines if the menu is in split state (for split button pattern).
|
|
35
|
-
* @attr {MenuPosition | undefined} menu-position - Determines whether the menu list is above or below the trigger.
|
|
36
|
-
* @attr {MenuRepositionMode | undefined} reposition-mode -
|
|
42
|
+
* @attr {MenuPosition | undefined} menu-position - Determines whether the menu list is above or below the trigger. Defaults to `"below"`.
|
|
43
|
+
* @attr {MenuRepositionMode | undefined} reposition-mode - Controls JS-based repositioning. `"auto"` enables
|
|
44
|
+
* `FlexiblePositionStrategy` which detects collisions and flips the menu to the best-fitting position on
|
|
45
|
+
* every resize/scroll cycle. `"none"` (default) disables JS repositioning and relies on CSS anchored positioning.
|
|
37
46
|
*
|
|
38
47
|
* @prop {boolean | undefined} openOnHover - Determines if the menu should open on hover.
|
|
39
48
|
* @prop {boolean | undefined} openOnContext - Determines if the menu should open on right click.
|
|
@@ -42,9 +51,12 @@ var __decorate = globalThis && globalThis.__decorate || function (decorators, ta
|
|
|
42
51
|
* @prop {boolean | undefined} split - Determines if the menu is in split state.
|
|
43
52
|
* @prop {MenuList[]} slottedMenuList - Holds the slotted menu list.
|
|
44
53
|
* @prop {HTMLElement[]} slottedTriggers - Holds the slotted triggers.
|
|
45
|
-
* @prop {MenuPosition | undefined} menuPosition -
|
|
46
|
-
*
|
|
47
|
-
* @prop {
|
|
54
|
+
* @prop {MenuPosition | undefined} menuPosition - Reflects the active resolved position (`"above"` or `"below"`). May
|
|
55
|
+
* differ from the authored `menu-position` attribute when `reposition-mode="auto"` has flipped the menu.
|
|
56
|
+
* @prop {MenuRepositionMode | undefined} repositionMode - The active repositioning mode (`"auto"` | `"none"`).
|
|
57
|
+
* @prop {HTMLElement | undefined} overflowBoundary - An optional scrolling container used by the
|
|
58
|
+
* `FlexiblePositionStrategy` as the collision boundary instead of the viewport. Only relevant when
|
|
59
|
+
* `reposition-mode="auto"`.
|
|
48
60
|
*
|
|
49
61
|
* @slot primary-action - Slot for the primary action element (used when split is true).
|
|
50
62
|
* @slot trigger - Slot for the trigger element.
|
|
@@ -72,10 +84,10 @@ class Menu extends FASTElement {
|
|
|
72
84
|
constructor() {
|
|
73
85
|
super(...arguments);
|
|
74
86
|
/**
|
|
75
|
-
* The
|
|
87
|
+
* The positioning instance for the menu.
|
|
76
88
|
* @private
|
|
77
89
|
*/
|
|
78
|
-
this.
|
|
90
|
+
this.positioning = null;
|
|
79
91
|
/**
|
|
80
92
|
* Determines if the menu should open on hover.
|
|
81
93
|
* @public
|
|
@@ -108,8 +120,15 @@ class Menu extends FASTElement {
|
|
|
108
120
|
this.menuPosition = MenuPositions.below;
|
|
109
121
|
/**
|
|
110
122
|
* The mode for repositioning the menu when it overflows the boundary.
|
|
123
|
+
*
|
|
124
|
+
* - `"none"` (default) — no JS-based repositioning; positioning is handled entirely by CSS anchored positioning.
|
|
125
|
+
* - `"auto"` — enables `FlexiblePositionStrategy`. On every open, resize, and scroll event the strategy
|
|
126
|
+
* measures available space, picks the best-fitting position from the preferred position plus its fallbacks,
|
|
127
|
+
* and re-applies layout. When the chosen position is `"above"`, bottom-anchored positioning keeps the
|
|
128
|
+
* menu's bottom edge pinned to the anchor's top edge so that height constraints shrink it upward.
|
|
129
|
+
*
|
|
111
130
|
* @public
|
|
112
|
-
* @default "
|
|
131
|
+
* @default "none"
|
|
113
132
|
*/
|
|
114
133
|
this.repositionMode = MenuRepositionModes.none;
|
|
115
134
|
/**
|
|
@@ -128,111 +147,75 @@ class Menu extends FASTElement {
|
|
|
128
147
|
*/
|
|
129
148
|
this._open = false;
|
|
130
149
|
/**
|
|
131
|
-
*
|
|
132
|
-
* Note: When a custom overflowBoundary is set, we use direct rect calculations
|
|
133
|
-
* instead because popovers render in the top layer and IntersectionObserver
|
|
134
|
-
* with a custom root won't work correctly.
|
|
135
|
-
* @private
|
|
136
|
-
*/
|
|
137
|
-
this.createOverflowHandler = () => {
|
|
138
|
-
// Only use IntersectionObserver when no custom boundary is set
|
|
139
|
-
// (uses document/viewport as root)
|
|
140
|
-
if (!this.overflowBoundary) {
|
|
141
|
-
const options = {
|
|
142
|
-
root: document
|
|
143
|
-
};
|
|
144
|
-
this.intersectionObserver = new IntersectionObserver(this.handleOverflow, options);
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
/**
|
|
148
|
-
* Checks overflow against custom boundary using direct rect calculations.
|
|
149
|
-
* Delegates to MenuPositioning for the actual calculation.
|
|
150
|
+
* Internal open handler used by multiple entry points.
|
|
150
151
|
* @private
|
|
151
152
|
*/
|
|
152
|
-
this.
|
|
153
|
-
if (
|
|
153
|
+
this.openMenuInternal = e => {
|
|
154
|
+
if (this._open) {
|
|
154
155
|
return;
|
|
155
156
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
if (hasOverflow) {
|
|
161
|
-
if (suggestedPosition) {
|
|
162
|
-
this.openPositions = [suggestedPosition];
|
|
163
|
-
this.repositionMenu(this.openPositions);
|
|
164
|
-
}
|
|
165
|
-
// Apply height constraint if still needed
|
|
166
|
-
this.applyHeightConstraint();
|
|
167
|
-
} else {
|
|
168
|
-
// Menu fits, release any previous constraints
|
|
169
|
-
if (this.openPositions.length > 0) {
|
|
170
|
-
this.releasePositions();
|
|
171
|
-
this.clearHeightConstraint();
|
|
172
|
-
}
|
|
157
|
+
if (this.repositionMode == MenuRepositionModes.auto) {
|
|
158
|
+
this.addRepositioningHandlers();
|
|
159
|
+
this.createPositioningManager();
|
|
160
|
+
this.scheduleReposition();
|
|
173
161
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (this.
|
|
181
|
-
|
|
162
|
+
this.setMenuOpenState(true);
|
|
163
|
+
this.focusMenuList();
|
|
164
|
+
if (e && this.openOnContext) {
|
|
165
|
+
e.preventDefault();
|
|
166
|
+
}
|
|
167
|
+
document.addEventListener("click", this.documentClickHandler);
|
|
168
|
+
if (this.closeOnScroll) {
|
|
169
|
+
document.addEventListener("scroll", this.closeMenu);
|
|
182
170
|
}
|
|
183
|
-
entries.forEach(entry => {
|
|
184
|
-
if (entry.intersectionRatio < 1 && this.positioning) {
|
|
185
|
-
// Try to reposition (flip) first
|
|
186
|
-
this.openPositions = this.positioning.findOpenPositionsFromCollision(entry);
|
|
187
|
-
if (this.openPositions.length > 0) {
|
|
188
|
-
this.repositionMenu(this.openPositions);
|
|
189
|
-
}
|
|
190
|
-
// After repositioning, constrain height if still needed
|
|
191
|
-
this.applyHeightConstraint();
|
|
192
|
-
} else if (this.openPositions.length > 0) {
|
|
193
|
-
this.releasePositions();
|
|
194
|
-
this.clearHeightConstraint();
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
171
|
};
|
|
198
172
|
/**
|
|
199
|
-
*
|
|
173
|
+
* Internal close handler used by multiple entry points.
|
|
200
174
|
* @private
|
|
201
175
|
*/
|
|
202
|
-
this.
|
|
203
|
-
this.
|
|
204
|
-
|
|
205
|
-
|
|
176
|
+
this.closeMenuInternal = () => {
|
|
177
|
+
if (!this._open) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
this.setMenuOpenState(false);
|
|
181
|
+
this.removeRepositioningListeners();
|
|
182
|
+
document.removeEventListener("click", this.documentClickHandler);
|
|
183
|
+
if (this.closeOnScroll) {
|
|
184
|
+
document.removeEventListener("scroll", this.closeMenu);
|
|
206
185
|
}
|
|
207
186
|
};
|
|
208
187
|
/**
|
|
209
|
-
*
|
|
188
|
+
* Delegates resize + flip logic to the positioning strategy.
|
|
210
189
|
* @private
|
|
211
190
|
*/
|
|
212
|
-
this.
|
|
213
|
-
|
|
214
|
-
|
|
191
|
+
this.repositionMenu = () => {
|
|
192
|
+
var _a;
|
|
193
|
+
if (!this.positioning || !this._menuList) {
|
|
194
|
+
return;
|
|
215
195
|
}
|
|
196
|
+
this.positioning.position = (_a = this.menuPosition) !== null && _a !== void 0 ? _a : MenuPositions.below;
|
|
197
|
+
this.positioning.reposition();
|
|
216
198
|
};
|
|
217
199
|
/**
|
|
218
|
-
* Debounced handler for window changes.
|
|
200
|
+
* Debounced handler for window resize/scroll changes.
|
|
219
201
|
* @private
|
|
220
202
|
*/
|
|
221
203
|
this.handleWindowChanges = debounce(() => {
|
|
222
|
-
this.
|
|
204
|
+
if (this._open) {
|
|
205
|
+
this.scheduleReposition();
|
|
206
|
+
}
|
|
223
207
|
}, 50);
|
|
224
208
|
/**
|
|
225
209
|
* Toggles the open state of the menu.
|
|
226
210
|
* @public
|
|
227
211
|
*/
|
|
228
212
|
this.toggleMenu = () => {
|
|
229
|
-
var _a;
|
|
230
213
|
this.setComponent();
|
|
231
|
-
(_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(!this._open);
|
|
232
214
|
if (this._open) {
|
|
233
|
-
this.
|
|
234
|
-
} else {
|
|
215
|
+
this.closeMenuInternal();
|
|
235
216
|
this.focusTrigger();
|
|
217
|
+
} else {
|
|
218
|
+
this.openMenuInternal();
|
|
236
219
|
}
|
|
237
220
|
};
|
|
238
221
|
/**
|
|
@@ -240,57 +223,14 @@ class Menu extends FASTElement {
|
|
|
240
223
|
* @public
|
|
241
224
|
*/
|
|
242
225
|
this.closeMenu = () => {
|
|
243
|
-
|
|
244
|
-
if (this._open) {
|
|
245
|
-
(_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(false);
|
|
246
|
-
}
|
|
247
|
-
if (this.closeOnScroll) {
|
|
248
|
-
document.removeEventListener("scroll", this.closeMenu);
|
|
249
|
-
}
|
|
226
|
+
this.closeMenuInternal();
|
|
250
227
|
};
|
|
251
228
|
/**
|
|
252
229
|
* Opens the menu.
|
|
253
230
|
* @public
|
|
254
231
|
*/
|
|
255
232
|
this.openMenu = e => {
|
|
256
|
-
|
|
257
|
-
if (!this._open) {
|
|
258
|
-
(_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(true);
|
|
259
|
-
}
|
|
260
|
-
if (e && this.openOnContext) {
|
|
261
|
-
e.preventDefault();
|
|
262
|
-
}
|
|
263
|
-
if (this.closeOnScroll) {
|
|
264
|
-
document.addEventListener("scroll", this.closeMenu);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
/**
|
|
268
|
-
* Handles the 'toggle' event on the popover.
|
|
269
|
-
* @public
|
|
270
|
-
* @param e - the event
|
|
271
|
-
* @returns void
|
|
272
|
-
*/
|
|
273
|
-
this.toggleHandler = e => {
|
|
274
|
-
var _a;
|
|
275
|
-
if ("newState" in e) {
|
|
276
|
-
const event = e;
|
|
277
|
-
const newState = event.newState === "open" ? true : false;
|
|
278
|
-
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-expanded", `${newState}`);
|
|
279
|
-
this._open = newState;
|
|
280
|
-
if (newState) {
|
|
281
|
-
// Menu is opening - add repositioning handlers
|
|
282
|
-
if (!this.originalMenuPosition) {
|
|
283
|
-
this.originalMenuPosition = this.menuPosition;
|
|
284
|
-
}
|
|
285
|
-
this.addRepositioningHandlers();
|
|
286
|
-
this.createPositioningManager();
|
|
287
|
-
this.observeMenuOverflow();
|
|
288
|
-
this.focusMenuList();
|
|
289
|
-
} else {
|
|
290
|
-
// Menu is closing - remove repositioning handlers
|
|
291
|
-
this.removeRepositioningListeners();
|
|
292
|
-
}
|
|
293
|
-
}
|
|
233
|
+
this.openMenuInternal(e);
|
|
294
234
|
};
|
|
295
235
|
/**
|
|
296
236
|
* Handles keyboard interaction for the trigger. Toggles the menu when the Space or Enter key is pressed. If the menu
|
|
@@ -314,84 +254,75 @@ class Menu extends FASTElement {
|
|
|
314
254
|
}
|
|
315
255
|
};
|
|
316
256
|
/**
|
|
317
|
-
* Handles document click events to close
|
|
257
|
+
* Handles document click events to close the menu when clicking outside (light dismiss).
|
|
318
258
|
* @internal
|
|
319
259
|
* @param e - The event triggered on document click.
|
|
320
260
|
*/
|
|
321
261
|
this.documentClickHandler = e => {
|
|
262
|
+
if (!this._open) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
322
265
|
if (!e.composedPath().some(el => el === this._trigger || el === this._menuList)) {
|
|
323
266
|
this.closeMenu();
|
|
324
267
|
}
|
|
325
268
|
};
|
|
326
269
|
}
|
|
327
270
|
/**
|
|
328
|
-
*
|
|
329
|
-
*
|
|
271
|
+
* Handles changes to the menuPosition attribute.
|
|
272
|
+
* Updates the positioning strategy and triggers a reposition if
|
|
273
|
+
* the menu is currently open, without mutating the public attribute.
|
|
274
|
+
* @public
|
|
330
275
|
*/
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
276
|
+
menuPositionChanged() {
|
|
277
|
+
var _a;
|
|
278
|
+
if (this.positioning) {
|
|
279
|
+
this.positioning.position = (_a = this.menuPosition) !== null && _a !== void 0 ? _a : MenuPositions.below;
|
|
334
280
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
maxHeight
|
|
338
|
-
} = this.positioning.calculateConstrainedHeight();
|
|
339
|
-
if (needsConstraint && maxHeight !== null) {
|
|
340
|
-
this.style.setProperty("--menu-max-height", `${maxHeight}px`);
|
|
341
|
-
this._menuList.style.overflow = "auto";
|
|
342
|
-
} else {
|
|
343
|
-
this.clearHeightConstraint();
|
|
281
|
+
if (this._open) {
|
|
282
|
+
this.scheduleReposition();
|
|
344
283
|
}
|
|
345
284
|
}
|
|
346
285
|
/**
|
|
347
|
-
*
|
|
348
|
-
* @
|
|
286
|
+
* Handles menu list slot changes.
|
|
287
|
+
* @internal
|
|
349
288
|
*/
|
|
350
|
-
|
|
351
|
-
this.
|
|
352
|
-
if (this.
|
|
353
|
-
this.
|
|
289
|
+
slottedMenuListChanged() {
|
|
290
|
+
this.setComponent();
|
|
291
|
+
if (this._open) {
|
|
292
|
+
this.scheduleReposition();
|
|
354
293
|
}
|
|
355
294
|
}
|
|
356
295
|
/**
|
|
357
|
-
*
|
|
358
|
-
* @
|
|
296
|
+
* Handles trigger slot changes.
|
|
297
|
+
* @internal
|
|
359
298
|
*/
|
|
360
|
-
|
|
361
|
-
this.
|
|
362
|
-
if (this.
|
|
363
|
-
|
|
364
|
-
const position = MenuPositions[key];
|
|
365
|
-
const positionOpen = this.positioning.checkPosition(position);
|
|
366
|
-
if (positionOpen) {
|
|
367
|
-
this.openPositions.push(position);
|
|
368
|
-
if (position === this.originalMenuPosition) {
|
|
369
|
-
this.menuPosition = this.originalMenuPosition;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
299
|
+
slottedTriggersChanged() {
|
|
300
|
+
this.setComponent();
|
|
301
|
+
if (this._open) {
|
|
302
|
+
this.scheduleReposition();
|
|
373
303
|
}
|
|
374
304
|
}
|
|
375
305
|
/**
|
|
376
|
-
*
|
|
306
|
+
* Updates menu list open state and ARIA expanded.
|
|
377
307
|
* @private
|
|
378
308
|
*/
|
|
379
|
-
|
|
380
|
-
var _a
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
this.checkOverflowWithBoundary();
|
|
386
|
-
});
|
|
387
|
-
} else {
|
|
388
|
-
// Use IntersectionObserver for viewport
|
|
389
|
-
(_a = this.intersectionObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
390
|
-
if (this._menuList) {
|
|
391
|
-
(_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.observe(this._menuList);
|
|
392
|
-
}
|
|
309
|
+
setMenuOpenState(isOpen) {
|
|
310
|
+
var _a;
|
|
311
|
+
this._open = isOpen;
|
|
312
|
+
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-expanded", `${isOpen}`);
|
|
313
|
+
if (this._menuList) {
|
|
314
|
+
this._menuList.classList.toggle("menu-open", isOpen);
|
|
393
315
|
}
|
|
394
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Schedules a reposition on the next microtask.
|
|
319
|
+
* @private
|
|
320
|
+
*/
|
|
321
|
+
scheduleReposition() {
|
|
322
|
+
Updates.enqueue(() => {
|
|
323
|
+
this.repositionMenu();
|
|
324
|
+
});
|
|
325
|
+
}
|
|
395
326
|
/**
|
|
396
327
|
* Adds window event listeners.
|
|
397
328
|
* @private
|
|
@@ -423,7 +354,6 @@ class Menu extends FASTElement {
|
|
|
423
354
|
*/
|
|
424
355
|
addRepositioningHandlers() {
|
|
425
356
|
if (this.repositionMode !== MenuRepositionModes.none) {
|
|
426
|
-
this.createOverflowHandler();
|
|
427
357
|
this.addWindowEventListeners();
|
|
428
358
|
this.addOverflowBoundaryEventListeners();
|
|
429
359
|
}
|
|
@@ -434,11 +364,11 @@ class Menu extends FASTElement {
|
|
|
434
364
|
*/
|
|
435
365
|
createPositioningManager() {
|
|
436
366
|
if (this._menuList && this._trigger && this.repositionMode !== MenuRepositionModes.none) {
|
|
367
|
+
this.positioning = null;
|
|
437
368
|
this.positioning = new MenuPositioning({
|
|
438
369
|
menuReference: this._menuList,
|
|
439
370
|
anchorReference: this._trigger,
|
|
440
|
-
overflowBoundaryReference: this.overflowBoundary
|
|
441
|
-
repositionMode: this.repositionMode
|
|
371
|
+
overflowBoundaryReference: this.overflowBoundary
|
|
442
372
|
});
|
|
443
373
|
}
|
|
444
374
|
}
|
|
@@ -447,11 +377,8 @@ class Menu extends FASTElement {
|
|
|
447
377
|
* @private
|
|
448
378
|
*/
|
|
449
379
|
removeRepositioningListeners() {
|
|
450
|
-
var _a;
|
|
451
380
|
if (this._menuList) {
|
|
452
381
|
this.removeWindowEventListeners();
|
|
453
|
-
(_a = this.intersectionObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this._menuList);
|
|
454
|
-
this.clearHeightConstraint();
|
|
455
382
|
}
|
|
456
383
|
}
|
|
457
384
|
/**
|
|
@@ -462,7 +389,6 @@ class Menu extends FASTElement {
|
|
|
462
389
|
super.connectedCallback();
|
|
463
390
|
Updates.enqueue(() => {
|
|
464
391
|
this.setComponent();
|
|
465
|
-
this.setMenuPosition();
|
|
466
392
|
});
|
|
467
393
|
}
|
|
468
394
|
/**
|
|
@@ -473,6 +399,8 @@ class Menu extends FASTElement {
|
|
|
473
399
|
super.disconnectedCallback();
|
|
474
400
|
this.removeListeners();
|
|
475
401
|
this.removeRepositioningListeners();
|
|
402
|
+
document.removeEventListener("click", this.documentClickHandler);
|
|
403
|
+
document.removeEventListener("scroll", this.closeMenu);
|
|
476
404
|
}
|
|
477
405
|
/**
|
|
478
406
|
* Sets the component.
|
|
@@ -484,19 +412,10 @@ class Menu extends FASTElement {
|
|
|
484
412
|
this._menuList = this.slottedMenuList[0];
|
|
485
413
|
this._trigger.setAttribute("aria-haspopup", "true");
|
|
486
414
|
this._trigger.setAttribute("aria-expanded", `${this._open}`);
|
|
487
|
-
this._menuList.setAttribute("
|
|
415
|
+
this._menuList.setAttribute("data-menu-list", "");
|
|
488
416
|
this.addListeners();
|
|
489
417
|
}
|
|
490
418
|
}
|
|
491
|
-
/**
|
|
492
|
-
* Sets the menu position.
|
|
493
|
-
* @public
|
|
494
|
-
*/
|
|
495
|
-
setMenuPosition() {
|
|
496
|
-
if (this.$fastController.isConnected) {
|
|
497
|
-
this.style.setProperty("--menu-position-area", this.menuPosition === MenuPositions.above ? "block-start span-inline-end" : "block-end span-inline-end");
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
419
|
/**
|
|
501
420
|
* Focuses on the menu list.
|
|
502
421
|
* @public
|
|
@@ -523,7 +442,7 @@ class Menu extends FASTElement {
|
|
|
523
442
|
* @param newValue - The new value of 'openOnHover'.
|
|
524
443
|
* @public
|
|
525
444
|
*/
|
|
526
|
-
openOnHoverChanged(
|
|
445
|
+
openOnHoverChanged(_oldValue, newValue) {
|
|
527
446
|
var _a, _b;
|
|
528
447
|
if (newValue) {
|
|
529
448
|
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.addEventListener("mouseover", this.openMenu);
|
|
@@ -538,7 +457,7 @@ class Menu extends FASTElement {
|
|
|
538
457
|
* @param oldValue - The previous value of 'persistOnItemClick'.
|
|
539
458
|
* @param newValue - The new value of 'persistOnItemClick'.
|
|
540
459
|
*/
|
|
541
|
-
persistOnItemClickChanged(
|
|
460
|
+
persistOnItemClickChanged(_oldValue, newValue) {
|
|
542
461
|
var _a, _b;
|
|
543
462
|
if (!newValue) {
|
|
544
463
|
(_a = this._menuList) === null || _a === void 0 ? void 0 : _a.addEventListener("change", this.closeMenu);
|
|
@@ -547,25 +466,40 @@ class Menu extends FASTElement {
|
|
|
547
466
|
}
|
|
548
467
|
}
|
|
549
468
|
/**
|
|
550
|
-
* Called whenever the '
|
|
469
|
+
* Called whenever the 'repositionMode' property changes.
|
|
551
470
|
*
|
|
552
|
-
* @param oldValue - The previous value of 'menuPosition'.
|
|
553
|
-
* @param newValue - The new value of 'menuPosition'.
|
|
554
471
|
* @public
|
|
472
|
+
* @param oldValue - The previous value of 'repositionMode'.
|
|
473
|
+
* @param newValue - The new value of 'repositionMode'.
|
|
555
474
|
*/
|
|
556
|
-
|
|
557
|
-
|
|
475
|
+
repositionModeChanged(_oldValue, newValue) {
|
|
476
|
+
if (newValue === MenuRepositionModes.none) {
|
|
477
|
+
this.positioning = null;
|
|
478
|
+
} else if (!this.positioning && this._open) {
|
|
479
|
+
this.createPositioningManager();
|
|
480
|
+
}
|
|
481
|
+
if (this._open) {
|
|
482
|
+
this.scheduleReposition();
|
|
483
|
+
}
|
|
558
484
|
}
|
|
559
485
|
/**
|
|
560
|
-
* Called whenever the '
|
|
486
|
+
* Called whenever the 'overflowBoundary' property changes.
|
|
561
487
|
*
|
|
562
488
|
* @public
|
|
563
|
-
* @param oldValue - The previous value of 'repositionMode'.
|
|
564
|
-
* @param newValue - The new value of 'repositionMode'.
|
|
565
489
|
*/
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
490
|
+
overflowBoundaryChanged(oldValue, newValue) {
|
|
491
|
+
var _a;
|
|
492
|
+
if (oldValue) {
|
|
493
|
+
oldValue.removeEventListener("scroll", this.handleWindowChanges);
|
|
494
|
+
}
|
|
495
|
+
if (this._open && this.repositionMode !== MenuRepositionModes.none) {
|
|
496
|
+
if (newValue) {
|
|
497
|
+
newValue.addEventListener("scroll", this.handleWindowChanges);
|
|
498
|
+
}
|
|
499
|
+
(_a = this.positioning) === null || _a === void 0 ? void 0 : _a.setOverflowBoundaryReference(newValue !== null && newValue !== void 0 ? newValue : null);
|
|
500
|
+
this.scheduleReposition();
|
|
501
|
+
} else if (this.positioning) {
|
|
502
|
+
this.positioning.setOverflowBoundaryReference(newValue !== null && newValue !== void 0 ? newValue : null);
|
|
569
503
|
}
|
|
570
504
|
}
|
|
571
505
|
/**
|
|
@@ -575,7 +509,7 @@ class Menu extends FASTElement {
|
|
|
575
509
|
* @param oldValue - The previous value of 'openOnContext'.
|
|
576
510
|
* @param newValue - The new value of 'openOnContext'.
|
|
577
511
|
*/
|
|
578
|
-
openOnContextChanged(
|
|
512
|
+
openOnContextChanged(_oldValue, newValue) {
|
|
579
513
|
var _a, _b;
|
|
580
514
|
if (newValue) {
|
|
581
515
|
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.addEventListener("contextmenu", this.openMenu);
|
|
@@ -590,7 +524,7 @@ class Menu extends FASTElement {
|
|
|
590
524
|
* @param oldValue - The previous value of 'closeOnScroll'.
|
|
591
525
|
* @param newValue - The new value of 'closeOnScroll'.
|
|
592
526
|
*/
|
|
593
|
-
closeOnScrollChanged(
|
|
527
|
+
closeOnScrollChanged(_oldValue, newValue) {
|
|
594
528
|
if (newValue) {
|
|
595
529
|
document.addEventListener("scroll", this.closeMenu);
|
|
596
530
|
} else {
|
|
@@ -603,19 +537,17 @@ class Menu extends FASTElement {
|
|
|
603
537
|
* @internal
|
|
604
538
|
*/
|
|
605
539
|
addListeners() {
|
|
606
|
-
var _a, _b, _c, _d, _e
|
|
607
|
-
(_a = this.
|
|
608
|
-
(_b = this._trigger) === null || _b === void 0 ? void 0 : _b.addEventListener("keydown", this.triggerKeydownHandler);
|
|
540
|
+
var _a, _b, _c, _d, _e;
|
|
541
|
+
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.addEventListener("keydown", this.triggerKeydownHandler);
|
|
609
542
|
if (!this.persistOnItemClick) {
|
|
610
|
-
(
|
|
543
|
+
(_b = this._menuList) === null || _b === void 0 ? void 0 : _b.addEventListener("change", this.closeMenu);
|
|
611
544
|
}
|
|
612
545
|
if (this.openOnHover) {
|
|
613
|
-
(
|
|
546
|
+
(_c = this._trigger) === null || _c === void 0 ? void 0 : _c.addEventListener("mouseover", this.openMenu);
|
|
614
547
|
} else if (this.openOnContext) {
|
|
615
|
-
(
|
|
616
|
-
document.addEventListener("click", this.documentClickHandler);
|
|
548
|
+
(_d = this._trigger) === null || _d === void 0 ? void 0 : _d.addEventListener("contextmenu", this.openMenu);
|
|
617
549
|
} else {
|
|
618
|
-
(
|
|
550
|
+
(_e = this._trigger) === null || _e === void 0 ? void 0 : _e.addEventListener("click", this.toggleMenu);
|
|
619
551
|
}
|
|
620
552
|
}
|
|
621
553
|
/**
|
|
@@ -624,20 +556,18 @@ class Menu extends FASTElement {
|
|
|
624
556
|
* @internal
|
|
625
557
|
*/
|
|
626
558
|
removeListeners() {
|
|
627
|
-
var _a, _b, _c, _d, _e
|
|
628
|
-
(_a = this.
|
|
629
|
-
(_b = this._trigger) === null || _b === void 0 ? void 0 : _b.removeEventListener("keydown", this.triggerKeydownHandler);
|
|
559
|
+
var _a, _b, _c, _d, _e;
|
|
560
|
+
(_a = this._trigger) === null || _a === void 0 ? void 0 : _a.removeEventListener("keydown", this.triggerKeydownHandler);
|
|
630
561
|
if (!this.persistOnItemClick) {
|
|
631
|
-
(
|
|
562
|
+
(_b = this._menuList) === null || _b === void 0 ? void 0 : _b.removeEventListener("change", this.closeMenu);
|
|
632
563
|
}
|
|
633
564
|
if (this.openOnHover) {
|
|
634
|
-
(
|
|
565
|
+
(_c = this._trigger) === null || _c === void 0 ? void 0 : _c.removeEventListener("mouseover", this.openMenu);
|
|
635
566
|
}
|
|
636
567
|
if (this.openOnContext) {
|
|
637
|
-
(
|
|
638
|
-
document.removeEventListener("click", this.documentClickHandler);
|
|
568
|
+
(_d = this._trigger) === null || _d === void 0 ? void 0 : _d.removeEventListener("contextmenu", this.openMenu);
|
|
639
569
|
} else {
|
|
640
|
-
(
|
|
570
|
+
(_e = this._trigger) === null || _e === void 0 ? void 0 : _e.removeEventListener("click", this.toggleMenu);
|
|
641
571
|
}
|
|
642
572
|
}
|
|
643
573
|
/**
|
|
@@ -647,7 +577,6 @@ class Menu extends FASTElement {
|
|
|
647
577
|
* @public
|
|
648
578
|
*/
|
|
649
579
|
menuKeydownHandler(e) {
|
|
650
|
-
var _a;
|
|
651
580
|
if (e.defaultPrevented) {
|
|
652
581
|
return;
|
|
653
582
|
}
|
|
@@ -656,7 +585,7 @@ class Menu extends FASTElement {
|
|
|
656
585
|
case keyEscape:
|
|
657
586
|
e.preventDefault();
|
|
658
587
|
if (this._open) {
|
|
659
|
-
|
|
588
|
+
this.closeMenuInternal();
|
|
660
589
|
this.focusTrigger();
|
|
661
590
|
}
|
|
662
591
|
break;
|