mattot-first-package
Version:
Just a test package for me learning
110 lines (107 loc) • 2.69 kB
JavaScript
// src/functions.ts
function sayHello({ firstName, lastName, age }) {
console.log("Hello!");
console.log(`Your first name is ${firstName}`);
if (lastName) {
console.log(`Your last name is ${lastName}`);
}
if (age) {
console.log(`Your age is ${age}`);
}
}
// src/class.ts
var Cat = class {
name;
breed;
constructor(name, breed) {
this.name = name;
this.breed = breed;
}
meow() {
console.log("meow.. meow.. meow..");
}
getDescription() {
return `I am a ${this.breed} named ${this.name}`;
}
setName(name) {
this.name = name;
}
setBreed(breed) {
this.breed = breed;
}
getName() {
return this.name;
}
getBreed() {
return this.breed;
}
};
// src/style2clip.ts
import html2canvas from "html2canvas";
var Style2Clip = class _Style2Clip {
/**
* Convert html and css block into image and put it into clipboard
* @param {string} buttonClassName
*/
static _buttonClassName = ".button-copy";
constructor(buttonClassName = ".button-copy") {
_Style2Clip._buttonClassName = buttonClassName;
this.setButtonClassName(buttonClassName);
}
handleClick(event) {
this.convertParentElementToImage(event);
}
/**
* Set button class namethis
* @param {string} buttonClassName
*/
setButtonClassName(buttonClassName) {
const copyButtons = document.querySelectorAll(_Style2Clip._buttonClassName);
_Style2Clip._buttonClassName = buttonClassName;
copyButtons.forEach((button) => {
button.addEventListener("click", (event) => {
this.handleClick.bind(this)(event);
});
});
}
/**
* Get button class name
*/
getButtonClassName() {
return _Style2Clip._buttonClassName;
}
/**
* Convert all html and css elements into image blob
* @param {HTMLElement} element
*/
convertToImage(element) {
html2canvas(element).then(function(canvas) {
canvas.toBlob((blob) => {
if (blob) {
const clipboardItem = new ClipboardItem({ "image/png": blob });
navigator.clipboard.write([clipboardItem]).then(() => {
alert("Image copied to clipboard!");
}).catch((err) => {
console.error("Unable to write to clipboard:", err);
});
} else {
console.error("Unable to convert canvas to Blob");
}
}, "image/png");
});
}
/**
* Get the parent element and convert it to image
* @param {MouseEvent} event
*/
convertParentElementToImage(event) {
const callingElement = event.target;
const callingParent = callingElement.parentNode;
this.convertToImage(callingParent);
}
};
export {
Cat,
Style2Clip,
sayHello
};