@kit-data-manager/pid-component
Version:
The PID-Component is a web component that can be used to evaluate and display FAIR Digital Objects, PIDs, ORCiDs, and possibly other identifiers in a user-friendly way. It is easily extensible to support other identifier types.
82 lines (79 loc) • 3.29 kB
JavaScript
/*!
*
* Copyright 2024 Karlsruhe Institute of Technology.
*
* Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import { p as proxyCustomElement, H, h, c as Host } from './p-b3fbcf6f.js';
const CopyButton = proxyCustomElement(class CopyButton extends H {
constructor() {
super();
this.__registerHost();
}
render() {
function copyValue(event, value) {
if ('clipboard' in navigator) {
navigator.clipboard.writeText(value).then(() => showSuccess());
}
else {
const textArea = document.createElement('textarea');
textArea.value = value;
textArea.style.opacity = '0';
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
const success = document.execCommand('copy');
console.debug(`Deprecated Text copy was ${success ? 'successful' : 'unsuccessful'}.`);
showSuccess();
}
catch (err) {
console.error(err.name, err.message);
}
document.body.removeChild(textArea);
}
function showSuccess() {
const el = event.target;
el.innerText = '✓ Copied!';
el.classList.remove('hover:bg-blue-200');
el.classList.remove('bg-white');
el.classList.add('bg-green-200');
setTimeout(() => {
el.classList.remove('bg-green-200');
el.classList.add('hover:bg-blue-200');
el.classList.add('bg-white');
el.innerText = 'Copy';
}, 1500);
}
}
return (h(Host, { key: 'b2cfb19eeb72103bd07d7d8f7596a6b2f343f506', class: 'inline-block align-baseline text-xs' }, h("button", { key: '3bbbe4e78d3d2b31f873354f229077e781df9e6f', class: 'bg-white border border-slate-500 text-slate-800 font-medium font-mono rounded-md px-2 py-0.5 hover:bg-blue-200 hover:text-slate-900 flex-none max-h-min items-center', onClick: event => copyValue(event, this.value) }, "Copy")));
}
}, [0, "copy-button", {
"value": [1]
}]);
function defineCustomElement() {
if (typeof customElements === "undefined") {
return;
}
const components = ["copy-button"];
components.forEach(tagName => { switch (tagName) {
case "copy-button":
if (!customElements.get(tagName)) {
customElements.define(tagName, CopyButton);
}
break;
} });
}
export { CopyButton as C, defineCustomElement as d };
//# sourceMappingURL=p-932a557a.js.map