whoami7 - Manager
:
/
home
/
dataiclx
/
vielorbe.com
/
wp-content
/
plugins
/
surecart
/
dist
/
components
/
components
/
Upload File:
files >> //home/dataiclx/vielorbe.com/wp-content/plugins/surecart/dist/components/components/sc-menu2.js.map
{"file":"sc-menu2.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,6MAA6M,CAAC;AAChO,qBAAe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCoCZ,eAAO,CAAC,UAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/ui/menu/sc-menu.scss?tag=sc-menu&encapsulation=shadow","src/components/ui/menu/sc-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.menu {\n padding: var(--sc-spacing-x-small) 0;\n\n &:focus {\n outline: none;\n }\n}\n\n::slotted(sc-input) {\n margin-top: -var(--sc-spacing-x-small);\n}\n::slotted(sc-divider) {\n --spacing: var(--sc-spacing-x-small);\n}\n","import { Component, h, Event, EventEmitter, Element, Method, Prop } from '@stencil/core';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\n\n@Component({\n tag: 'sc-menu',\n styleUrl: 'sc-menu.scss',\n shadow: true,\n})\nexport class ScMenu {\n @Element() el: HTMLElement;\n @Event() scSelect: EventEmitter<{ item: HTMLScMenuItemElement }>;\n private items: HTMLScMenuItemElement[] = [];\n\n @Prop({ reflect: false }) ariaLabel: string;\n\n /** TODO: Click test */\n handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const item = target.closest('sc-menu-item') as HTMLScMenuItemElement;\n\n if (item && !item.disabled) {\n this.scSelect.emit({ item });\n }\n }\n\n /** TODO: Keydown Test */\n handleKeyDown(event: KeyboardEvent) {\n // Make a selection when pressing enter\n if (event.key === 'Enter') {\n const item = this.getCurrentItem();\n event.preventDefault();\n\n if (item) {\n this.scSelect.emit({ item });\n }\n\n speak(sprintf(__('Menu %s selected', 'surecart'), item.textContent), 'assertive');\n }\n\n // Prevent scrolling when space is pressed\n if (event.key === ' ') {\n event.preventDefault();\n }\n\n // Move the selection when pressing down or up\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n const selectedItem = this.getCurrentItem();\n let index = selectedItem ? this.items.indexOf(selectedItem) : 0;\n\n if (this.items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.items.length - 1;\n }\n\n if (index < 0) index = 0;\n if (index > this.items.length - 1) index = this.items.length - 1;\n\n this.setCurrentItem(this.items[index]);\n\n return;\n }\n }\n }\n\n /** Get the active item */\n getCurrentItem() {\n return this.items.find(i => i.getAttribute('tabindex') === '0');\n }\n\n /**\n * @internal Sets the current menu item to the specified element. This sets `tabindex=\"0\"` on the target element and\n * `tabindex=\"-1\"` to all other items. This method must be called prior to setting focus on a menu item.\n */\n @Method()\n async setCurrentItem(item: HTMLScMenuItemElement) {\n const activeItem = item.disabled ? this.items[0] : item;\n // Update tab indexes\n this.items.forEach(i => {\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1');\n });\n }\n\n /** Sync slotted items with internal state */\n syncItems() {\n const slottedElements = (this.el.shadowRoot.querySelector('slot') as HTMLSlotElement).assignedElements({ flatten: true });\n this.items = slottedElements.filter(node => {\n return node.nodeName === 'sc-menu-item';\n }) as HTMLScMenuItemElement[];\n }\n\n /** Handle items change in slot */\n handleSlotChange() {\n this.syncItems();\n }\n\n render() {\n return (\n <div part=\"base\" class=\"menu\" tabindex=\"0\" onKeyDown={e => this.handleKeyDown(e)}>\n <slot onSlotchange={() => this.handleSlotChange()}></slot>\n </div>\n );\n }\n}\n"],"version":3}
Copyright ©2021 || Defacer Indonesia