// Copyright 2019-2023 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT import { invoke } from '@tauri-apps/api/core' // open links with the API window.addEventListener('click', function (evt) { // return early if if ( // event was prevented evt.defaultPrevented // or not a left click || evt.button !== 0 // or meta key pressed || evt.metaKey // or al key pressed || evt.altKey ) return const a = evt .composedPath() .find((el) => el instanceof Node && el.nodeName.toUpperCase() === 'A') as | HTMLAnchorElement | undefined // return early if if ( // not tirggered from element !a // or doesn't have a href || !a.href // or not supposed to be open in a new tab || !( a.target === '_blank' // or ctrl key pressed || evt.ctrlKey // or shift key pressed || evt.shiftKey ) ) return const url = new URL(a.href) // return early if if ( // same origin (internal navigation) url.origin === window.location.origin // not default protocols || ['http:', 'https:', 'mailto:', 'tel:'].every((p) => url.protocol !== p) ) return evt.preventDefault() void invoke('plugin:opener|open_url', { url }) })