ed.brz9.dev/proj/icons/icons.js

472 lines
9.1 KiB
JavaScript

Vue.component('icon', {
template: `
<div class="single-icon">
<span
v-bind:class="this.class"
v-on:click="copyToClipboard(utf8)"
class="actual-icon"
ref="icon"></span>
<span
class="copy-icon-popup"
v-bind:class="{ 'success': isCopied}"
ref="element">Copied!</span>
<p
class="icon-name"
v-on:click="copyToClipboard(span)"
ref="span">{{ this.name }}</p>
</div>
`,
props: ['name'],
data() {
return {
utf8: '',
isCopied: false
}
},
computed: {
class: function () {
return "brz9-icon-" + this.name;
},
span: function () {
return '<span class="brz9-icon-' + this.name + '"></span>';
}
},
methods: {
copyToClipboard(text) {
const textarea = document.createElement('textarea')
textarea.value = text
document.body.appendChild(textarea)
textarea.select()
document.execCommand('copy')
document.body.removeChild(textarea)
this.copyDone();
},
copyDone() {
this.isCopied = true;
this.$refs.element.addEventListener('animationend', () => {
this.isCopied = false;
});
}
},
mounted() {
query = '.' + this.class
let span = document.querySelector(query)
let style = window.getComputedStyle(span, ':before')
let content = style.getPropertyValue('content')
console.log(content)
this.utf8 = content.replace('"', '').replace('"', '')
}
})
let vm = new Vue({
data() {
return {
os: [
"gnu",
"debian",
"void",
"archlinux",
"gentoo",
"redhat",
"fedora",
"manjaro",
"linuxmint",
"freebsd",
"apple",
"windows"
],
streaming: [
"bandcamp",
"spotify",
"applemusic",
"soundcloud",
"tidal"
],
payment: [
"cart",
"price-tag",
"price-tags",
"barcode",
"qrcode",
"ticket",
"credit-card",
"visa",
"mastercard",
"applepay",
"paypal",
"bitcoin",
"monero",
"ethereum",
"ltc",
"liberapay",
"patreon",
"tipeee",
"flattr"
],
navigation: [
"arrow-down",
"arrow-down-left",
"arrow-down-right",
"arrow-left",
"arrow-right",
"arrow-up",
"arrow-up-left",
"arrow-up-right",
"chevron-circle-down",
"chevron-circle-left",
"chevron-circle-right",
"chevron-circle-up",
"chevron-down",
"chevron-left",
"chevron-right",
"chevron-up",
"circle-down",
"circle-left",
"circle-right",
"circle-up",
"zoom-in",
"zoom-out",
"undo",
"redo",
"undo-arrow",
"redo-arrow",
"forward-arrow",
"reply-arrow",
"envelope",
"envelope-open",
"bubble",
"bubbles",
"bubbles2",
"shrink",
"shrink2",
"enlarge",
"enlarge2",
"share",
"share-out",
"search",
"plus",
"minus",
"cross",
"checkmark",
"checkmark-outline",
"link",
"embed",
"embed-slash"
],
form: [
"radio-checked",
"radio-checked-alt",
"radio-unchecked",
"checkbox-checked",
"checkbox-unchecked"
],
network: [
"tree",
"cloud",
"cloud-check",
"cloud-download",
"cloud-upload",
"upload",
"download",
"switch",
"sphere",
"earth",
"power",
"power-cord",
"wifi"
],
alert: [
"warning",
"info",
"question",
"cancel-circle",
"blocked",
"notification",
"floppy-disk",
"trophy",
"newspaper",
"pacman",
"music",
"leaf",
"gift",
"flag",
"bug",
"bell",
"bin",
"bin-alt",
"book",
"books",
"bookmark",
"bookmarks",
"attachment",
"address-book",
"accessibility"
],
time: [
"calendar",
"clock",
"clock2",
"alarm"
],
login: [
"user",
"users",
"enter",
"exit",
"equalizer",
"equalizer2",
"cog"
],
afknav: [
"compass",
"compass2",
"location",
"location2",
"map",
"map2",
"home",
"office",
"lab",
"binoculars"
],
fediverse: [
"mastodon",
"diaspora",
"peertube",
"pixelfed",
"rss",
"rss-square"
],
socials: [
"instagram",
"twitter",
"wordpress",
"nextcloud",
"dropbox",
"vk",
"tripadvisor",
"facebook",
"tiktok",
"twitch",
"vimeo",
"youtube",
"reddit",
"blogger",
"medium",
"stackoverflow",
"quora",
"pinterest",
"tumblr",
"unsplash",
"behance",
"deviantart",
"dribbble",
"notion",
"pocket",
"feedly",
"steam"
],
privacy: [
"gnuprivacyguard",
"tor",
"signal",
"ublockorigin",
"riot"
],
spyware: [
"telegram",
"discord",
"whatsapp",
"skype",
"slack",
"messenger"
],
edit: [
"bold",
"italic",
"underline",
"strikethrough",
"ligature",
"sigma",
"omega",
"text-height",
"text-width",
"font-size",
"paragraph-center",
"paragraph-justify",
"paragraph-left",
"paragraph-right",
"stats-bars",
"stats-dots",
"pie-chart",
"scissors",
"crop",
"quill",
"pen",
"pencil",
"pencil2",
"quotes-left",
"quotes-right",
"copy",
"paste",
"paint-format",
"eyedropper",
"droplet",
"list-numbered",
"list-check",
"list-bullet",
"filter",
"sort-alpha-asc",
"sort-alpha-desc",
"sort-numberic-desc",
"sort-numeric-asc",
"table",
"table2"
],
ratings: [
"star-empty",
"star-full",
"star-half",
"heart",
"heart-broken"
],
keyboard: [
"tab",
"shift",
"ctrl",
"opt",
"command"
],
media: [
"play",
"pause",
"stop",
"previous",
"next",
"backward",
"forward",
"first",
"last",
"play-circle",
"pause-circle",
"stop-circle",
"previous-circle",
"next-circle",
"backward-circle",
"forward-circle",
"volume-decrease",
"volume-increase",
"volume-mute",
"volume-mute2",
"volume-low",
"volume-medium",
"volume-high",
"loop",
"loop2",
"shuffle",
"infinite",
"play-yt",
"eject",
"airplayaudio",
"airplayvideo"
],
files: [
"folder",
"folder-open",
"folder-download",
"folder-upload",
"folder-plus",
"folder-minus",
"image",
"images",
"file-empty",
"file-music",
"file-picture",
"file-play",
"file-text2",
"file-video",
"file-zip",
"files-empty",
"box-add",
"box-remove",
"film"
],
devices: [
"display",
"tablet",
"mobile",
"tv",
"video-camera",
"camera",
"headphones",
"mic",
"printer",
"keyboard",
"phone",
"phone-hang-up",
"raspberrypi",
"arduino",
"terminal"
],
screen: [
"sun",
"brightness-contrast",
"contrast",
"eye",
"eye-blocked",
"eye-minus",
"eye-plus"
],
programing: [
"c",
"go",
"python",
"ruby",
"rust",
"php",
"vue-dot-js",
"react",
"angular",
"svelte",
"npm",
"html5",
"css3",
"javascript",
"typescript",
"postgresql",
"docker",
"git",
"gitea",
"github",
"gitlab",
"jupyter",
"blender",
"inkscape"
],
spinners: [
"spinner",
"spinner2",
"spinner3"
],
license: [
"cc",
"cc-zero",
"cc-sa",
"cc-nd",
"cc-nc",
"cc-remix",
"cc-by",
"cc-share",
"amicale",
"gpl",
"lgpl",
"agpl",
"wtfpl",
"ofl",
"mit",
"bsd"
]
}
}
}).$mount('#root')