Buckets:
| import {focusWithoutScrolling as $7215afc6de606d6b$export$de79e2c695e052f3} from "./focusWithoutScrolling.mjs"; | |
| import {isMac as $c87311424ea30a05$export$9ac100e40613ea10, isWebKit as $c87311424ea30a05$export$78551043582a6a98, isFirefox as $c87311424ea30a05$export$b7d78993b74f766d, isIPad as $c87311424ea30a05$export$7bef049ce92e4224} from "./platform.mjs"; | |
| import $g3jFn$react, {createContext as $g3jFn$createContext, useMemo as $g3jFn$useMemo, useContext as $g3jFn$useContext} from "react"; | |
| /* | |
| * Copyright 2023 Adobe. All rights reserved. | |
| * This file is licensed to you under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. You may obtain a copy | |
| * of the License at http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software distributed under | |
| * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | |
| * OF ANY KIND, either express or implied. See the License for the specific language | |
| * governing permissions and limitations under the License. | |
| */ | |
| const $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (0, $g3jFn$createContext)({ | |
| isNative: true, | |
| open: $ea8dcbcb9ea1b556$var$openSyntheticLink, | |
| useHref: (href)=>href | |
| }); | |
| function $ea8dcbcb9ea1b556$export$323e4fc2fa4753fb(props) { | |
| let { children: children, navigate: navigate, useHref: useHref } = props; | |
| let ctx = (0, $g3jFn$useMemo)(()=>({ | |
| isNative: false, | |
| open: (target, modifiers, href, routerOptions)=>{ | |
| $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>{ | |
| if ($ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers)) navigate(href, routerOptions); | |
| else $ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers); | |
| }); | |
| }, | |
| useHref: useHref || ((href)=>href) | |
| }), [ | |
| navigate, | |
| useHref | |
| ]); | |
| return /*#__PURE__*/ (0, $g3jFn$react).createElement($ea8dcbcb9ea1b556$var$RouterContext.Provider, { | |
| value: ctx | |
| }, children); | |
| } | |
| function $ea8dcbcb9ea1b556$export$9a302a45f65d0572() { | |
| return (0, $g3jFn$useContext)($ea8dcbcb9ea1b556$var$RouterContext); | |
| } | |
| function $ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers) { | |
| // Use getAttribute here instead of link.target. Firefox will default link.target to "_parent" when inside an iframe. | |
| let target = link.getAttribute('target'); | |
| return (!target || target === '_self') && link.origin === location.origin && !link.hasAttribute('download') && !modifiers.metaKey && // open in new tab (mac) | |
| !modifiers.ctrlKey && // open in new tab (windows) | |
| !modifiers.altKey && // download | |
| !modifiers.shiftKey; | |
| } | |
| function $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) { | |
| var _window_event_type, _window_event; | |
| let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers; | |
| // Firefox does not recognize keyboard events as a user action by default, and the popup blocker | |
| // will prevent links with target="_blank" from opening. However, it does allow the event if the | |
| // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do. | |
| // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640. | |
| if ((0, $c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') { | |
| if ((0, $c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true; | |
| else ctrlKey = true; | |
| } | |
| // WebKit does not support firing click events with modifier keys, but does support keyboard events. | |
| // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184 | |
| let event = (0, $c87311424ea30a05$export$78551043582a6a98)() && (0, $c87311424ea30a05$export$9ac100e40613ea10)() && !(0, $c87311424ea30a05$export$7bef049ce92e4224)() && true ? new KeyboardEvent('keydown', { | |
| keyIdentifier: 'Enter', | |
| metaKey: metaKey, | |
| ctrlKey: ctrlKey, | |
| altKey: altKey, | |
| shiftKey: shiftKey | |
| }) : new MouseEvent('click', { | |
| metaKey: metaKey, | |
| ctrlKey: ctrlKey, | |
| altKey: altKey, | |
| shiftKey: shiftKey, | |
| bubbles: true, | |
| cancelable: true | |
| }); | |
| $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening; | |
| (0, $7215afc6de606d6b$export$de79e2c695e052f3)(target); | |
| target.dispatchEvent(event); | |
| $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false; | |
| } | |
| // https://github.com/parcel-bundler/parcel/issues/8724 | |
| $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false; | |
| function $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) { | |
| if (target instanceof HTMLAnchorElement) open(target); | |
| else if (target.hasAttribute('data-href')) { | |
| let link = document.createElement('a'); | |
| link.href = target.getAttribute('data-href'); | |
| if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target'); | |
| if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel'); | |
| if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download'); | |
| if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping'); | |
| if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy'); | |
| target.appendChild(link); | |
| open(link); | |
| target.removeChild(link); | |
| } | |
| } | |
| function $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) { | |
| $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers)); | |
| } | |
| function $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6(props) { | |
| let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572(); | |
| var _props_href; | |
| const href = router.useHref((_props_href = props.href) !== null && _props_href !== void 0 ? _props_href : ''); | |
| return { | |
| 'data-href': props.href ? href : undefined, | |
| 'data-target': props.target, | |
| 'data-rel': props.rel, | |
| 'data-download': props.download, | |
| 'data-ping': props.ping, | |
| 'data-referrer-policy': props.referrerPolicy | |
| }; | |
| } | |
| function $ea8dcbcb9ea1b556$export$51437d503373d223(props) { | |
| return { | |
| 'data-href': props.href, | |
| 'data-target': props.target, | |
| 'data-rel': props.rel, | |
| 'data-download': props.download, | |
| 'data-ping': props.ping, | |
| 'data-referrer-policy': props.referrerPolicy | |
| }; | |
| } | |
| function $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(props) { | |
| let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572(); | |
| var _props_href; | |
| const href = router.useHref((_props_href = props === null || props === void 0 ? void 0 : props.href) !== null && _props_href !== void 0 ? _props_href : ''); | |
| return { | |
| href: (props === null || props === void 0 ? void 0 : props.href) ? href : undefined, | |
| target: props === null || props === void 0 ? void 0 : props.target, | |
| rel: props === null || props === void 0 ? void 0 : props.rel, | |
| download: props === null || props === void 0 ? void 0 : props.download, | |
| ping: props === null || props === void 0 ? void 0 : props.ping, | |
| referrerPolicy: props === null || props === void 0 ? void 0 : props.referrerPolicy | |
| }; | |
| } | |
| export {$ea8dcbcb9ea1b556$export$323e4fc2fa4753fb as RouterProvider, $ea8dcbcb9ea1b556$export$efa8c9099e530235 as shouldClientNavigate, $ea8dcbcb9ea1b556$export$95185d699e05d4d7 as openLink, $ea8dcbcb9ea1b556$export$9a302a45f65d0572 as useRouter, $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6 as useSyntheticLinkProps, $ea8dcbcb9ea1b556$export$51437d503373d223 as getSyntheticLinkProps, $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 as useLinkProps}; | |
| //# sourceMappingURL=openLink.module.js.map | |
Xet Storage Details
- Size:
- 8.19 kB
- Xet hash:
- 095f289ab2dbcaac14637a15607406597922e4b0ecee309388987a8589fd425b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.