Compare commits
14 Commits
b05b31b5ce
...
main
Author | SHA1 | Date | |
---|---|---|---|
9969572358 | |||
2bd968cfba | |||
9b8474efb9 | |||
f6d44f88ca | |||
56ab16c018 | |||
58e03fd344 | |||
fd0c53940e | |||
390a6af594 | |||
af73a7c7ec | |||
cde23aea5a | |||
034859d38e | |||
51858c5ded | |||
b1864c83a5 | |||
9f16ea2e76 |
9
.fleet/run.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"type": "command",
|
||||
"name": "Command configuration",
|
||||
"command":
|
||||
}
|
||||
]
|
||||
}
|
5
.gitignore
vendored
@ -1,4 +1,7 @@
|
||||
venv
|
||||
dist
|
||||
feedback
|
||||
backup
|
||||
backup
|
||||
*.sh
|
||||
*.zip
|
||||
*.JPG
|
||||
|
279
app.py
@ -1,23 +1,19 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import csv
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
from jinja2 import Environment, PackageLoader, select_autoescape
|
||||
import frontmatter
|
||||
from slugify import slugify
|
||||
import pypandoc
|
||||
|
||||
import shutil
|
||||
import subprocess
|
||||
import xml.etree.ElementTree as ET
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
import frontmatter
|
||||
import pypandoc
|
||||
from jinja2 import Environment, PackageLoader, select_autoescape
|
||||
from slugify import slugify
|
||||
|
||||
# TODO make newsletter URL's absolute to klank.school
|
||||
env = Environment(
|
||||
loader=PackageLoader("src"),
|
||||
autoescape=select_autoescape()
|
||||
)
|
||||
env = Environment(loader=PackageLoader("src"), autoescape=select_autoescape())
|
||||
|
||||
CONTENT_D = os.path.abspath("src/content")
|
||||
OUTPUT_D = "dist"
|
||||
@ -25,14 +21,21 @@ OUT_ASSETS = "dist/assets"
|
||||
SRC_ASSETS = "src/assets"
|
||||
documents = {}
|
||||
now = datetime.now()
|
||||
word_count = 0
|
||||
|
||||
# Utils
|
||||
def getParam(params, index):
|
||||
if len(params) > index:
|
||||
return params[index]
|
||||
else:
|
||||
return False
|
||||
def imageSpread(params):
|
||||
global documents
|
||||
param = params.split(" ")
|
||||
print(param[1])
|
||||
for item in documents[param[0]]:
|
||||
print(item.get("filename"))
|
||||
|
||||
d = [item for item in documents[param[0]] if item.get("filename") == param[1]]
|
||||
print(d)
|
||||
template = env.select_template(["snippets/spread-images.jinja"])
|
||||
html = template.render(documents=documents, content=d[0], type=param[1])
|
||||
|
||||
return html
|
||||
|
||||
# jinja filter that can list documents
|
||||
def listDocuments(params):
|
||||
@ -42,43 +45,47 @@ def listDocuments(params):
|
||||
|
||||
return html
|
||||
|
||||
# jinja filter that can list events
|
||||
def listEvents(params):
|
||||
param = params.split(" ")
|
||||
tag = getParam(param, 1)
|
||||
|
||||
if "events" not in documents:
|
||||
return ""
|
||||
# Source: https://github.com/gandreadis/markdown-word-count
|
||||
def count_words_in_markdown(text):
|
||||
|
||||
events = []
|
||||
if tag:
|
||||
for event in documents["events"]:
|
||||
if tag in event["tags"]:
|
||||
events.append(event)
|
||||
else:
|
||||
events = documents["events"]
|
||||
# Comments
|
||||
text = re.sub(r"<!--(.*?)-->", "", text, flags=re.MULTILINE)
|
||||
# Tabs to spaces
|
||||
text = text.replace("\t", " ")
|
||||
# More than 1 space to 4 spaces
|
||||
text = re.sub(r"[ ]{2,}", " ", text)
|
||||
# Footnotes
|
||||
text = re.sub(r"^\[[^]]*\][^(].*", "", text, flags=re.MULTILINE)
|
||||
# Indented blocks of code
|
||||
text = re.sub(r"^( {4,}[^-*]).*", "", text, flags=re.MULTILINE)
|
||||
# Replace newlines with spaces for uniform handling
|
||||
text = text.replace("\n", " ")
|
||||
# Custom header IDs
|
||||
text = re.sub(r"{#.*}", "", text)
|
||||
# Remove images
|
||||
text = re.sub(r"!\[[^\]]*\]\([^)]*\)", "", text)
|
||||
# Remove HTML tags
|
||||
text = re.sub(r"</?[^>]*>", "", text)
|
||||
# Remove special characters
|
||||
text = re.sub(r"[#*`~\-–^=<>+|/:]", "", text)
|
||||
# Remove footnote references
|
||||
text = re.sub(r"\[[0-9]*\]", "", text)
|
||||
# Remove enumerations
|
||||
text = re.sub(r"[0-9#]*\.", "", text)
|
||||
|
||||
template = env.select_template(["snippets/list-events.jinja"])
|
||||
html = template.render(events=events, filter=param[0], tag=getParam(param, 1))
|
||||
return len(text.split())
|
||||
|
||||
return html
|
||||
|
||||
# jinja filter to make a slug out of a stirng
|
||||
def slugify_filter(value):
|
||||
return slugify(value)
|
||||
|
||||
# jinja filter for date formatting
|
||||
def prettydate(value, format='%d/%m/%Y'):
|
||||
def prettydate(value, format="%d/%m/%Y"):
|
||||
return datetime.fromtimestamp(int(value)).strftime(format)
|
||||
|
||||
|
||||
# jinja filter to replace shortcodes in HTML
|
||||
def shortcode_filter(value):
|
||||
|
||||
shortcode_callbacks = {
|
||||
"show": listDocuments,
|
||||
"events": listEvents
|
||||
}
|
||||
shortcode_callbacks = {"show": listDocuments, "showImages": imageSpread}
|
||||
|
||||
def shortcode_replacer(match):
|
||||
|
||||
@ -95,13 +102,15 @@ def shortcode_filter(value):
|
||||
|
||||
|
||||
env.filters["shortcode"] = shortcode_filter
|
||||
env.filters["slugify"] = slugify_filter
|
||||
env.filters["slugify"] = slugify
|
||||
env.filters["prettydate"] = prettydate
|
||||
|
||||
|
||||
# translate a single file into HTML
|
||||
def render_single_file(page, path, dist, name = False):
|
||||
def render_single_file(path, dist, name=False):
|
||||
name = Path(path).stem
|
||||
template = env.select_template([f"{name}.jinja", "post.jinja"])
|
||||
page = get_page_data(path)
|
||||
html = template.render(documents=documents, page=page, name=name)
|
||||
|
||||
if not os.path.exists(dist):
|
||||
@ -113,76 +122,67 @@ def render_single_file(page, path, dist, name = False):
|
||||
|
||||
# find a pre-rendered page
|
||||
def get_existing_page(path, slug):
|
||||
stem = Path(path).stem;
|
||||
folder = os.path.basename(os.path.dirname(path))
|
||||
stem = Path(path).stem
|
||||
folder = os.path.basename(os.path.dirname(path))
|
||||
|
||||
if stem == "index" and folder != "content":
|
||||
folder = Path(path).parent.parent.name
|
||||
|
||||
if slug in documents:
|
||||
return documents[slug]
|
||||
|
||||
|
||||
if folder == "content":
|
||||
return False
|
||||
|
||||
for doc in documents[folder]:
|
||||
if doc:
|
||||
if doc["slug"] == slug:
|
||||
return doc
|
||||
|
||||
|
||||
return [item for item in documents[folder] if item.get("slug") == slug]
|
||||
|
||||
return False
|
||||
|
||||
# build a slug including the folder
|
||||
def get_slug(path, folder, filename):
|
||||
if folder == "content":
|
||||
return slugify(filename)
|
||||
else:
|
||||
return slugify(f"{folder}/{filename}")
|
||||
|
||||
# compile markdown into cited HTML
|
||||
def get_page_data(path, isPreload=False):
|
||||
def get_page_data(path):
|
||||
global word_count
|
||||
|
||||
filename = Path(path).stem
|
||||
folder = os.path.basename(os.path.dirname(path))
|
||||
slug = get_slug(path, folder, filename)
|
||||
|
||||
prerendered = get_existing_page(path, slug)
|
||||
folder = Path(path).parent.name
|
||||
slug = slugify(filename) if folder == "content" else slugify(f"{folder}/{filename}")
|
||||
|
||||
if prerendered:
|
||||
if prerendered := get_existing_page(path, slug):
|
||||
return prerendered
|
||||
|
||||
page = frontmatter.load(path)
|
||||
page['slug'] = slug
|
||||
page.filename = filename
|
||||
page.folder = folder
|
||||
|
||||
latex = page.content
|
||||
page["slug"] = slug
|
||||
page["filename"] = filename
|
||||
page["folder"] = folder
|
||||
|
||||
if "start_datetime" in page:
|
||||
page["has_passed"] = datetime.fromtimestamp(page["start_datetime"]) < now
|
||||
|
||||
|
||||
if "`include" in page.content:
|
||||
latex = pypandoc.convert_text(
|
||||
content = page.content
|
||||
|
||||
if ".include" in page.content:
|
||||
print("doing an include!")
|
||||
content = pypandoc.convert_text(
|
||||
page.content,
|
||||
to='md',
|
||||
format='md',
|
||||
extra_args=[
|
||||
"--lua-filter=include-files.lua"
|
||||
])
|
||||
to="md",
|
||||
format="md",
|
||||
extra_args=["--lua-filter=include-files.lua"],
|
||||
)
|
||||
|
||||
page.body = pypandoc.convert_text(
|
||||
latex,
|
||||
content,
|
||||
to="html",
|
||||
format="md",
|
||||
extra_args=[
|
||||
"--citeproc",
|
||||
"--bibliography=library.bib",
|
||||
"--csl=apa.csl",
|
||||
])
|
||||
"--csl=harvard-cite-them-right.csl",
|
||||
],
|
||||
)
|
||||
|
||||
return page
|
||||
|
||||
|
||||
# Do stuff to the circuit's pcb
|
||||
def save_circuit_svg(filepath, outpath, name):
|
||||
|
||||
@ -193,18 +193,11 @@ def save_circuit_svg(filepath, outpath, name):
|
||||
width_px = float(root.get("width", 0))
|
||||
height_px = float(root.get("height", 0))
|
||||
|
||||
DPI = 300
|
||||
|
||||
# Convert px to mm
|
||||
width_mm = (width_px * 25.4) / DPI > 15
|
||||
height_mm = (height_px * 25.4) / DPI
|
||||
|
||||
# Set new width/height in mm
|
||||
root.set("width", f"{width_px}mm")
|
||||
root.set("height", f"{height_px}mm")
|
||||
|
||||
os.makedirs(outpath, exist_ok = True)
|
||||
|
||||
os.makedirs(outpath, exist_ok=True)
|
||||
|
||||
tree.write(f"{outpath}/{name}")
|
||||
|
||||
@ -212,28 +205,32 @@ def save_circuit_svg(filepath, outpath, name):
|
||||
# combine HTML & data with Jinja templates
|
||||
def render_posts(path, output_path=OUTPUT_D):
|
||||
name = Path(path).stem
|
||||
|
||||
for filename in sorted(os.listdir(path)):
|
||||
file_path = os.path.join(path, filename)
|
||||
|
||||
if filename.endswith(".md"):
|
||||
print("is md", filename)
|
||||
page = get_page_data(file_path)
|
||||
render_single_file(page, file_path, f"{output_path}/{name}", name)
|
||||
elif os.path.isdir(file_path):
|
||||
for filename in sorted(os.listdir(path)):
|
||||
file_path = Path(path) / filename
|
||||
|
||||
if file_path.suffix == ".md":
|
||||
render_single_file(file_path, f"{output_path}/{name}")
|
||||
elif file_path.is_dir():
|
||||
render_posts(file_path, f"{output_path}/{name}")
|
||||
elif filename.endswith(".svg"):
|
||||
elif file_path.suffix == ".svg":
|
||||
save_circuit_svg(file_path, f"{output_path}/{name}", filename)
|
||||
elif Path(filename).suffix in [".jpeg", ".mp3", ".jpg", ".png"]:
|
||||
os.makedirs(f"{output_path}/{name}", exist_ok = True)
|
||||
elif file_path.suffix in {".jpeg", ".mp3", ".jpg", ".png", ".JPG", ".webp"}:
|
||||
os.makedirs(f"{output_path}/{name}", exist_ok=True)
|
||||
shutil.copyfile(file_path, f"{output_path}/{name}/{filename}")
|
||||
else:
|
||||
print("doing nothing with", filename)
|
||||
|
||||
|
||||
# Pre-load before compiling
|
||||
def preload_documents():
|
||||
print("preload any needed data")
|
||||
documents["meta"] = {"now": now.strftime("%d %B %Y")}
|
||||
global documents
|
||||
|
||||
version = (
|
||||
subprocess.check_output(["git", "rev-list", "--count", "HEAD"])
|
||||
.decode("utf-8")
|
||||
.strip()
|
||||
)
|
||||
|
||||
documents["meta"] = {"now": now.strftime("%d %B %Y - %H:%M:%S"), "version": version}
|
||||
|
||||
for subdir in os.listdir(CONTENT_D):
|
||||
path = os.path.join(CONTENT_D, subdir)
|
||||
@ -243,57 +240,67 @@ def preload_documents():
|
||||
documents.setdefault(name, [])
|
||||
|
||||
for filename in sorted(os.listdir(path)):
|
||||
print(filename)
|
||||
cpath = os.path.join(path, filename)
|
||||
if filename.endswith(".md"):
|
||||
documents[name].append(get_page_data(cpath, isPreload=True))
|
||||
documents[name].append(get_page_data(cpath))
|
||||
elif os.path.isdir(cpath):
|
||||
documents[name].append(get_page_data(os.path.join(cpath, "index.md"), isPreload=True))
|
||||
documents[name].append(
|
||||
get_page_data(os.path.join(cpath, "index.md"))
|
||||
)
|
||||
|
||||
elif Path(path).suffix == '.md':
|
||||
documents[Path(path).stem] = get_page_data(path, isPreload=True)
|
||||
|
||||
|
||||
def copy_assets():
|
||||
if os.path.exists(OUT_ASSETS):
|
||||
shutil.rmtree(OUT_ASSETS)
|
||||
|
||||
shutil.copytree(SRC_ASSETS, OUT_ASSETS)
|
||||
elif Path(path).suffix == ".md":
|
||||
documents[Path(path).stem] = get_page_data(path)
|
||||
|
||||
|
||||
def get_inventory():
|
||||
global documents
|
||||
|
||||
with open("src/content/component-inventory.csv") as f:
|
||||
documents['inventory'] = []
|
||||
for line in csv.DictReader(
|
||||
f,
|
||||
fieldnames=(
|
||||
'ID',
|
||||
'Amount',
|
||||
'Name',
|
||||
'Value',
|
||||
'type',
|
||||
'Date',
|
||||
'Where',
|
||||
'Mounting type')):
|
||||
|
||||
for line in csv.DictReader(f, fieldnames=('ID', 'Amount', 'Name', 'Value', 'type', 'Date', 'Where', 'Mounting type')):
|
||||
documents['inventory'].append(line)
|
||||
|
||||
|
||||
def get_wordcount():
|
||||
global word_count
|
||||
word_count += count_words_in_markdown(documents["thesis"].body)
|
||||
|
||||
for section in ["chapters", "components", "recipes"]:
|
||||
for c in documents[section]:
|
||||
if section == "recipes" or c["filename"] != "index":
|
||||
count = count_words_in_markdown(c.body)
|
||||
print(f"{c['filename']}: has {count} words")
|
||||
word_count += count
|
||||
|
||||
print(f"word count: { word_count} ")
|
||||
documents["meta"]["count"] = word_count
|
||||
|
||||
|
||||
def main():
|
||||
print("....Start putting together a new document....")
|
||||
get_inventory()
|
||||
preload_documents()
|
||||
get_wordcount()
|
||||
|
||||
for subdir in os.listdir(CONTENT_D):
|
||||
path = os.path.join(CONTENT_D, subdir)
|
||||
|
||||
if os.path.isdir(path):
|
||||
print("rendering posts", path)
|
||||
print("Compile: an entire directory", Path(path).name)
|
||||
render_posts(path)
|
||||
elif Path(path).suffix == '.md':
|
||||
print("rendering single", path);
|
||||
render_single_file(get_page_data(path), path, OUTPUT_D)
|
||||
elif Path(path).suffix == ".md":
|
||||
print("Compile: single page", Path(path).name)
|
||||
render_single_file(path, OUTPUT_D)
|
||||
elif Path(path).suffix in [".csv"]:
|
||||
print("not compiling this file!")
|
||||
print("Compile: not compiling ", Path(path).name)
|
||||
|
||||
if os.path.exists(OUT_ASSETS):
|
||||
shutil.rmtree(OUT_ASSETS)
|
||||
|
||||
shutil.copytree(SRC_ASSETS, OUT_ASSETS)
|
||||
|
||||
print(f"total words: {word_count}")
|
||||
|
||||
copy_assets()
|
||||
|
||||
main()
|
||||
|
321
harvard-cite-them-right.csl
Normal file
@ -0,0 +1,321 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-GB">
|
||||
<info>
|
||||
<title>Cite Them Right 12th edition - Harvard</title>
|
||||
<id>http://www.zotero.org/styles/harvard-cite-them-right</id>
|
||||
<link href="http://www.zotero.org/styles/harvard-cite-them-right" rel="self"/>
|
||||
<link href="http://www.zotero.org/styles/harvard-cite-them-right-11th-edition" rel="template"/>
|
||||
<link href="http://www.citethemrightonline.com/" rel="documentation"/>
|
||||
<author>
|
||||
<name>Patrick O'Brien</name>
|
||||
</author>
|
||||
<category citation-format="author-date"/>
|
||||
<category field="generic-base"/>
|
||||
<summary>Harvard according to Cite Them Right, 11th edition.</summary>
|
||||
<updated>2022-06-27T11:10:37+00:00</updated>
|
||||
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
||||
</info>
|
||||
<locale xml:lang="en-GB">
|
||||
<terms>
|
||||
<term name="editor" form="short">
|
||||
<single>ed.</single>
|
||||
<multiple>eds</multiple>
|
||||
</term>
|
||||
<term name="editortranslator" form="verb">edited and translated by</term>
|
||||
<term name="edition" form="short">edn.</term>
|
||||
</terms>
|
||||
</locale>
|
||||
<macro name="editor">
|
||||
<choose>
|
||||
<if type="chapter paper-conference" match="any">
|
||||
<names variable="container-author" delimiter=", " suffix=", ">
|
||||
<name and="text" initialize-with=". " delimiter=", " sort-separator=", " name-as-sort-order="all"/>
|
||||
</names>
|
||||
<choose>
|
||||
<if variable="container-author" match="none">
|
||||
<names variable="editor translator" delimiter=", ">
|
||||
<name and="text" initialize-with="."/>
|
||||
<label form="short" prefix=" (" suffix=")"/>
|
||||
</names>
|
||||
</if>
|
||||
</choose>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="secondary-contributors">
|
||||
<choose>
|
||||
<if type="chapter paper-conference" match="none">
|
||||
<names variable="editor translator" delimiter=". ">
|
||||
<label form="verb" text-case="capitalize-first" suffix=" "/>
|
||||
<name and="text" initialize-with="."/>
|
||||
</names>
|
||||
</if>
|
||||
<else-if variable="container-author" match="any">
|
||||
<names variable="editor translator" delimiter=". ">
|
||||
<label form="verb" text-case="capitalize-first" suffix=" "/>
|
||||
<name and="text" initialize-with=". " delimiter=", "/>
|
||||
</names>
|
||||
</else-if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="author">
|
||||
<names variable="author">
|
||||
<name and="text" delimiter-precedes-last="never" initialize-with="." name-as-sort-order="all"/>
|
||||
<label form="short" prefix=" (" suffix=")"/>
|
||||
<et-al font-style="italic"/>
|
||||
<substitute>
|
||||
<names variable="editor"/>
|
||||
<names variable="translator"/>
|
||||
<choose>
|
||||
<if type="article-newspaper article-magazine" match="any">
|
||||
<text variable="container-title" text-case="title" font-style="italic"/>
|
||||
</if>
|
||||
<else>
|
||||
<text macro="title"/>
|
||||
</else>
|
||||
</choose>
|
||||
</substitute>
|
||||
</names>
|
||||
</macro>
|
||||
<macro name="author-short">
|
||||
<names variable="author">
|
||||
<name form="short" and="text" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>
|
||||
<et-al font-style="italic"/>
|
||||
<substitute>
|
||||
<names variable="editor"/>
|
||||
<names variable="translator"/>
|
||||
<choose>
|
||||
<if type="article-newspaper article-magazine" match="any">
|
||||
<text variable="container-title" text-case="title" font-style="italic"/>
|
||||
</if>
|
||||
<else>
|
||||
<text macro="title"/>
|
||||
</else>
|
||||
</choose>
|
||||
</substitute>
|
||||
</names>
|
||||
</macro>
|
||||
<macro name="access">
|
||||
<choose>
|
||||
<if variable="DOI">
|
||||
<group delimiter=": ">
|
||||
<text term="available at" text-case="capitalize-first"/>
|
||||
<text variable="DOI" prefix="https://doi.org/"/>
|
||||
</group>
|
||||
</if>
|
||||
<else-if variable="URL">
|
||||
<text term="available at" suffix=": " text-case="capitalize-first"/>
|
||||
<text variable="URL"/>
|
||||
<group prefix=" (" delimiter=": " suffix=")">
|
||||
<text term="accessed" text-case="capitalize-first"/>
|
||||
<date form="text" variable="accessed">
|
||||
<date-part name="day"/>
|
||||
<date-part name="month"/>
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</group>
|
||||
</else-if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="number-volumes">
|
||||
<choose>
|
||||
<if variable="volume" match="none">
|
||||
<group delimiter=" " prefix="(" suffix=")">
|
||||
<text variable="number-of-volumes"/>
|
||||
<label variable="volume" form="short" strip-periods="true"/>
|
||||
</group>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="title">
|
||||
<choose>
|
||||
<if type="bill book legal_case legislation motion_picture report song thesis webpage graphic" match="any">
|
||||
<group delimiter=". ">
|
||||
<group delimiter=" ">
|
||||
<group delimiter=" ">
|
||||
<text variable="title" font-style="italic"/>
|
||||
<text variable="medium" prefix="[" suffix="]"/>
|
||||
</group>
|
||||
<text macro="number-volumes"/>
|
||||
</group>
|
||||
<text macro="edition"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="title" form="long" quotes="true"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="publisher">
|
||||
<choose>
|
||||
<if type="thesis">
|
||||
<group delimiter=". ">
|
||||
<text variable="genre"/>
|
||||
<text variable="publisher"/>
|
||||
</group>
|
||||
</if>
|
||||
<else-if type="report">
|
||||
<group delimiter=". ">
|
||||
<group delimiter=" ">
|
||||
<text variable="genre"/>
|
||||
<text variable="number"/>
|
||||
</group>
|
||||
<group delimiter=": ">
|
||||
<text variable="publisher-place"/>
|
||||
<text variable="publisher"/>
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="article-journal article-newspaper article-magazine" match="none">
|
||||
<group delimiter=" ">
|
||||
<group delimiter=", ">
|
||||
<choose>
|
||||
<if type="speech" variable="event" match="any">
|
||||
<text variable="event" font-style="italic"/>
|
||||
</if>
|
||||
</choose>
|
||||
<group delimiter=": ">
|
||||
<text variable="publisher-place"/>
|
||||
<text variable="publisher"/>
|
||||
</group>
|
||||
</group>
|
||||
<group prefix="(" suffix=")" delimiter=", ">
|
||||
<text variable="collection-title"/>
|
||||
<text variable="collection-number"/>
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="year-date">
|
||||
<choose>
|
||||
<if variable="issued">
|
||||
<date variable="issued">
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
<text variable="year-suffix"/>
|
||||
</if>
|
||||
<else>
|
||||
<text term="no date"/>
|
||||
<text variable="year-suffix" prefix=" "/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="locator">
|
||||
<choose>
|
||||
<if type="article-journal">
|
||||
<text variable="volume"/>
|
||||
<text variable="issue" prefix="(" suffix=")"/>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="published-date">
|
||||
<choose>
|
||||
<if type="article-newspaper article-magazine post-weblog speech" match="any">
|
||||
<date variable="issued">
|
||||
<date-part name="day" suffix=" "/>
|
||||
<date-part name="month" form="long"/>
|
||||
</date>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="pages">
|
||||
<choose>
|
||||
<if type="chapter paper-conference article-journal article article-magazine article-newspaper book review review-book report" match="any">
|
||||
<group delimiter=" ">
|
||||
<label variable="page" form="short"/>
|
||||
<text variable="page"/>
|
||||
</group>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="container-title">
|
||||
<choose>
|
||||
<if variable="container-title">
|
||||
<group delimiter=". ">
|
||||
<group delimiter=" ">
|
||||
<text variable="container-title" font-style="italic"/>
|
||||
<choose>
|
||||
<if type="article article-journal" match="any">
|
||||
<choose>
|
||||
<if match="none" variable="page volume">
|
||||
<text value="Preprint" prefix="[" suffix="]"/>
|
||||
</if>
|
||||
</choose>
|
||||
</if>
|
||||
</choose>
|
||||
</group>
|
||||
<text macro="edition"/>
|
||||
</group>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="edition">
|
||||
<choose>
|
||||
<if is-numeric="edition">
|
||||
<group delimiter=" ">
|
||||
<number variable="edition" form="ordinal"/>
|
||||
<text term="edition" form="short" strip-periods="true"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="edition"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="container-prefix">
|
||||
<choose>
|
||||
<if type="chapter paper-conference" match="any">
|
||||
<text term="in"/>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year">
|
||||
<sort>
|
||||
<key macro="year-date"/>
|
||||
</sort>
|
||||
<layout prefix="(" suffix=")" delimiter="; ">
|
||||
<group delimiter=", ">
|
||||
<group delimiter=", ">
|
||||
<text macro="author-short"/>
|
||||
<text macro="year-date"/>
|
||||
</group>
|
||||
<group>
|
||||
<label variable="locator" form="short" suffix=" "/>
|
||||
<text variable="locator"/>
|
||||
</group>
|
||||
</group>
|
||||
</layout>
|
||||
</citation>
|
||||
<bibliography and="text" et-al-min="4" et-al-use-first="1">
|
||||
<sort>
|
||||
<key macro="author"/>
|
||||
<key macro="year-date"/>
|
||||
<key variable="title"/>
|
||||
</sort>
|
||||
<layout suffix=".">
|
||||
<group delimiter=". ">
|
||||
<group delimiter=" ">
|
||||
<text macro="author"/>
|
||||
<text macro="year-date" prefix="(" suffix=")"/>
|
||||
<group delimiter=", ">
|
||||
<text macro="title"/>
|
||||
<group delimiter=" ">
|
||||
<text macro="container-prefix"/>
|
||||
<text macro="editor"/>
|
||||
<text macro="container-title"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<text macro="secondary-contributors"/>
|
||||
<text macro="publisher"/>
|
||||
</group>
|
||||
<group delimiter=", " prefix=", ">
|
||||
<text macro="locator"/>
|
||||
<text macro="published-date"/>
|
||||
<text macro="pages"/>
|
||||
</group>
|
||||
<text macro="access" prefix=". "/>
|
||||
</layout>
|
||||
</bibliography>
|
||||
</style>
|
738
library.bib
@ -1,12 +1,12 @@
|
||||
|
||||
|
||||
const dialog = document.querySelector("dialog");
|
||||
|
||||
const closeDialog = (e) => {
|
||||
e.stopPropagation();
|
||||
console.log("close")
|
||||
dialog.close();
|
||||
document.body.removeEventListener("click", closeDialog);
|
||||
}
|
||||
|
||||
const showLightbox = (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
@ -18,7 +18,5 @@ const showLightbox = (e) => {
|
||||
document.body.addEventListener("click", closeDialog, false);
|
||||
}
|
||||
document.querySelectorAll("article img").forEach((img) => {
|
||||
console.log(img);
|
||||
img.addEventListener("click", showLightbox);
|
||||
})
|
||||
|
||||
|
BIN
src/assets/chapters/bastl_kit.webp
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
src/assets/chapters/toolkit.jpeg
Normal file
After Width: | Height: | Size: 897 KiB |
BIN
src/assets/chapters/toolkit.webp
Normal file
After Width: | Height: | Size: 210 KiB |
BIN
src/assets/components/Capacitors.JPG
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
src/assets/components/PCB_1.JPG
Normal file
After Width: | Height: | Size: 946 KiB |
BIN
src/assets/components/PCB_2.jpg
Normal file
After Width: | Height: | Size: 309 KiB |
BIN
src/assets/components/Resistors.JPG
Normal file
After Width: | Height: | Size: 445 KiB |
BIN
src/assets/components/TransistorsED.JPG
Normal file
After Width: | Height: | Size: 2.3 MiB |
BIN
src/assets/components/chip.JPG
Normal file
After Width: | Height: | Size: 840 KiB |
BIN
src/assets/font/FiraSans/FiraSans-Bold.eot
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Bold.otf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Bold.ttf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Bold.woff
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Bold.woff2
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Book.eot
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Book.otf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Book.ttf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Book.woff
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Book.woff2
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Heavy.eot
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Heavy.otf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Heavy.ttf
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Heavy.woff
Normal file
BIN
src/assets/font/FiraSans/FiraSans-Heavy.woff2
Normal file
4
src/assets/paged.polyfill.js
Normal file
3
src/assets/schematics/Antenna-COM-Aerial.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M74.88 150V12.5m.12 50 37.5-50M75 62.5l-37.5-50"/>
|
||||
</svg>
|
After Width: | Height: | Size: 200 B |
3
src/assets/schematics/Antenna-COM-Dipole.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M49.5 150 50 50H12.5m87.25 100L100 50h37.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 195 B |
3
src/assets/schematics/Antenna-COM-Loop.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M50 150v-37.5L12.5 75 75 12.5 137.5 75 100 112.5V150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 205 B |
6
src/assets/schematics/Audio-COM-Buzzer.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M25 12.5h100s0 50-50 50-50-50-50-50Z"/>
|
||||
<path d="M0 74.69h50V56.25m50 0V75h50"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 259 B |
3
src/assets/schematics/Audio-COM-Loudspeaker.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M37.5 37.5H75l50-31.25v137.5L75 112.5H37.5v-75zm37.5 0v75M0 49.94h37.5M0 100h37.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 234 B |
6
src/assets/schematics/Audio-IEC-Microphone.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<circle cx="75" cy="75" r="50"/>
|
||||
<path d="M0 49.94h31.25M0 100h31.25M125 18.75v112.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 257 B |
3
src/assets/schematics/Audio-IEEE-Microphone.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M118.75 12.5v125S50 137.5 50 75s68.75-62.5 68.75-62.5ZM0 49.66l56.25.34M0 100.28l56.25-.28"/>
|
||||
</svg>
|
After Width: | Height: | Size: 243 B |
3
src/assets/schematics/Capacitor-COM-Feedthrough.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.5h150M25 50s25 12.5 50 12.5S125 50 125 50M25 100s25-12.5 50-12.5 50 12.5 50 12.5M75 87.5V150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 251 B |
3
src/assets/schematics/Capacitor-IEC-NonPolarized.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62"/>
|
||||
</svg>
|
After Width: | Height: | Size: 200 B |
3
src/assets/schematics/Capacitor-IEC-Polarized.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62m65.75-56h-25m12.5-12.5v25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 226 B |
3
src/assets/schematics/Capacitor-IEC-Trimmer.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62M25 104.25l98-57.5m8.25 15.75L112.5 31.25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 241 B |
4
src/assets/schematics/Capacitor-IEC-Variable.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62m-40.5.25 84.79-52.99"/>
|
||||
<path d="M113.3 65.76 125 43.75l-24.91.87 13.21 21.14z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 283 B |
3
src/assets/schematics/Capacitor-IEEE-NonPolarized.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 74.97H84.5M0 75.25h66.5M54 44s12.5 12.25 12.5 31S54 106 54 106m30.5-62v62"/>
|
||||
</svg>
|
After Width: | Height: | Size: 231 B |
3
src/assets/schematics/Capacitor-IEEE-Polarized.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 74.97H84.5M0 75.25h66.5M54 44s12.5 12.25 12.5 31S54 106 54 106m30.5-62v62m46.75-56h-25m12.5-12.5v25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 257 B |
6
src/assets/schematics/Diode-COM-LED.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50m-50-43.75 18.75-18.75"/>
|
||||
<path d="m122.49 19.34 3.87-14.45-14.45 3.87 10.58 10.58z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m118.75 50 18.75-18.75"/>
|
||||
<path d="m141.24 38.09 3.87-14.45-14.45 3.87 10.58 10.58z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 470 B |
7
src/assets/schematics/Diode-COM-Laser.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50M62.5 40.5V13.98"/>
|
||||
<path d="M69.98 16.17 62.5 3.22l-7.48 12.95h14.96z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M87.5 40.5V13.98"/>
|
||||
<path d="M94.98 16.17 87.5 3.22l-7.48 12.95h14.96z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M112.5 40.75v68.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 544 B |
6
src/assets/schematics/Diode-COM-Photodiode.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50m-12.5-43.75L118.75 50"/>
|
||||
<path d="m115.01 43.16-3.87 14.45 14.45-3.87-10.58-10.58z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M118.75 12.5 100 31.25"/>
|
||||
<path d="m96.26 24.41-3.87 14.45 14.45-3.87-10.58-10.58z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 469 B |
3
src/assets/schematics/Diode-COM-Shockley.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M100 37.5v75m0-37.5L43.75 40.75v71.75M0 75h150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 199 B |
6
src/assets/schematics/Diode-COM-Shottky.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
|
||||
<path d="M87.5 97v12.5H100v-69h12.5V53"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 271 B |
3
src/assets/schematics/Diode-COM-Standard.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50"/>
|
||||
</svg>
|
After Width: | Height: | Size: 213 B |
6
src/assets/schematics/Diode-COM-Tunnel.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
|
||||
<path d="M87.5 109.25H100v-68.5H87.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 269 B |
3
src/assets/schematics/Diode-COM-Varicap.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m92.75 75-50 31.25v-62.5l50 31.25zm-50 0H0m108.25 0H150m-54.25 37.5v-75m12.5 75v-75"/>
|
||||
</svg>
|
After Width: | Height: | Size: 236 B |
6
src/assets/schematics/Diode-COM-Zener.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
|
||||
<path d="M112.5 109.5 100 100V50l-12.5-9.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 275 B |
3
src/assets/schematics/Fuse-IEC.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.88 25 75m0-25h100v50H25zm100 25h25M43.75 50v50m62.5-50v50"/>
|
||||
</svg>
|
After Width: | Height: | Size: 216 B |
3
src/assets/schematics/Fuse-IEEE-Alt.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 75.25 25 75s0-25 25-25 25 25 25 25 0 25 25 25 25-25 25-25h25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 216 B |
3
src/assets/schematics/Fuse-IEEE.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.88h150M25 50h100v50H25z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 182 B |
6
src/assets/schematics/Ground-COM-Chassis.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M56.25 125 75 75h-.31V0"/>
|
||||
<path d="m25 125 18.75-50h62.5L87.5 125"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 248 B |
3
src/assets/schematics/Ground-COM-General.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M75 0v75m-50 0h100m-56.25 50h12.5M50 100h50"/>
|
||||
</svg>
|
After Width: | Height: | Size: 196 B |
3
src/assets/schematics/Ground-COM-Signal.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M75 0v62.5m-50 0h100L75 125 25 62.5z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 189 B |
3
src/assets/schematics/IC-COM-Comparator.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 25v100l100-50L25 25zm0 25H0m125 25h25M0 100h25m9.5-47H53m-9.25-9.25v18.5M34.5 97H53"/>
|
||||
</svg>
|
After Width: | Height: | Size: 240 B |
8
src/assets/schematics/IC-COM-FlipFlop-ClockedD.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
|
||||
<path d="M37.5 40.79H43a8.67 8.67 0 0 1 2.84.35 5 5 0 0 1 2.25 1.7 8.56 8.56 0 0 1 1.42 3 16.43 16.43 0 0 1 .49 4.35 14.62 14.62 0 0 1-.46 3.93A8.69 8.69 0 0 1 48 57.39a5.17 5.17 0 0 1-2.12 1.47 7.44 7.44 0 0 1-2.66.39H37.5Zm3 3.12v12.23h2.25a6.53 6.53 0 0 0 1.83-.14 2.53 2.53 0 0 0 1.21-.77 4.06 4.06 0 0 0 .79-1.78 14.31 14.31 0 0 0 .31-3.45 13.2 13.2 0 0 0-.31-3.29 4.48 4.48 0 0 0-.85-1.71 2.7 2.7 0 0 0-1.4-.87 10.82 10.82 0 0 0-2.47-.18Zm27.75-6.38 3.14-.34a4.57 4.57 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.35-.75 2.32 2.32 0 0 0 .77-1.75 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.24 8.24 0 0 1-3.62-1.79 5 5 0 0 1-1.47-3.64 5.1 5.1 0 0 1 .69-2.59 4.49 4.49 0 0 1 2-1.84 7.19 7.19 0 0 1 3.14-.63 6.19 6.19 0 0 1 4.53 1.5 5.55 5.55 0 0 1 1.6 4l-3.23.16a3.2 3.2 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.37 1.37 0 0 0-.52 1.13 1.47 1.47 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21 14.32 14.32 0 0 1 3.48 1.3 4.74 4.74 0 0 1 1.77 1.84 5.94 5.94 0 0 1 .64 2.89 5.86 5.86 0 0 1-.76 2.92 4.8 4.8 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.39 6.39 0 0 1-4.66-1.59 7.31 7.31 0 0 1-2.01-4.63Zm.5 87.47v-18.46h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.91 6 6 0 0 1-.92 3.43 4 4 0 0 1-2.75 1.71A7.06 7.06 0 0 1 78 118.4a21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57V125Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78 3 3 0 0 0 .29-1.39 2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1-.73 18.74 18.74 0 0 0-2-.06h-2.29Z"/>
|
||||
<path fill="none" stroke="#000" stroke-width="5" d="M75.28 0v12.5M74.72 150v-12.5"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 87.5 50 100l-25 12.5v-25z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
6
src/assets/schematics/IC-COM-FlipFlop-ClockedJK.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 62.5 50 75 25 87.5v-25zM0 74.53h25.06"/>
|
||||
<path d="M46.13 40.5h3.93v11.67a11.4 11.4 0 0 1-.42 3.52 5.12 5.12 0 0 1-2.08 2.59 7.23 7.23 0 0 1-4 1 6.11 6.11 0 0 1-4.46-1.53c-1-1-1.56-3.75-1.57-5.72h3.72a9.46 9.46 0 0 0 .49 3.07 2.16 2.16 0 0 0 1.95 1 2.21 2.21 0 0 0 1.86-.71 5.29 5.29 0 0 0 .55-3ZM37.56 109V90.5h2.8v8.2L46 90.5h3.76l-5.22 7.19L50.06 109h-3.62l-3.81-8.66-2.27 3.08V109Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
6
src/assets/schematics/IC-COM-FlipFlop-ClockedT.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 87.5 50 100l-25 12.5v-25z"/>
|
||||
<path d="M42.17 59.25V43.67H37.5V40.5H50v3.17h-4.66v15.58Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
6
src/assets/schematics/IC-COM-FlipFlop-GatedD.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
|
||||
<path d="M37.5 109.21V90.75h12.19v3.12h-8.87V98h8.25v3.11h-8.25v5H50v3.11Zm0-68.42H43a8.67 8.67 0 0 1 2.84.35 5 5 0 0 1 2.25 1.7 8.56 8.56 0 0 1 1.42 3 16.43 16.43 0 0 1 .49 4.35 14.62 14.62 0 0 1-.46 3.93A8.69 8.69 0 0 1 48 57.39a5.17 5.17 0 0 1-2.12 1.47 7.44 7.44 0 0 1-2.66.39H37.5Zm3 3.12v12.23h2.25a6.53 6.53 0 0 0 1.83-.14 2.53 2.53 0 0 0 1.21-.77 4.06 4.06 0 0 0 .79-1.78 14.31 14.31 0 0 0 .31-3.45 13.2 13.2 0 0 0-.31-3.29 4.48 4.48 0 0 0-.85-1.71 2.7 2.7 0 0 0-1.4-.87 10.82 10.82 0 0 0-2.47-.18Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
6
src/assets/schematics/IC-COM-FlipFlop-GatedSR.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66M37 53.05l3.14-.35a4.54 4.54 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.37-.75 2.32 2.32 0 0 0 .79-1.74 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.35 8.35 0 0 1-3.64-1.78 5 5 0 0 1-1.47-3.64 5.09 5.09 0 0 1 .67-2.59 4.47 4.47 0 0 1 2-1.83 7.19 7.19 0 0 1 3.15-.63A6.19 6.19 0 0 1 47.94 42a5.54 5.54 0 0 1 1.6 4l-3.23.16a3.15 3.15 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.35 1.35 0 0 0-.52 1.12 1.46 1.46 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21A14.32 14.32 0 0 1 47.59 49a4.67 4.67 0 0 1 1.77 1.84 6.32 6.32 0 0 1-.12 5.78 4.74 4.74 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.43 6.43 0 0 1-4.66-1.58A7.3 7.3 0 0 1 37 53.05Zm.5 56.2V90.79h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.95 6 6 0 0 1-.87 3.39 4 4 0 0 1-2.75 1.71 7.06 7.06 0 0 1 1.5 1.55 21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57v7.71Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78A3 3 0 0 0 46 96.2a2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1.07-.7 18.74 18.74 0 0 0-2-.06h-2.24Zm71.26 5.31 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 75H0"/>
|
||||
<path d="M37.48 84.31V65.85h12.19V69H40.8v4.09h8.25v3.11H40.8v5H50v3.11Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
9
src/assets/schematics/IC-COM-FlipFlop-SimpleSR.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
|
||||
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66M37 53l3.14-.34a4.57 4.57 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.37-.72 2.32 2.32 0 0 0 .79-1.75 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.24 8.24 0 0 1-3.64-1.79 5 5 0 0 1-1.47-3.64 5.1 5.1 0 0 1 .67-2.56 4.49 4.49 0 0 1 2-1.84 7.19 7.19 0 0 1 3.15-.63A6.19 6.19 0 0 1 47.94 42a5.55 5.55 0 0 1 1.6 4l-3.23.16a3.2 3.2 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.37 1.37 0 0 0-.52 1.13 1.47 1.47 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21 14.32 14.32 0 0 1 3.48 1.3 4.74 4.74 0 0 1 1.77 1.84 5.94 5.94 0 0 1 .57 2.87 5.86 5.86 0 0 1-.76 2.92 4.8 4.8 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.39 6.39 0 0 1-4.66-1.59A7.31 7.31 0 0 1 37 53Z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M34.5 34.25h18.75"/>
|
||||
<path d="M37.5 109.25V90.79h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.95 6 6 0 0 1-.87 3.39 4 4 0 0 1-2.75 1.71 7.06 7.06 0 0 1 1.5 1.55 21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57v7.71Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78A3 3 0 0 0 46 96.2a2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1.07-.7 18.74 18.74 0 0 0-2-.06h-2.24Z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M34.5 84.25h18.75"/>
|
||||
<path d="m111.57 103.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
3
src/assets/schematics/IC-COM-Logic-AND.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M31.25 37.5h25c18.75 0 56.25 0 56.25 37.5S75 112.5 56.25 112.5h-25ZM0 49.81h31.25M0 100.06h31.25M112.5 75H150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 262 B |
3
src/assets/schematics/IC-COM-Logic-Buffer.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5v75L112.5 75 25 37.5zM25 75H0m112.5 0H150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 202 B |
6
src/assets/schematics/IC-COM-Logic-Inverter.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M22 37.5v75L112.5 75 22 37.5zM22 75H0m137.75 0H150"/>
|
||||
<circle cx="128.13" cy="74.88" r="9.38"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 274 B |
6
src/assets/schematics/IC-COM-Logic-NAND.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M31.25 37.5h25c18.75 0 56.25 0 56.25 37.5S75 112.5 56.25 112.5h-25ZM0 49.81h31.25M0 100.06h31.25M134.5 75H150"/>
|
||||
<circle cx="124.88" cy="74.88" r="9.38"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 333 B |
6
src/assets/schematics/IC-COM-Logic-NOR.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m97-24.93H150"/>
|
||||
<circle cx="124.88" cy="75" r="9.38"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 373 B |
3
src/assets/schematics/IC-COM-Logic-OR.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m75-25.06H150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 305 B |
7
src/assets/schematics/IC-COM-Logic-XNOR.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m97-24.93H150"/>
|
||||
<circle cx="124.88" cy="75" r="9.38"/>
|
||||
<path d="M18.75 112.5s12.5-18.75 12.5-37.5-12.5-37.95-12.5-37.95"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 449 B |
6
src/assets/schematics/IC-COM-Logic-XOR.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m75-25.06H150"/>
|
||||
<path d="M18.75 113s12.5-18.75 12.5-37.5-12.5-38-12.5-38"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 394 B |
3
src/assets/schematics/IC-COM-OpAmp.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 25v100l100-50L25 25zm0 25H0m125 25h25M0 100h25m9.5-47H53m-9.25-9.25v18.5M34.5 97H53M74.69 0v50m.37 100v-50"/>
|
||||
</svg>
|
After Width: | Height: | Size: 263 B |
8
src/assets/schematics/IC-COM-Schmitt-Inverted.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M19 25v100l100-50L19 25zm0 50H0m137.5 0H150"/>
|
||||
<path d="M31.5 65.75h31.25V84.5"/>
|
||||
<path d="M78.5 84.5H47V65.75"/>
|
||||
<circle cx="131.5" cy="75" r="6.25"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 346 B |
7
src/assets/schematics/IC-COM-Schmitt.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M25 25v100l100-50L25 25zm0 50H0m125 0h25"/>
|
||||
<path d="M37.5 84.5h31.25V65.75"/>
|
||||
<path d="M84.5 65.75H53V84.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 297 B |
3
src/assets/schematics/Inductor-COM-Air.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 319 B |
3
src/assets/schematics/Inductor-COM-Ferrite-Bead.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m78.35 19.2 43.3 25-50 86.6-43.3-25zM0 75.13 45.75 75M150 75h-45.75"/>
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
3
src/assets/schematics/Inductor-COM-Magnetic.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150M12.5 43.75h125m-125-12.5h125"/>
|
||||
</svg>
|
After Width: | Height: | Size: 348 B |
6
src/assets/schematics/Inductor-COM-Tapped.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-width="5">
|
||||
<path stroke-linejoin="round" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
|
||||
<path stroke-miterlimit="10" d="M75 75v75m31.25-75v75"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 405 B |
5
src/assets/schematics/Inductor-COM-Variable.svg
Normal file
@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m25 100 85.65-64.24"/>
|
||||
<path d="M115.21 47.92 125 25l-24.75 2.98 14.96 19.94z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 483 B |
3
src/assets/schematics/Miscellaneous-COM-ADC.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m25 75.06 37.5-37.5H125v75H62.5L25 75.06zm-25-.37h25m100 .37h25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 216 B |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M50 25h50v100H50zM37.5 43.75v62.5m75-62.5v62.5M0 74.63h37.5m75 .37H150"/>
|
||||
</svg>
|
After Width: | Height: | Size: 223 B |
3
src/assets/schematics/Miscellaneous-COM-DAC.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m125 75.06-37.5-37.5H25v75h62.5l37.5-37.5zM0 74.69h25m100 .37h25"/>
|
||||
</svg>
|
After Width: | Height: | Size: 217 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<circle cx="75" cy="75" r="50"/>
|
||||
<path d="M0 75h50s0-25 25-25 25 25 25 25h50"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 249 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<circle cx="75" cy="75" r="50"/>
|
||||
<path d="M0 75.25h25M125 75h25M39.5 39.5l71 71m-71 0 71-71"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 264 B |
18
src/assets/schematics/Miscellaneous-COM-Optocoupler.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 62.5h25l-12.5 25-12.5-25zm-3 25h31M0 24.56l37.5.44v37.5M0 124.69l37.5.31V87.5M93.75 50v50M150 24.94l-37.5.06v25L93.75 62.5M150 124.88l-37.5.12v-25L93.75 87.5"/>
|
||||
<path d="m106.58 87.84-7.67 11.27 13.62.91-5.95-12.18z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M58.44 62.5h18.3"/>
|
||||
<path d="M74.55 69.98 87.5 62.5l-12.95-7.48v14.96z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M58.44 87.5h18.3"/>
|
||||
<path d="M74.55 94.98 87.5 87.5l-12.95-7.48v14.96z"/>
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M137.5 138.75v5h-5"/>
|
||||
<path stroke-dasharray="10.45 10.45" d="M122.05 143.75H22.73"/>
|
||||
<path d="M17.5 143.75h-5v-5"/>
|
||||
<path stroke-dasharray="9.81 9.81" d="M12.5 128.94V16.15"/>
|
||||
<path d="M12.5 11.25v-5h5"/>
|
||||
<path stroke-dasharray="10.45 10.45" d="M27.95 6.25h99.32"/>
|
||||
<path d="M132.5 6.25h5v5"/>
|
||||
<path stroke-dasharray="9.81 9.81" d="M137.5 21.06v112.79"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
6
src/assets/schematics/Miscellaneous-COM-Probe_Point.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<circle cx="75" cy="75" r="18.75"/>
|
||||
<path d="M0 75.19h56.25m37.5-.19H150"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 245 B |
14
src/assets/schematics/Relay-COM-COM-SPDT.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v25H25zM125 25h25M0 24.81h25M0 99.69h25"/>
|
||||
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 75.63H93.75"/>
|
||||
<path d="M93.75 78h12.5L100 87.5 93.75 78z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m37.25 104 75.25 8.5"/>
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M74.88 37.5V40"/>
|
||||
<path stroke-dasharray="4.9 4.9" d="M74.88 44.9v56.4"/>
|
||||
<path d="M74.88 103.75v2.5"/>
|
||||
</g>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 124.38H93.75"/>
|
||||
<path d="M93.75 122h12.5l-6.25-9.5-6.25 9.5z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 937 B |
11
src/assets/schematics/Relay-COM-COM-SPST-NC.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5h100v25H25zM125 50h25M0 49.81h25m125 50.07H93.75M0 99.69h25"/>
|
||||
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
|
||||
<path d="M93.75 102.25h12.5l-6.25 9.5-6.25-9.5z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m37.25 102 75.25 10.5"/>
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M75 62.5V65"/>
|
||||
<path stroke-dasharray="5.5 5.5" d="M75 70.5v30.25"/>
|
||||
<path d="M75 103.5v2.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 699 B |
11
src/assets/schematics/Relay-COM-COM-SPST-NO.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5h100v25H25zM125 50h25M0 49.81h25m125 50.07H93.75M0 99.69h25"/>
|
||||
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
|
||||
<path d="M93.75 102.25h12.5l-6.25 9.5-6.25-9.5z"/>
|
||||
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M37.25 104 100 137.5"/>
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M74.88 62.5V65"/>
|
||||
<path stroke-dasharray="5 5" d="M74.88 70v47.5"/>
|
||||
<path d="M74.88 120v2.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 698 B |
7
src/assets/schematics/Relay-IEC-SPDT.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M62.5 6.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50-.13 62.5 18.75"/>
|
||||
<path stroke-dasharray="5" d="M75 43.75v62.5"/>
|
||||
<path d="M100 106v18.75h50M150 75h-50"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 349 B |
7
src/assets/schematics/Relay-IEC-SPST-NC.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M62.5 31.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50 .12 62.5 12.5"/>
|
||||
<path stroke-dasharray="5" d="M75 68.75v37.5"/>
|
||||
<path d="M100 118.75V100h50"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 339 B |
6
src/assets/schematics/Relay-IEC-SPST-NO.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
|
||||
<path d="M62.5 31.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50 .12 50-18.75m0 18.75h50"/>
|
||||
<path stroke-dasharray="5" d="M75 68.75V87.5"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 310 B |
18
src/assets/schematics/Relay-IEEE-SPDT.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-width="5">
|
||||
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
|
||||
<g stroke-miterlimit="10">
|
||||
<circle cx="37.5" cy="99" r="6.25"/>
|
||||
<path d="M0 99.06h31.25"/>
|
||||
</g>
|
||||
<g stroke-miterlimit="10">
|
||||
<circle cx="112.5" cy="75" r="6.25"/>
|
||||
<path d="M150 74.94h-31.25"/>
|
||||
</g>
|
||||
<path stroke-miterlimit="10" d="m43.75 102.25 87.5 16.5"/>
|
||||
<g stroke-miterlimit="10">
|
||||
<circle cx="112.5" cy="125" r="6.25"/>
|
||||
<path d="M150 124.94h-31.25"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 859 B |
11
src/assets/schematics/Relay-IEEE-SPST-NC.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-width="5">
|
||||
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
|
||||
<g stroke-miterlimit="10">
|
||||
<circle cx="37.5" cy="99" r="6.25"/>
|
||||
<path d="M0 99.06h31.25"/>
|
||||
<circle cx="112.5" cy="99" r="6.25"/>
|
||||
<path d="M150 98.94h-31.25m-75 3.31 81.25 4"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 619 B |
11
src/assets/schematics/Relay-IEEE-SPST-NO.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
||||
<g fill="none" stroke="#000" stroke-width="5">
|
||||
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
|
||||
<g stroke-miterlimit="10">
|
||||
<circle cx="37.5" cy="99" r="6.25"/>
|
||||
<path d="M0 99.06h31.25"/>
|
||||
<circle cx="112.5" cy="99" r="6.25"/>
|
||||
<path d="M150 98.94h-31.25m-75 3.31 81.25 29"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 620 B |