<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=1920, initial-scale=1.0" />
<title>Document</title>
<!-- bootstrap -->
<link rel="stylesheet" href="css/bootstrap.min.css" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"
/>
<!-- Vanilla Datepicker CSS -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/vanillajs-datepicker@1.1.4/dist/css/datepicker.min.css"
/>
<script
type="text/javascript"
language="javascript"
src="https://code.jquery.com/jquery-3.5.1.js"
></script>
</head>
<body class="bg-light">
<main class="container">
<!-- HEADER -->
<div class="row">
<div class="col">
<nav class="navbar navbar-dark bg-dark navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#"
>Home</a
>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="navbarDropdown"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false"
>
Dropdown
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">Action</a></li>
<li>
<a class="dropdown-item" href="#">Another action</a>
</li>
<li><hr class="dropdown-divider" /></li>
<li>
<a class="dropdown-item" href="#"
>Something else here</a
>
</li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
<form class="d-flex">
<input
class="form-control me-2"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-success" type="submit">
Search
</button>
</form>
</div>
</div>
</nav>
<div
id="myCarousel"
class="carousel slide pointer-event"
data-bs-ride="carousel"
>
<div class="carousel-indicators">
<button
type="button"
data-bs-target="#myCarousel"
data-bs-slide-to="0"
class="active"
aria-label="Slide 1"
aria-current="true"
></button>
<button
type="button"
data-bs-target="#myCarousel"
data-bs-slide-to="1"
aria-label="Slide 2"
class=""
></button>
<button
type="button"
data-bs-target="#myCarousel"
data-bs-slide-to="2"
aria-label="Slide 3"
class=""
></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<svg xmlns="http://www.w3.org/2000/svg" width="100%">
<rect fill="#48A4FF" width="540" height="450" />
<defs>
<linearGradient
id="a"
gradientUnits="userSpaceOnUse"
x1="0"
x2="0"
y1="0"
y2="100%"
gradientTransform="rotate(70,800,394)"
>
<stop offset="0" stop-color="#48A4FF" />
<stop offset="1" stop-color="#FFA11F" />
</linearGradient>
<pattern
patternUnits="userSpaceOnUse"
id="b"
width="300"
height="250"
x="0"
y="0"
viewBox="0 0 1080 900"
>
<g fill-opacity="0.05">
<polygon fill="#444" points="90 150 0 300 180 300" />
<polygon points="90 150 180 0 0 0" />
<polygon fill="#AAA" points="270 150 360 0 180 0" />
<polygon fill="#DDD" points="450 150 360 300 540 300" />
<polygon fill="#999" points="450 150 540 0 360 0" />
<polygon points="630 150 540 300 720 300" />
<polygon fill="#DDD" points="630 150 720 0 540 0" />
<polygon fill="#444" points="810 150 720 300 900 300" />
<polygon fill="#FFF" points="810 150 900 0 720 0" />
<polygon
fill="#DDD"
points="990 150 900 300 1080 300"
/>
<polygon fill="#444" points="990 150 1080 0 900 0" />
<polygon fill="#DDD" points="90 450 0 600 180 600" />
<polygon points="90 450 180 300 0 300" />
<polygon fill="#666" points="270 450 180 600 360 600" />
<polygon fill="#AAA" points="270 450 360 300 180 300" />
<polygon fill="#DDD" points="450 450 360 600 540 600" />
<polygon fill="#999" points="450 450 540 300 360 300" />
<polygon fill="#999" points="630 450 540 600 720 600" />
<polygon fill="#FFF" points="630 450 720 300 540 300" />
<polygon points="810 450 720 600 900 600" />
<polygon fill="#DDD" points="810 450 900 300 720 300" />
<polygon
fill="#AAA"
points="990 450 900 600 1080 600"
/>
<polygon
fill="#444"
points="990 450 1080 300 900 300"
/>
<polygon fill="#222" points="90 750 0 900 180 900" />
<polygon points="270 750 180 900 360 900" />
<polygon fill="#DDD" points="270 750 360 600 180 600" />
<polygon points="450 750 540 600 360 600" />
<polygon points="630 750 540 900 720 900" />
<polygon fill="#444" points="630 750 720 600 540 600" />
<polygon fill="#AAA" points="810 750 720 900 900 900" />
<polygon fill="#666" points="810 750 900 600 720 600" />
<polygon
fill="#999"
points="990 750 900 900 1080 900"
/>
<polygon fill="#999" points="180 0 90 150 270 150" />
<polygon fill="#444" points="360 0 270 150 450 150" />
<polygon fill="#FFF" points="540 0 450 150 630 150" />
<polygon points="900 0 810 150 990 150" />
<polygon fill="#222" points="0 300 -90 450 90 450" />
<polygon fill="#FFF" points="0 300 90 150 -90 150" />
<polygon fill="#FFF" points="180 300 90 450 270 450" />
<polygon fill="#666" points="180 300 270 150 90 150" />
<polygon fill="#222" points="360 300 270 450 450 450" />
<polygon fill="#FFF" points="360 300 450 150 270 150" />
<polygon fill="#444" points="540 300 450 450 630 450" />
<polygon fill="#222" points="540 300 630 150 450 150" />
<polygon fill="#AAA" points="720 300 630 450 810 450" />
<polygon fill="#666" points="720 300 810 150 630 150" />
<polygon fill="#FFF" points="900 300 810 450 990 450" />
<polygon fill="#999" points="900 300 990 150 810 150" />
<polygon points="0 600 -90 750 90 750" />
<polygon fill="#666" points="0 600 90 450 -90 450" />
<polygon fill="#AAA" points="180 600 90 750 270 750" />
<polygon fill="#444" points="180 600 270 450 90 450" />
<polygon fill="#444" points="360 600 270 750 450 750" />
<polygon fill="#999" points="360 600 450 450 270 450" />
<polygon fill="#666" points="540 600 630 450 450 450" />
<polygon fill="#222" points="720 600 630 750 810 750" />
<polygon fill="#FFF" points="900 600 810 750 990 750" />
<polygon fill="#222" points="900 600 990 450 810 450" />
<polygon fill="#DDD" points="0 900 90 750 -90 750" />
<polygon fill="#444" points="180 900 270 750 90 750" />
<polygon fill="#FFF" points="360 900 450 750 270 750" />
<polygon fill="#AAA" points="540 900 630 750 450 750" />
<polygon fill="#FFF" points="720 900 810 750 630 750" />
<polygon fill="#222" points="900 900 990 750 810 750" />
<polygon
fill="#222"
points="1080 300 990 450 1170 450"
/>
<polygon
fill="#FFF"
points="1080 300 1170 150 990 150"
/>
<polygon points="1080 600 990 750 1170 750" />
<polygon
fill="#666"
points="1080 600 1170 450 990 450"
/>
<polygon
fill="#DDD"
points="1080 900 1170 750 990 750"
/>
</g>
</pattern>
</defs>
<rect x="0" y="0" fill="url(#a)" width="100%" height="100%" />
<rect x="0" y="0" fill="url(#b)" width="100%" height="100%" />
</svg>
<div class="container">
<div class="carousel-caption text-start">
<h1>Example headline.</h1>
<p>
Some representative placeholder content for the first
slide of the carousel.
</p>
<p>
<a class="btn btn-lg btn-primary" href="#"
>Sign up today</a
>
</p>
</div>
</div>
</div>
<div class="carousel-item">
<svg
class="bd-placeholder-img"
width="100%"
height="100%"
xmlns="http://www.w3.org/2000/svg"
aria-hidden="true"
preserveAspectRatio="xMidYMid slice"
focusable="false"
>
<rect width="100%" height="100%" fill="#777"></rect>
</svg>
<div class="container">
<div class="carousel-caption">
<h1>Another example headline.</h1>
<p>
Some representative placeholder content for the second
slide of the carousel.
</p>
<p>
<a class="btn btn-lg btn-primary" href="#">Learn more</a>
</p>
</div>
</div>
</div>
<div class="carousel-item">
<svg
class="bd-placeholder-img"
width="100%"
height="100%"
xmlns="http://www.w3.org/2000/svg"
aria-hidden="true"
preserveAspectRatio="xMidYMid slice"
focusable="false"
>
<rect width="100%" height="100%" fill="#777"></rect>
</svg>
<div class="container">
<div class="carousel-caption text-end">
<h1>One more for good measure.</h1>
<p>
Some representative placeholder content for the third
slide of this carousel.
</p>
<p>
<a class="btn btn-lg btn-primary" href="#"
>Browse gallery</a
>
</p>
</div>
</div>
</div>
</div>
<button
class="carousel-control-prev"
type="button"
data-bs-target="#myCarousel"
data-bs-slide="prev"
>
<span
class="carousel-control-prev-icon"
aria-hidden="true"
></span>
<span class="visually-hidden">Previous</span>
</button>
<button
class="carousel-control-next"
type="button"
data-bs-target="#myCarousel"
data-bs-slide="next"
>
<span
class="carousel-control-next-icon"
aria-hidden="true"
></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div>
<!-- CONTENT -->
<div class="my-3 p-3 bg-body rounded shadow-sm">
<div class="row">
<div class="col-1"></div>
<div class="col-10">
<div class="row">
<form class="row g-3">
<div class="col-md-7">
<label for="nome" class="form-label">Nome</label>
<input type="text" class="form-control" id="nome" />
</div>
<div class="col-md-3">
<label for="nome" class="form-label">Data</label>
<div class="input-group mb-4">
<i class="bi bi-calendar-date input-group-text"></i>
<input
type="text"
class="datepicker_input form-control"
required
aria-label="Data de hoje"
/>
</div>
</div>
<div class="col-md-1">
<label for="inicial" class="form-label">Hora</label>
<input
type="text"
class="form-control"
id="inicial"
placeholder="12:00"
/>
</div>
<div class="col-md-1">
<label for="final" class="form-label">Hora</label>
<input
type="text"
class="form-control"
id="final"
placeholder="12:00"
/>
</div>
<div class="col-6">
<label for="estudado" class="form-label">Estudado</label>
<textarea
class="form-control"
aria-label="With textarea"
></textarea>
</div>
<div class="col-6">
<label for="dificuldades" class="form-label"
>Observações</label
>
<textarea
class="form-control"
aria-label="With textarea"
></textarea>
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary">Enviar</button>
<button type="cancel" class="btn btn-danger">Limpar</button>
</div>
</form>
</div>
</div>
<div class="col-1"></div>
</div>
</div>
<!-- FOOTER -->
<div class="my-3 p-3 bg-body rounded shadow-sm">
<div class="row">
<div class="col">
<div class="table-responsive">
<table id="example" class="display table table-striped table-sm">
<thead>
<tr>
<th scope="col">Nome</th>
<th scope="col">Data</th>
<th scope="col">Hora</th>
<th scope="col">Hora</th>
</tr>
</thead>
<tbody>
<tr>
<td>1,001</td>
<td>random</td>
<td>data</td>
<td>placeholder</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</main>
<!-- bootstrap -->
<script src="js/bootstrap.bundle.js"></script>
<!-- Vanilla Datepicker JS -->
<script src="https://cdn.jsdelivr.net/npm/vanillajs-datepicker@1.1.4/dist/js/datepicker-full.min.js"></script>
<script type="text/javascript">
/* Bootstrap 5 JS included */
/* vanillajs-datepicker 1.1.4 JS included */
const getDatePickerTitle = (elem) => {
// From the label or the aria-label
const label = elem.nextElementSibling;
let titleText = "";
if (label && label.tagName === "LABEL") {
titleText = label.textContent;
} else {
titleText = elem.getAttribute("aria-label") || "";
}
return titleText;
};
const elems = document.querySelectorAll(".datepicker_input");
for (const elem of elems) {
const datepicker = new Datepicker(elem, {
format: "dd/mm/yyyy", // UK format
title: getDatePickerTitle(elem),
});
}
</script>
<script>
$(document).ready(function () {
$("#example").DataTable({
ajax: "data/arrays.txt",
});
});
</script>
<link
rel="stylesheet"
type="text/css"
href="https://cdn.datatables.net/v/bs5/dt-1.11.5/af-2.3.7/b-2.2.2/b-html5-2.2.2/cr-1.5.5/sl-1.3.4/datatables.min.css"
/>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"
></script>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"
></script>
<script
type="text/javascript"
src="https://cdn.datatables.net/v/bs5/dt-1.11.5/af-2.3.7/b-2.2.2/b-html5-2.2.2/cr-1.5.5/sl-1.3.4/datatables.min.js"
></script>
</body>
</html>
Blog em Angular – The End
O que faz de um blog um blog é mostrar os posts logo na página principal. Da forma que configuramos a rota padrão até agora, ArtigosComponent é a página de destino onde deveria ter posts, mas até agora, nada... O Scully fornece o serviço ScullyRoutesService, este,...