ng-primitives 0.115.2 → 0.117.0
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/context-menu/README.md +3 -0
- package/context-menu/index.d.ts +284 -0
- package/fesm2022/ng-primitives-context-menu.mjs +612 -0
- package/fesm2022/ng-primitives-context-menu.mjs.map +1 -0
- package/fesm2022/ng-primitives-menu.mjs +1 -1
- package/fesm2022/ng-primitives-portal.mjs +9 -1
- package/fesm2022/ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +56 -10
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +49 -32
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +36 -21
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/menu/index.d.ts +40 -1
- package/package.json +5 -1
- package/portal/index.d.ts +7 -0
- package/schematics/ng-generate/templates/context-menu/context-menu-item.__fileSuffix@dasherize__.ts.template +41 -0
- package/schematics/ng-generate/templates/context-menu/context-menu.__fileSuffix@dasherize__.ts.template +54 -0
- package/schematics/ng-generate/templates/toggle/toggle.__fileSuffix@dasherize__.ts.template +1 -1
- package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +1 -1
- package/state/index.d.ts +33 -2
- package/toggle/index.d.ts +23 -6
- package/toggle-group/index.d.ts +24 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-primitives-context-menu.mjs","sources":["../../../../packages/ng-primitives/context-menu/src/config/context-menu-config.ts","../../../../packages/ng-primitives/context-menu/src/context-menu/context-menu.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-item/context-menu-item.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-item-checkbox/context-menu-item-checkbox.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-item-indicator/context-menu-item-indicator.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-item-radio/context-menu-item-radio.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-item-radio-group/context-menu-item-radio-group.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-submenu-trigger/context-menu-submenu-trigger.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-trigger/context-menu-trigger-state.ts","../../../../packages/ng-primitives/context-menu/src/context-menu-trigger/context-menu-trigger.ts","../../../../packages/ng-primitives/context-menu/src/ng-primitives-context-menu.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpFlip, NgpOffset, NgpShift } from 'ng-primitives/portal';\n\nexport interface NgpContextMenuConfig {\n /**\n * Define the offset of the context menu relative to the cursor position.\n * @default 2\n */\n offset: NgpOffset;\n\n /**\n * Define whether the context menu should flip when there is not enough space.\n * @default true\n */\n flip: NgpFlip;\n\n /**\n * Define the container element or selector in which the context menu should be attached.\n * @default 'body'\n */\n container: HTMLElement | string | null;\n\n /**\n * Defines how the context menu behaves when the window is scrolled.\n * @default 'close'\n */\n scrollBehavior: 'reposition' | 'block' | 'close';\n\n /**\n * Configure shift behavior to keep the context menu in view.\n * @default undefined\n */\n shift: NgpShift;\n}\n\nexport const defaultContextMenuConfig: NgpContextMenuConfig = {\n offset: 2,\n flip: true,\n container: 'body',\n scrollBehavior: 'close',\n shift: undefined,\n};\n\nexport const NgpContextMenuConfigToken = new InjectionToken<NgpContextMenuConfig>(\n 'NgpContextMenuConfigToken',\n);\n\n/**\n * Provide the default Context Menu configuration\n * @param config The Context Menu configuration\n * @returns The provider\n */\nexport function provideContextMenuConfig(config: Partial<NgpContextMenuConfig>): Provider[] {\n return [\n {\n provide: NgpContextMenuConfigToken,\n useValue: { ...defaultContextMenuConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Context Menu configuration\n * @returns The global Context Menu configuration\n */\nexport function injectContextMenuConfig(): NgpContextMenuConfig {\n return inject(NgpContextMenuConfigToken, { optional: true }) ?? defaultContextMenuConfig;\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { provideFocusTrapState } from 'ng-primitives/focus-trap';\nimport { ngpMenu, provideMenuState } from 'ng-primitives/menu';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\n\n/**\n * The `NgpContextMenu` is a container for context menu items.\n */\n@Directive({\n selector: '[ngpContextMenu]',\n exportAs: 'ngpContextMenu',\n providers: [\n provideRovingFocusGroupState({ inherit: false }),\n provideMenuState({ inherit: false }),\n provideFocusTrapState(),\n ],\n})\nexport class NgpContextMenu {\n /**\n * Whether focus should wrap around when reaching the end of the menu.\n * @default true\n */\n readonly wrap = input<boolean, BooleanInput>(true, {\n alias: 'ngpContextMenuWrap',\n transform: booleanAttribute,\n });\n\n private readonly state = ngpMenu({ wrap: this.wrap });\n\n constructor() {\n ngpRovingFocusGroup({ inherit: false, wrap: this.wrap });\n }\n\n /** @internal Close the menu and any parent menus */\n closeAllMenus(origin: FocusOrigin): void {\n this.state.closeAllMenus(origin);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { ngpMenuItem, provideMenuItemState } from 'ng-primitives/menu';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\n\n/**\n * The `NgpContextMenuItem` directive represents a context menu item.\n */\n@Directive({\n selector: '[ngpContextMenuItem]',\n exportAs: 'ngpContextMenuItem',\n providers: [provideMenuItemState(), provideRovingFocusItemState()],\n})\nexport class NgpContextMenuItem {\n /** Whether the menu item is disabled */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuItemDisabled',\n transform: booleanAttribute,\n });\n\n /** Whether the menu should close when this item is selected */\n readonly closeOnSelect = input<boolean, BooleanInput>(true, {\n alias: 'ngpContextMenuItemCloseOnSelect',\n transform: booleanAttribute,\n });\n\n constructor() {\n ngpMenuItem({ disabled: this.disabled, closeOnSelect: this.closeOnSelect });\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { ngpMenuItemCheckbox, provideMenuItemCheckboxState } from 'ng-primitives/menu';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\n\n/**\n * The `NgpContextMenuItemCheckbox` directive represents a context menu item that can be toggled on and off.\n */\n@Directive({\n selector: '[ngpContextMenuItemCheckbox]',\n exportAs: 'ngpContextMenuItemCheckbox',\n providers: [provideMenuItemCheckboxState(), provideRovingFocusItemState()],\n})\nexport class NgpContextMenuItemCheckbox {\n /** Whether the checkbox is checked */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuItemCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /** Event emitted when the checked state changes */\n readonly checkedChange = output<boolean>({\n alias: 'ngpContextMenuItemCheckboxCheckedChange',\n });\n\n /** Whether the menu item checkbox is disabled */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuItemCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n constructor() {\n ngpMenuItemCheckbox({\n checked: this.checked,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n });\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { injectMenuItemCheckboxState, injectMenuItemRadioState } from 'ng-primitives/menu';\nimport { dataBinding } from 'ng-primitives/state';\n\n/**\n * The `NgpContextMenuItemIndicator` directive renders inside a checkbox or radio context menu item\n * and exposes `data-checked` based on the parent item's checked state.\n */\n@Directive({\n selector: '[ngpContextMenuItemIndicator]',\n exportAs: 'ngpContextMenuItemIndicator',\n})\nexport class NgpContextMenuItemIndicator {\n constructor() {\n const element = injectElementRef();\n const checkboxState = injectMenuItemCheckboxState({ optional: true });\n const radioState = injectMenuItemRadioState({ optional: true });\n\n const checked = computed(() => checkboxState()?.checked() ?? radioState()?.checked() ?? false);\n\n dataBinding(element, 'data-checked', checked);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { ngpMenuItemRadio, provideMenuItemRadioState } from 'ng-primitives/menu';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\n\n/**\n * The `NgpContextMenuItemRadio` directive represents a radio context menu item within a radio group.\n */\n@Directive({\n selector: '[ngpContextMenuItemRadio]',\n exportAs: 'ngpContextMenuItemRadio',\n providers: [provideMenuItemRadioState(), provideRovingFocusItemState()],\n})\nexport class NgpContextMenuItemRadio {\n /** The value this radio item represents */\n readonly value = input.required<string>({\n alias: 'ngpContextMenuItemRadioValue',\n });\n\n /** Whether the radio item is disabled */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuItemRadioDisabled',\n transform: booleanAttribute,\n });\n\n constructor() {\n ngpMenuItemRadio({ value: this.value, disabled: this.disabled });\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n}\n","import { Directive, input, output } from '@angular/core';\nimport { ngpMenuItemRadioGroup, provideMenuItemRadioGroupState } from 'ng-primitives/menu';\n\n/**\n * The `NgpContextMenuItemRadioGroup` directive represents a group of radio context menu items.\n */\n@Directive({\n selector: '[ngpContextMenuItemRadioGroup]',\n exportAs: 'ngpContextMenuItemRadioGroup',\n providers: [provideMenuItemRadioGroupState()],\n})\nexport class NgpContextMenuItemRadioGroup {\n /** The current value of the radio group */\n readonly value = input<string | null>(null, {\n alias: 'ngpContextMenuItemRadioGroupValue',\n });\n\n /** Event emitted when the value changes */\n readonly valueChange = output<string>({\n alias: 'ngpContextMenuItemRadioGroupValueChange',\n });\n\n constructor() {\n ngpMenuItemRadioGroup({\n value: this.value,\n onValueChange: value => this.valueChange.emit(value),\n });\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport {\n NgpMenuTriggerStateToken,\n NgpSubmenuTrigger,\n NgpSubmenuTriggerStateToken,\n ngpSubmenuTrigger,\n provideSubmenuTriggerState,\n type NgpMenuPlacement,\n} from 'ng-primitives/menu';\nimport {\n coerceFlip,\n coerceOffset,\n NgpFlip,\n NgpFlipInput,\n NgpOffset,\n NgpOffsetInput,\n NgpOverlayContent,\n} from 'ng-primitives/portal';\n\n/**\n * The `NgpContextMenuSubmenuTrigger` directive turns a context menu item into a submenu trigger.\n */\n@Directive({\n selector: '[ngpContextMenuSubmenuTrigger]',\n exportAs: 'ngpContextMenuSubmenuTrigger',\n providers: [\n provideSubmenuTriggerState(),\n { provide: NgpMenuTriggerStateToken, useExisting: NgpSubmenuTriggerStateToken },\n // Provide as NgpSubmenuTrigger so ngpMenuItem can detect this is a submenu trigger\n { provide: NgpSubmenuTrigger, useExisting: NgpContextMenuSubmenuTrigger },\n ],\n})\nexport class NgpContextMenuSubmenuTrigger<T = unknown> {\n /**\n * Access the submenu template ref.\n */\n readonly menu = input<NgpOverlayContent<T>>(undefined, {\n alias: 'ngpContextMenuSubmenuTrigger',\n });\n\n /**\n * Define if the trigger should be disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuSubmenuTriggerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Define the placement of the submenu relative to the trigger.\n * @default 'right-start'\n */\n readonly placement = input<NgpMenuPlacement>('right-start', {\n alias: 'ngpContextMenuSubmenuTriggerPlacement',\n });\n\n /**\n * Define the offset of the submenu relative to the trigger.\n * @default 0\n */\n readonly offset = input<NgpOffset, NgpOffsetInput>(0, {\n alias: 'ngpContextMenuSubmenuTriggerOffset',\n transform: coerceOffset,\n });\n\n /**\n * Define whether the submenu should flip when there is not enough space.\n * @default true\n */\n readonly flip = input<NgpFlip, NgpFlipInput>(true, {\n alias: 'ngpContextMenuSubmenuTriggerFlip',\n transform: coerceFlip,\n });\n\n private readonly state = ngpSubmenuTrigger<T>({\n disabled: this.disabled,\n menu: this.menu,\n placement: this.placement,\n offset: this.offset,\n flip: this.flip,\n });\n\n show(): void {\n this.state.show();\n }\n\n hide(origin: FocusOrigin = 'program'): void {\n this.state.hide(origin);\n }\n\n toggle(event: MouseEvent): void {\n this.state.toggle(event);\n }\n\n focus(origin: FocusOrigin = 'program'): void {\n this.state.focus(origin);\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { computed, inject, Injector, signal, Signal, ViewContainerRef } from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { NgpMenuTriggerStateToken } from 'ng-primitives/menu';\nimport {\n createOverlay,\n NgpFlip,\n NgpOffset,\n NgpOverlay,\n NgpOverlayConfig,\n NgpOverlayContent,\n NgpPosition,\n NgpShift,\n} from 'ng-primitives/portal';\nimport {\n controlled,\n createPrimitive,\n dataBinding,\n listener,\n onDestroy,\n styleBinding,\n} from 'ng-primitives/state';\n\nexport interface NgpContextMenuTriggerState {\n /**\n * Whether the context menu is open.\n */\n readonly open: Signal<boolean>;\n\n /**\n * The focus origin that was used to open the menu.\n */\n readonly openOrigin: Signal<FocusOrigin>;\n\n /**\n * Show the context menu.\n */\n show(origin?: FocusOrigin): void;\n\n /**\n * Hide the context menu.\n */\n hide(origin?: FocusOrigin): void;\n\n /**\n * Set whether the pointer is over the menu content.\n */\n setPointerOverContent(isOver: boolean): void;\n}\n\nexport interface NgpContextMenuTriggerProps<T = unknown> {\n /**\n * The menu template or component.\n */\n readonly menu?: Signal<NgpOverlayContent<T> | undefined>;\n\n /**\n * Whether the trigger is disabled.\n */\n readonly disabled?: Signal<boolean>;\n\n /**\n * The offset of the menu.\n */\n readonly offset?: Signal<NgpOffset>;\n\n /**\n * Whether the menu should flip when there is not enough space.\n */\n readonly flip?: Signal<NgpFlip>;\n\n /**\n * The container in which the menu should be attached.\n */\n readonly container?: Signal<HTMLElement | string | null>;\n\n /**\n * Configure shift behavior.\n */\n shift: NgpShift;\n\n /**\n * How the menu behaves when the window is scrolled.\n */\n readonly scrollBehavior?: Signal<'reposition' | 'block' | 'close'>;\n\n /**\n * Context to provide to the menu.\n */\n readonly context?: Signal<T>;\n}\n\n/** Duration in ms before a long-press fires. */\nconst LONG_PRESS_DURATION = 700;\n\n/** Movement threshold in px to cancel a long-press. */\nconst LONG_PRESS_MOVE_THRESHOLD = 10;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-function\nconst noop = (): any => {};\n\nexport const [\n NgpContextMenuTriggerStateToken,\n ngpContextMenuTrigger,\n _injectContextMenuTriggerState,\n provideContextMenuTriggerState,\n] = createPrimitive(\n 'NgpContextMenuTrigger',\n <T>({\n disabled: _disabled = signal(false),\n menu: _menu = signal<NgpOverlayContent<T> | undefined>(undefined),\n offset: _offset = signal(2),\n flip: _flip = signal(true),\n context: _context = signal<T>(undefined as T),\n container,\n scrollBehavior,\n shift,\n }: NgpContextMenuTriggerProps<T>) => {\n const element = injectElementRef();\n const injector = inject(Injector);\n const viewContainerRef = inject(ViewContainerRef);\n\n // Controlled properties\n const menu = controlled(_menu);\n const disabled = controlled(_disabled);\n const flip = controlled(_flip);\n const offset = controlled(_offset);\n const context = controlled(_context);\n\n // Internal state\n const overlay = signal<NgpOverlay<T> | null>(null);\n const open = computed(() => overlay()?.isOpen() ?? false);\n const openOrigin = signal<FocusOrigin>('program');\n const cursorPosition = signal<NgpPosition | null>(null);\n\n // Host bindings\n dataBinding(element, 'data-open', open);\n\n // Prevent iOS text selection and callout on long-press.\n // Only apply when the trigger is enabled so disabled triggers retain native behavior.\n styleBinding(element, '-webkit-touch-callout', () => (disabled?.() ? null : 'none'));\n\n // Long-press state\n let longPressTimer: ReturnType<typeof setTimeout> | null = null;\n let longPressStartX = 0;\n let longPressStartY = 0;\n let longPressTriggered = false;\n\n // Event listeners\n listener(element, 'contextmenu', onContextMenu);\n listener(element, 'pointerdown', onPointerDown);\n listener(element, 'pointermove', onPointerMove);\n listener(element, 'pointerup', onPointerUp);\n listener(element, 'pointercancel', onPointerCancel);\n\n function onContextMenu(event: MouseEvent): void {\n if (disabled?.()) {\n return;\n }\n\n event.preventDefault();\n\n // If long-press already triggered, don't re-open\n if (longPressTriggered) {\n longPressTriggered = false;\n return;\n }\n\n cursorPosition.set({ x: event.clientX, y: event.clientY });\n openOrigin.set('mouse');\n\n if (open()) {\n // Already open - reposition by updating cursor position and triggering reposition\n overlay()?.updatePosition();\n } else {\n showMenu();\n }\n }\n\n function onPointerDown(event: PointerEvent): void {\n if (event.pointerType !== 'touch' || disabled?.()) {\n return;\n }\n\n longPressTriggered = false;\n longPressStartX = event.clientX;\n longPressStartY = event.clientY;\n\n longPressTimer = setTimeout(() => {\n longPressTriggered = true;\n cursorPosition.set({ x: longPressStartX, y: longPressStartY });\n openOrigin.set('touch');\n showMenu();\n }, LONG_PRESS_DURATION);\n }\n\n function onPointerMove(event: PointerEvent): void {\n if (event.pointerType !== 'touch' || !longPressTimer) {\n return;\n }\n\n const dx = event.clientX - longPressStartX;\n const dy = event.clientY - longPressStartY;\n if (Math.sqrt(dx * dx + dy * dy) > LONG_PRESS_MOVE_THRESHOLD) {\n cancelLongPress();\n }\n }\n\n function onPointerUp(event: PointerEvent): void {\n if (event.pointerType !== 'touch') {\n return;\n }\n cancelLongPress();\n }\n\n function onPointerCancel(event: PointerEvent): void {\n if (event.pointerType !== 'touch') {\n return;\n }\n cancelLongPress();\n }\n\n function cancelLongPress(): void {\n if (longPressTimer) {\n clearTimeout(longPressTimer);\n longPressTimer = null;\n }\n longPressTriggered = false;\n }\n\n onDestroy(() => cancelLongPress());\n\n function showMenu(): void {\n if (!overlay()) {\n createOverlayInstance();\n }\n overlay()?.show();\n }\n\n function show(origin: FocusOrigin = 'program'): void {\n openOrigin.set(origin);\n showMenu();\n }\n\n function hide(origin: FocusOrigin = 'program'): void {\n const currentOverlay = overlay();\n if (!currentOverlay) {\n return;\n }\n currentOverlay.hide({ origin });\n }\n\n function createOverlayInstance(): void {\n const menuContent = menu?.();\n\n if (!menuContent) {\n throw new Error('Context menu must be either a TemplateRef or a ComponentType');\n }\n\n const config: NgpOverlayConfig<T> = {\n content: menuContent,\n triggerElement: element.nativeElement,\n viewContainerRef,\n injector,\n context,\n container: container?.(),\n offset: offset(),\n flip: flip(),\n shift,\n placement: signal<Placement>('right-start'),\n closeOnOutsideClick: true,\n closeOnEscape: true,\n treatTriggerClickAsOutside: true,\n restoreFocus: false,\n scrollBehaviour: scrollBehavior?.() ?? 'close',\n overlayType: 'menu',\n position: cursorPosition,\n trackPosition: true,\n };\n\n overlay.set(createOverlay(config));\n }\n\n function setPointerOverContent(_isOver: boolean): void {\n // No-op for context menu\n }\n\n // Set the compat state on NgpMenuTriggerStateToken so NgpMenu can find it.\n // NgpMenu injects this token and calls hide(), openOrigin(), setPointerOverContent() on it.\n const menuTriggerToken = inject(NgpMenuTriggerStateToken, { optional: true });\n // eslint-disable-next-line @angular-eslint/no-uncalled-signals -- checking inject() nullability, not signal value\n if (menuTriggerToken) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (menuTriggerToken as any).set({\n menu,\n placement: signal('bottom-start'),\n open,\n offset,\n disabled,\n flip,\n context,\n openOrigin,\n setDisabled: noop,\n setFlip: noop,\n setPlacement: noop,\n setOffset: noop,\n setContext: noop,\n show,\n hide,\n toggle: noop,\n setMenu: noop,\n setPointerOverContent,\n });\n }\n\n return {\n open,\n openOrigin,\n show,\n hide,\n setPointerOverContent,\n } satisfies NgpContextMenuTriggerState;\n },\n);\n\nexport function injectContextMenuTriggerState(): Signal<NgpContextMenuTriggerState> {\n return _injectContextMenuTriggerState() as Signal<NgpContextMenuTriggerState>;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, Signal } from '@angular/core';\nimport { provideMenuTriggerState } from 'ng-primitives/menu';\nimport {\n coerceFlip,\n coerceOffset,\n coerceShift,\n NgpFlip,\n NgpFlipInput,\n NgpOffset,\n NgpOffsetInput,\n NgpOverlayContent,\n NgpShift,\n NgpShiftInput,\n} from 'ng-primitives/portal';\nimport { injectContextMenuConfig } from '../config/context-menu-config';\nimport {\n ngpContextMenuTrigger,\n provideContextMenuTriggerState,\n} from './context-menu-trigger-state';\n\n/**\n * The `NgpContextMenuTrigger` directive allows you to turn an element into a context menu trigger.\n * Right-clicking or long-pressing the element will open the specified menu at the cursor position.\n */\n@Directive({\n selector: '[ngpContextMenuTrigger]',\n exportAs: 'ngpContextMenuTrigger',\n providers: [provideContextMenuTriggerState(), provideMenuTriggerState()],\n})\nexport class NgpContextMenuTrigger<T = unknown> {\n /**\n * Access the global context menu configuration.\n */\n private readonly config = injectContextMenuConfig();\n\n /**\n * The menu template ref or ComponentType to display.\n */\n readonly menu = input<NgpOverlayContent<T>>(undefined, {\n alias: 'ngpContextMenuTrigger',\n });\n\n /**\n * Define if the trigger should be disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpContextMenuTriggerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Define the offset of the context menu relative to the cursor position.\n * @default 2\n */\n readonly offset = input<NgpOffset, NgpOffsetInput>(this.config.offset, {\n alias: 'ngpContextMenuTriggerOffset',\n transform: coerceOffset,\n });\n\n /**\n * Define whether the context menu should flip when there is not enough space.\n * @default true\n */\n readonly flip = input<NgpFlip, NgpFlipInput>(this.config.flip, {\n alias: 'ngpContextMenuTriggerFlip',\n transform: coerceFlip,\n });\n\n /**\n * Configure shift behavior to keep the context menu in view.\n * @default undefined\n */\n readonly shift = input<NgpShift, NgpShiftInput>(this.config.shift, {\n alias: 'ngpContextMenuTriggerShift',\n transform: coerceShift,\n });\n\n /**\n * Define the container in which the context menu should be attached.\n * @default document.body\n */\n readonly container = input<HTMLElement | string | null>(this.config.container, {\n alias: 'ngpContextMenuTriggerContainer',\n });\n\n /**\n * Defines how the context menu behaves when the window is scrolled.\n * @default 'close'\n */\n readonly scrollBehavior = input<'reposition' | 'block' | 'close'>(this.config.scrollBehavior, {\n alias: 'ngpContextMenuTriggerScrollBehavior',\n });\n\n /**\n * Provide context to the menu. This can be used to pass data to the menu content.\n */\n readonly context = input<T>(undefined, {\n alias: 'ngpContextMenuTriggerContext',\n });\n\n /**\n * The context menu trigger state.\n */\n private readonly state = ngpContextMenuTrigger<T>({\n disabled: this.disabled,\n menu: this.menu,\n offset: this.offset,\n flip: this.flip,\n shift: this.shift(),\n container: this.container,\n scrollBehavior: this.scrollBehavior,\n context: this.context as Signal<T>,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1189,5 +1189,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
1189
1189
|
* Generated bundle index. Do not edit.
|
|
1190
1190
|
*/
|
|
1191
1191
|
|
|
1192
|
-
export { NgpMenu, NgpMenuItem, NgpMenuItemCheckbox, NgpMenuItemIndicator, NgpMenuItemRadio, NgpMenuItemRadioGroup, NgpMenuTrigger, NgpSubmenuTrigger, injectMenuItemCheckboxState, injectMenuItemRadioGroupState, injectMenuItemRadioState, injectMenuItemState, injectMenuState, injectMenuTriggerState, injectSubmenuTriggerState, ngpMenu, ngpMenuItem, ngpMenuItemCheckbox, ngpMenuItemRadio, ngpMenuItemRadioGroup, ngpMenuTrigger, ngpSubmenuTrigger, provideMenuConfig, provideMenuItemCheckboxState, provideMenuItemRadioGroupState, provideMenuItemRadioState, provideMenuItemState, provideMenuState, provideMenuTriggerState, provideSubmenuTriggerState };
|
|
1192
|
+
export { NgpMenu, NgpMenuItem, NgpMenuItemCheckbox, NgpMenuItemIndicator, NgpMenuItemRadio, NgpMenuItemRadioGroup, NgpMenuTrigger, NgpMenuTriggerStateToken, NgpSubmenuTrigger, NgpSubmenuTriggerStateToken, injectMenuItemCheckboxState, injectMenuItemRadioGroupState, injectMenuItemRadioState, injectMenuItemState, injectMenuState, injectMenuTriggerState, injectSubmenuTriggerState, ngpMenu, ngpMenuItem, ngpMenuItemCheckbox, ngpMenuItemRadio, ngpMenuItemRadioGroup, ngpMenuTrigger, ngpSubmenuTrigger, provideMenuConfig, provideMenuItemCheckboxState, provideMenuItemRadioGroupState, provideMenuItemRadioState, provideMenuItemState, provideMenuState, provideMenuTriggerState, provideSubmenuTriggerState };
|
|
1193
1193
|
//# sourceMappingURL=ng-primitives-menu.mjs.map
|
|
@@ -321,6 +321,13 @@ class NgpOverlayRegistry {
|
|
|
321
321
|
if (this.entries.length === 0) {
|
|
322
322
|
return;
|
|
323
323
|
}
|
|
324
|
+
// Ignore right-click mouseup — right-clicks open context menus via the
|
|
325
|
+
// `contextmenu` event, and the corresponding mouseup should never dismiss
|
|
326
|
+
// an overlay. If the user right-clicks elsewhere, the new `contextmenu`
|
|
327
|
+
// event on that target will handle repositioning or reopening.
|
|
328
|
+
if (event.button === 2) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
324
331
|
// Ignore scrollbar clicks — the click lands outside the viewport's client area.
|
|
325
332
|
const { clientWidth, clientHeight } = this.document.documentElement;
|
|
326
333
|
if (clientWidth > 0 &&
|
|
@@ -399,7 +406,7 @@ class NgpOverlayRegistry {
|
|
|
399
406
|
*/
|
|
400
407
|
isClickOutsideEntry(entry, path) {
|
|
401
408
|
const isInsideElements = entry.getElements().some(el => path.includes(el));
|
|
402
|
-
const isInsideTrigger = path.includes(entry.triggerElement);
|
|
409
|
+
const isInsideTrigger = !entry.treatTriggerClickAsOutside && path.includes(entry.triggerElement);
|
|
403
410
|
const isInsideAnchor = entry.anchorElement ? path.includes(entry.anchorElement) : false;
|
|
404
411
|
return !(isInsideElements || isInsideTrigger || isInsideAnchor);
|
|
405
412
|
}
|
|
@@ -1418,6 +1425,7 @@ class NgpOverlay {
|
|
|
1418
1425
|
outsidePress: this.config.closeOnOutsideClick ?? false,
|
|
1419
1426
|
escapeKey: this.config.closeOnEscape ?? false,
|
|
1420
1427
|
},
|
|
1428
|
+
treatTriggerClickAsOutside: this.config.treatTriggerClickAsOutside,
|
|
1421
1429
|
});
|
|
1422
1430
|
// Register as active overlay for this type (skip when cooldown is bypassed)
|
|
1423
1431
|
if (this.config.overlayType && !skipCooldown) {
|