лабы 3 и 4

This commit is contained in:
AnnaLioness 2023-12-07 19:09:45 +04:00
parent 481d3bbe99
commit 6f064ff66e
9905 changed files with 1191389 additions and 0 deletions

BIN
лаб3/лаб3.docx Normal file

Binary file not shown.

View File

@ -0,0 +1,20 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": "airbnb-base",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {
"quotes": "off",
"indent": "off",
"no-console": "off",
"no-use-before-define": "off",
"no-alert": "off",
"no-restricted-globals": "off",
"quote-props": "off"
}
}

View File

@ -0,0 +1,32 @@
{
"items": [
{
"id": 1,
"name": "Платье вечернее пышное"
},
{
"id": 2,
"name": "Платье вечернее прямое"
},
{
"id": 3,
"name": "Платье вечернее русалка"
}
],
"lines": [
{
"itemsId": "2",
"price": "1000.00",
"nameItem": "dddd",
"image": "",
"id": 9
},
{
"itemsId": "1",
"price": "1000.00",
"nameItem": "aaaa",
"image": "",
"id": 10
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline;font-size:large}footer{background-color:#5c00a4;height:32px;color:#fff}h1{font-size:64em;background-color:#1c7aaf;color:#fff}.add1{background-color:#50028c;font-size:large}.add2{background-color:#8354a8;font-size:large}.add3{background-color:#50028c;font-size:large}

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 KiB

View File

@ -0,0 +1 @@
{"version":3,"file":"main-005934c8.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{color:#fff;font-size:large}main button{background-color:#50baf5}.firstname,.product-price,.delete{background-color:#50baf5}.t1{background-color:#5c00a4!important;color:#fff!important}.items-table{color:#fff!important;background-color:#5c00a4}.hat{background-color:#1c7aaf!important}.addPage{background-color:#5c00a4}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{color:#fff;font-size:large}main button{background-color:#50baf5}.t1{background-color:#5c00a4!important;color:#fff!important}.hat{background-color:#1c7aaf!important}.info{background-color:#5c00a4}

View File

@ -0,0 +1 @@
{"version":3,"file":"page11-92ec4ebc.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
{"version":3,"file":"page2-aeec44bb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
{"version":3,"file":"page3-ae063f45.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{margin-top:5%;color:#fff;font-size:large}main button{background-color:#50baf5}.firstname,.password{background-color:#50baf5}

View File

@ -0,0 +1 @@
{"version":3,"file":"page4-973169a5.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
{"version":3,"file":"page5-366a796a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}.cards{height:400px;width:auto;object-fit:cover}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{padding:32px}

View File

@ -0,0 +1 @@
{"version":3,"file":"page6-42b8566e.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}.nameline{font-size:xx-large}.cards{height:400px;width:auto;object-fit:cover}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}

View File

@ -0,0 +1 @@
{"version":3,"file":"page7-aeec44bb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
{"version":3,"file":"page8-973169a5.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{color:#fff;font-size:large}main button{background-color:#50baf5}.busket{font-size:xx-large}.t1{background-color:#5c00a4!important;color:#fff!important}.hat{background-color:#1c7aaf!important}.mod{background-color:#5c00a4;color:#fff}.cross{max-width:15%;padding-bottom:45%}.dress{height:max-content}.pict{padding-top:5%;padding-left:5%;padding-bottom:5%}.mydress{background-color:#5c00a4;color:#fff}

View File

@ -0,0 +1 @@
{"version":3,"file":"page9-3de67c0b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}.adress,.contacts{color:#fff;font-size:x-large}.row{margin-top:5%}p{margin-bottom:20%}

View File

@ -0,0 +1 @@
{"version":3,"file":"style2-e2ebd5a0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@ -0,0 +1 @@
body{background-image:url(/assets/фон-81a48278.jpg)}@font-face{font-family:"cursive";src:url(/assets/monotypecorsiva-cc00c517.ttf)}*{font-family:"cursive"}header nav{background-color:#5c00a4}img{width:94px;height:74px}@media (min-width: 768px){header nav{height:100px}}header nav a:hover{text-decoration:underline}main a:hover{text-decoration:underline}footer{background-color:#5c00a4;height:32px;color:#fff}main{margin-top:5%;color:#fff;font-size:large}main button{background-color:#50baf5}.firstname,.email,.password{background-color:#50baf5}

View File

@ -0,0 +1 @@
{"version":3,"file":"style4-f39ba9d5.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

88
лаб3/прим1/dist/index.html vendored Normal file
View File

@ -0,0 +1,88 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/index-bb549660.css">
</head>
<body class="d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2 m-0" style="display: flex; flex-direction: column;">
<div class = "container-fluid m-0">
<div class = "row">
<div class = "col-12">
<h1 class = "text-center title h1" style="color: white;">
Платья на любую фигуру и торжество от популярного дизайнера!
</h1>
</div>
</div>
</div>
<div class = "container-fluid m-0">
<div class="row rowAdd h-100 m-0" style="display: flex; flex-direction: row;">
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add1 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Вечерние платья со скидкой20%
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="/assets/вечернееплатье-b8d7488a.png" class=" w-25 img-fluid" alt = "...">
</div>
</div>
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add2 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Бесплатное снятие мерок на свадебное платье каждый вторник
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="/assets/свадебное платье-3a328f66.png" class="w-25 img-fluid" alt = "...">
</div>
</div>
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add3 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Предоставляем услуги по ремонту платьев
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="/assets/нити и игла-881e8434.png" class="w-75 img-fluid" alt = "...">
</div>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

106
лаб3/прим1/dist/page10.html vendored Normal file
View File

@ -0,0 +1,106 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/page10-628dc299.js"></script>
<link rel="modulepreload" crossorigin href="/assets/all.min-68844163.js">
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page10-da0f261f.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2">
<div class="btn-group" role="group">
<button id="items-add" class="btn btn-info">Добавить товар (диалог)</button>
</div>
<div>
<table id="items-table" class="table-primary table-bordered table-striped w-100" style="color:white; background-color: blueviolet;">
<thead class="table hat">
<th scope="col"></th>
<th scope="col" class="w-25">Категория</th>
<th scope="col" class="w-25">Цена</th>
<th scope="col" class="w-25">Название</th>
<th scope="col"></th>
<th scope="col"></th>
</thead>
<tbody></tbody>
</table>
</div>
</main>
<div id="items-update" class="modal fade" tabindex="-1" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog">
<form id="items-form" class="needs-validation" novalidate>
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="items-update-title"></h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="text-center">
<img id="image-preview" src="https://via.placeholder.com/200" class="rounded rounded-circle"
alt="placeholder">
</div>
<input id="items-line-id" type="number" hidden>
<div class="mb-2">
<label for="item" class="form-label">Категории</label>
<select id="item" class="form-select" name="selected" required>
</select>
</div>
<div class="mb-2">
<label class="form-label" for="price">Цена</label>
<input id="price" name="price" class="form-control" type="number" value="0.00" min="1000.00"
step="0.50" required>
</div>
<div class="mb-2">
<label class="form-label" for="count">Название</label>
<input id="nameItem" name="nameItem" class="form-control" type="text" required>
</div>
<div class="mb-2">
<label class="form-label" for="image">Изображение</label>
<input id="image" type="file" name="image" class="form-control" accept="image/*">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button>
<button type="submit" class="btn btn-primary">Сохранить</button>
</div>
</div>
</form>
</div>
</div>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

84
лаб3/прим1/dist/page11.html vendored Normal file
View File

@ -0,0 +1,84 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page11-1abbee07.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page3.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid row p-2 h-100 m-0">
<div class = "container-fluid m-0">
<div class = "row">
<div class="col col-12 col-sm-3 col-md-3 col-lg-3 col-xl-3" style="background-color: #5C00A4; font-size: x-large;">
<div>
<p>тут логин</p>
</div>
<div>
<p>тут мыло</p>
</div>
</div>
<div class="col col-12 col-sm-9 col-md-9 col-lg-9 col-xl-9">
<h1 class = "text-center title h1" style="color: white;">
Мои заказы
</h1>
<table class="table-primary table-bordered t1">
<thead class="table hat">
<tr>
<th scope="col">Изображение</th>
<th scope="col">Название</th>
<th scope="col">Цена</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">
<img src="/assets/платье вечернее пышное-378ac79e.png" class="img-fluid w-50" alt="...">
</th>
<td>Вечернее платье пышное "Бальный вечер"</td>
<td>20000 руб.</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

74
лаб3/прим1/dist/page2.html vendored Normal file
View File

@ -0,0 +1,74 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/style2-07118e0f.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page3.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid row p-2 h-100 m-0">
<div class = "container-fluid m-0">
<div class = "row">
<div class = "col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 map h-75">
<div class = "h-75 d-flex flex-column justify-content-left align-items-left">
<img src ="/assets/карта-2e183b4b.jpg" class="w-75 img-fluid" alt = "..." >
</div>
</div>
<div class = "col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 adress h-75">
<p>Мы находимся:<br>
г.Ульяновск,<br>
ул.Оренбургская, 36
</p>
<p>Режим работы:<br>
пн.-пт.: <br>
10.00-19.00 <br>
сб.-вс.: <br>
10.00-17.00
</p>
</div>
<div class = "col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 contacts h-75">
<p>По любым вопросам о товарах звоните:<br>
55-15-10<br>
или пишите:<br>
rariryShop@yandex.ru<br>
</p>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

72
лаб3/прим1/dist/page3_.html vendored Normal file
View File

@ -0,0 +1,72 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page3_-e1c76dc2.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2">
<div class="row justify-content-center">
<form class="col-md-6 m-0" action="./page3_.html" method="get">
<div class="text-center">
<p>Введите данные пользователя</p>
</div>
<div class="mb-2">
<p><label class="form-label" for="firstname">Логин</label>
<input id="firstname" name="firstname" class="form-control" type="text" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="password">Пароль</label>
<input id="password" name="password" class="form-control" type="password" required></p>
</div>
<div class="text-center">
<button class="btn btn-primary w-50 startButton" type="submit">
<a class="nav-link active" href="./page11.html">Войти</a>
</button>
</div>
<div class="text-center">
<a class="nav-link active" href="./page4.html">Зарегистрироваться</a>
</div>
<div class="text-center">
<a class="nav-link active" href="./page10.html">Администратор</a>
</div>
</form>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

69
лаб3/прим1/dist/page4.html vendored Normal file
View File

@ -0,0 +1,69 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/style4-51b4cb9c.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2">
<form class="col-md-6 mx-auto mt-3" action="./page4.html" method="get">
<div class="mb-2">
<p><label class="form-label" for="firstname">Логин</label>
<input id="firstname" name="firstname" class="form-control" type="text" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="email">E-mail</label>
<input id="email" name="email" class="form-control" type="email" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="password">Пароль</label>
<input id="password" name="password" class="form-control" type="password" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="passwordAgain">Повторите пароль</label>
<input id="password" name="passwordAgain" class="form-control" type="password" required></p>
</div>
<div class="text-center">
<button class="btn btn-primary w-50 startButton" type="submit">Зарегестрироваться</button>
</div>
</form>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

150
лаб3/прим1/dist/page5.html vendored Normal file
View File

@ -0,0 +1,150 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page5-aa81cacf.css">
</head>
<body class=" d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2">
<div class="row">
<div class="col-4 h-100 w-25">
<div id="list-dresses" class="list-group">
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-1">Вечернее платье пышное</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-2">Вечернее платье прямое</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-3">Вечернее платье русалка</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-4">Вечернее платье ампир</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-5">Вечернее платье принцесса</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-6">Свадебное платье пышное</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-7">Свадебное платье прямое</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-8">Свадебное платье русалка</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-9">Свадебное платье ампир</a>
<a class="list-group-item list-group-item-action" style="color: white; background-color: #50028C;" href="#list-item-10">Свадебное платье принцесса</a>
</div>
</div>
<div class="col-8">
<div data-bs-spy="scroll" data-bs-target="#list-dresses" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0">
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col">
<div id = "list-item-1" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/платье вечернее пышное-378ac79e.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page6.html">Вечернее платье пышное</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-2" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/платье вечернее прямое-9163ed72.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Вечернее платье прямое</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-3" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/вечернее платье русалка-34d4da04.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Вечернее платье русалка</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-4" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/вечернее платье ампир-a6cbd06f.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Вечернее платье ампир</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-5" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/платье вечернее принцесса-22176a49.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Вечернее платье принцесса</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-6" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/платье свадебное пышное-02a5e1a9.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Свадебное платье пышное</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-7" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/свадебное платье-3a328f66.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Свадебное платье прямое</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-8" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/свадебное платье русалка-9ca8ec1d.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Свадебное платье русалка</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-9" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/свадебное платье ампир-a0e4f1dc.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Свадебное платье ампир</a>
</div>
</div>
</div>
<div class="col">
<div id = "list-item-10" class="card h-100" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/свадебное платье принцесса-d1e5140d.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active" href="./page4.html">Свадебное платье принцесса</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

61
лаб3/прим1/dist/page6.html vendored Normal file
View File

@ -0,0 +1,61 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page6-556c271c.css">
</head>
<body class="d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2 ">
<div class="text-center nameline" style="color: white;">
<p>Вечернее платье пышное</p>
</div>
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col m-0">
<div class="card" style="color: white; background-color: #1C7AAF; text-decoration: underline;">
<img src="/assets/платье вечернее пышное-378ac79e.png" class="cards card-img-top img-fluid" alt="...">
<div class="card-body">
<a class="nav-link active card-title" href="./page7.html">Бальный вечер</a>
<p class="card-text">цена: 20000 р.</p>
</div>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

79
лаб3/прим1/dist/page7.html vendored Normal file
View File

@ -0,0 +1,79 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/style2-07118e0f.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page3.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid row p-2 m-0">
<div class = "container-fluid m-0">
<div class = "row m-0">
<div class = "col col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 map h-75">
<div class = "h-75 d-flex flex-column justify-content-left align-items-left">
<img src ="/assets/платье вечернее пышное-378ac79e.png" class="w-75 img-fluid" alt = "..." >
</div>
</div>
<div class = "col col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 adress h-75">
<div class="text-center nameline">
Вечернее платье пышное "Бальный вечер"
</div>
<div class="cable-config">Выберите размер
<div class="cable-choose d-grid gap-2 d-md-block">
<button class="b" style="background-color: #50BAF5;">38-40</button>
<button class="b" style="background-color: #50BAF5;">40-42</button>
<button class="b" style="background-color: #50BAF5;">42-44</button>
<button class="b" style="background-color: #50BAF5;">44-46</button>
<button class="b" style="background-color: #50BAF5;">46-48</button>
<button class="b" style="background-color: #50BAF5;">48-50</button>
<button class="b" style="background-color: #50BAF5;">50-52</button>
<button class="b" style="background-color: #50BAF5;">Индивидуальный замер в магазине</button>
</div>
</div>
<div class="product-price">20000 руб.
<button type="button" class="btn btn-primary btn-lg">
<a class="nav-link active" href="./page9.html">В корзину</a>
</button>
</div>
</div>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

72
лаб3/прим1/dist/page8.html vendored Normal file
View File

@ -0,0 +1,72 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/style4-51b4cb9c.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid m-0 p-2">
<form class="col-md-6 mx-auto mt-3" action="./page8.html" method="get">
<div class="registr text-center">
<p>Введите данные</p>
</div>
<div class="mb-2">
<p><label class="form-label" for="firstname">Имя</label>
<input id="firstname" name="firstname" class="form-control" type="text" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="email">Отчество</label>
<input id="email" name="email" class="form-control" type="email" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="password">Номер карты</label>
<input id="password" name="password" class="form-control" type="password" required></p>
</div>
<div class="mb-2">
<p><label class="form-label" for="passwordAgain">CVC</label>
<input id="password" name="passwordAgain" class="form-control" type="password" required></p>
</div>
<div class="text-center">
<button class="btn btn-primary w-50 startButton" type="submit">Купить</button>
</div>
</form>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

74
лаб3/прим1/dist/page9.html vendored Normal file
View File

@ -0,0 +1,74 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" crossorigin src="/assets/all.min-68844163.js"></script>
<link rel="stylesheet" href="/assets/all-3c204b92.css">
<link rel="stylesheet" href="/assets/page9-2e61b9bc.css">
</head>
<body class="h-100 d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="/assets/logo-705e2efa.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid m-0 p-2">
<form class="col-md-8 mx-auto mt-8" action="./page9.html" method="get">
<div class="busket text-center">
<p>Корзина</p>
</div>
<div class="card mydress mb-3" style="max-width: 100%;">
<div class="row g-0">
<div class="col-md-4 pict">
<img src="/assets/платье вечернее пышное-378ac79e.png" class="img-fluid rounded-start" alt="...">
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">Платье вечернее пышное "Бальный вечер"</h5>
<p class="card-text">20000 руб.</p>
<button class="btn btn-primary w-50 startButton" type="submit">
<a class="nav-link active" href="./page11.html">Удалить</a>
</button>
</div>
</div>
</div>
</div>
<div class="text-center">
<button type="button" class="btn btn-primary btn-lg">
<a class="nav-link active" href="./page8.html">Переидти к оформлению</a>
</button>
</div>
</form>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

View File

@ -0,0 +1,85 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Рарити шоп</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="module" src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link href="./node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
<link href="./node_modules/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="./style.css">
</head>
<body class="d-flex flex-column">
<header>
<nav class="navbar navbar-expand-md navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<name>
<img src ="images/logo.png" class="img-fluid" alt = "...">
Рарити шоп
</name>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse justify-content-end" id="navbarNav">
<div class="navbar-nav">
<a class="nav-link active" href="./index.html">Главная</a>
<a class="nav-link active" href="./page5.html">Каталог</a>
<a class="nav-link active" href="./page2.html">Контакты</a>
<a class="nav-link active" href="./page3_.html">Личный кабинет</a>
<a class="nav-link active" href="./page9.html">Корзина</a>
</div>
</div>
</div>
</nav>
</header>
<main class="container-fluid p-2 m-0" style="display: flex; flex-direction: column;">
<div class = "container-fluid m-0">
<div class = "row">
<div class = "col-12">
<h1 class = "text-center title h1" style="color: white;">
Платья на любую фигуру и торжество от популярного дизайнера!
</h1>
</div>
</div>
</div>
<div class = "container-fluid m-0">
<div class="row rowAdd h-100 m-0" style="display: flex; flex-direction: row;">
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add1 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Вечерние платья со скидкой20%
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="images/вечернееплатье.png" class=" w-25 img-fluid" alt = "...">
</div>
</div>
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add2 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Бесплатное снятие мерок на свадебное платье каждый вторник
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="images/свадебное платье.png" class="w-25 img-fluid" alt = "...">
</div>
</div>
<div class="col col-12 col-sm-12 col-md-4 col-lg-4 col-xl-4 add3 h-100 " style="display: flex; flex-direction: column;">
<div class = "text-center" style = "color: white;">
Предоставляем услуги по ремонту платьев
</div>
<div class = "h-100 d-flex flex-column justify-content-center align-items-center">
<img src ="images/нити и игла.png" class="w-75 img-fluid" alt = "...">
</div>
</div>
</div>
</div>
</main>
<footer class="footer mt-auto d-flex flex-shrink-0 justify-content-left align-items-left fixed-bottom">
Рарити Шоп.ру Лёвушкина Анна ПИбд-21
</footer>
</body>
</html>

View File

@ -0,0 +1,59 @@
// Модуль для работы с модальным окном
// импорт компонента Modal из bootstrap
import { Modal } from "bootstrap";
import { cntrls, imagePlaceholder } from "./lines-ui";
// поиск модального окна на странице
const modal = document.getElementById("items-update");
// если он найден, то создается экземпляр компонента Modal
// для программного управления модальным окном
const myModal = modal ? new Modal(modal, {}) : null;
// поиск тега с заголовком модального кона для его смены
const modalTitle = document.getElementById("items-update-title");
// обнуление значений модального окна, т. к.
// используется одно окно для всех операций
function resetValues() {
cntrls.lineId.value = "";
cntrls.itemsType.value = "";
cntrls.price.value = parseFloat(0).toFixed(2);
cntrls.nameItem.value = "";
cntrls.image.value = "";
cntrls.imagePreview.src = imagePlaceholder;
}
// функция для показа модального окна
// перед показом происходит заполнение формы для редактирования
// если объект item не пуст
export function showUpdateModal(item) {
modalTitle.innerHTML = item === null ? "Добавить" : "Изменить";
console.info(item);
if (item) {
cntrls.lineId.value = item.id;
cntrls.itemsType.value = item.itemsId;
cntrls.price.value = item.price;
cntrls.nameItem.value = item.nameItem;
// заполнение превью
// Если пользователь выбрал изображение, то оно загружается
// в тэг image с id image - preview
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
cntrls.imagePreview.src = item.image ? item.image : imagePlaceholder;
} else {
resetValues();
}
myModal.show();
}
// функция для скрытия модального окна
export function hideUpdateModal() {
resetValues();
// удаление класса was-validated для скрытия результатов валидации
cntrls.form.classList.remove("was-validated");
myModal.hide();
}

View File

@ -0,0 +1,100 @@
// модуль для работы с REST API сервера
// адрес сервера
const serverUrl = "http://localhost:8081";
// функция возвращает объект нужной структуры для отправки на сервер
function createLineObject(item, price, item2, image) {
return {
itemsId: item,
price: parseFloat(price).toFixed(2),
nameItem: item2,
image,
};
}
// обращение к серверу для получения всех типов товара (get)
export async function getAllItemTypes() {
const response = await fetch(`${serverUrl}/items`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для получения всех записей (get)
export async function getAllLines() {
const response = await fetch(`${serverUrl}/lines?_expand=items`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для получения записи по первичному ключу (id) (get)
// id передается в качестве части пути URL get-запроса
export async function getLine(id) {
const response = await fetch(`${serverUrl}/lines/${id}?_expand=items`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для создания записи (post)
// объект отправляется в теле запроса (body)
export async function createLine(item, price, item2, image) {
const itemObject = createLineObject(item, price, item2, image);
const options = {
method: "POST",
body: JSON.stringify(itemObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/lines`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для обновления записи по id (put)
// объект отправляется в теле запроса (body)
// id передается в качестве части пути URL get-запроса
export async function updateLine(id, item, price, item2, image) {
const itemObject = createLineObject(item, price, item2, image);
const options = {
method: "PUT",
body: JSON.stringify(itemObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/lines/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для удаления записи по id (delete)
// id передается в качестве части пути URL get-запроса
export async function deleteLine(id) {
const options = {
method: "DELETE",
};
const response = await fetch(`${serverUrl}/lines/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}

View File

@ -0,0 +1,91 @@
// модуль для работы с элементами управления
// объект для удобного получения элементов
// при обращении к атрибуту объекта вызывается
// нужная функция для поиска элемента
export const cntrls = {
button: document.getElementById("items-add"),
table: document.querySelector("#items-table tbody"),
form: document.getElementById("items-form"),
lineId: document.getElementById("items-line-id"),
itemsType: document.getElementById("item"),
price: document.getElementById("price"),
nameItem: document.getElementById("nameItem"),
image: document.getElementById("image"),
imagePreview: document.getElementById("image-preview"),
};
// Дефолтное превью
export const imagePlaceholder = "https://via.placeholder.com/200";
// функция создает тег option для select
// <option value="" selected>name</option>
export function createItemsOption(name, value = "", isSelected = false) {
const option = document.createElement("option");
option.value = value || "";
option.selected = isSelected;
option.text = name;
return option;
}
// функция создает ссылку (a) для таблицы
// содержимое тега a заполняется необходимой иконкой (icon)
// при нажатии вызывается callback
// ссылка "оборачивается" тегом td
// <td><a href="#" onclick="callback()"><i class="fa-solid icon"></i></a></td>
function createTableAnchor(icon, callback) {
const i = document.createElement("i");
i.classList.add("fa-solid", icon);
const a = document.createElement("a");
a.href = "#";
a.appendChild(i);
a.onclick = (event) => {
// чтобы в URL не добавлялась решетка
event.preventDefault();
event.stopPropagation();
callback();
};
const td = document.createElement("td");
td.appendChild(a);
return td;
}
// функция создает колонку таблицы с текстом value
// <td>value</td>
function createTableColumn(value) {
const td = document.createElement("td");
td.textContent = value;
return td;
}
// функция создает строку таблицы
// <tr>
// <th scope="row">index + 1</th>
// <td>item.items.name</td>
// <td>parseFloat(item.price).toFixed(2))</td>
// <td>item.count</td>
// <td>parseFloat(item.sum).toFixed(2))</td>
// <td><a href="#" onclick="editCallback()"><i class="fa-solid fa-pencil"></i></a></td>
// <td><a href="#" onclick="editPageCallback()"><i class="fa-solid fa-pen-to-square"></i></a></td>
// <td><a href="#" onclick="deleteCallback()"><i class="fa-solid fa-trash"></i></a></td>
// </tr>
export function createTableRow(item, index, editCallback, editPageCallback, deleteCallback) {
const rowNumber = document.createElement("th");
rowNumber.scope = "row";
rowNumber.textContent = index + 1;
const row = document.createElement("tr");
row.id = `line-${item.id}`;
row.appendChild(rowNumber);
row.appendChild(createTableColumn(item.items.name));
row.appendChild(createTableColumn(parseFloat(item.price).toFixed(2)));
row.appendChild(createTableColumn(item.nameItem));
// редактировать в модальном окне
row.appendChild(createTableAnchor("fa-pencil", editCallback));
// удаление
row.appendChild(createTableAnchor("fa-trash", deleteCallback));
return row;
}

View File

@ -0,0 +1,304 @@
// модуль с логикой
import { hideUpdateModal, showUpdateModal } from "./lines-modal";
import {
createLine, deleteLine, getAllItemTypes, getAllLines, getLine, updateLine,
} from "./lines-rest-api";
import {
cntrls, createItemsOption, createTableRow, imagePlaceholder,
} from "./lines-ui";
async function drawItemsSelect() {
// вызов метода REST API для получения списка типов товаров
const data = await getAllItemTypes();
// очистка содержимого select
// удаляется все, что находится между тегами <select></select>
// но не атрибуты
cntrls.itemsType.innerHTML = "";
// пустое значение
cntrls.itemsType.appendChild(createItemsOption("Выберите значение", "", true));
// цикл по результату ответа от сервера
// используется лямбда-выражение
// (item) => {} аналогично function(item) {}
data.forEach((item) => {
cntrls.itemsType.appendChild(createItemsOption(item.name, item.id));
});
}
async function drawLinesTable() {
console.info("Try to load data");
if (!cntrls.table) {
return;
}
// вызов метода REST API для получения всех записей
const data = await getAllLines();
// очистка содержимого table
// удаляется все, что находится между тегами <table></table>
// но не атрибуты
cntrls.table.innerHTML = "";
// цикл по результату ответа от сервера
// используется лямбда-выражение
// (item, index) => {} аналогично function(item, index) {}
data.forEach((item, index) => {
cntrls.table.appendChild(
createTableRow(
item,
index,
// функции передаются в качестве параметра
// это очень удобно, так как аргументы функций доступны только
// в данном месте кода и не передаются в сервисные модули
() => showUpdateModal(item),
() => removeLine(item.id),
),
);
});
}
async function addLine(item, price, item2, image) {
console.info("Try to add item");
// вызов метода REST API для добавления записи
const data = await createLine(item, price, item2, image);
console.info("Added");
console.info(data);
// загрузка и заполнение table
drawLinesTable();
}
async function editLine(id, item, price, item2, image) {
console.info("Try to update item");
// вызов метода REST API для обновления записи
const data = await updateLine(id, item, price, item2, image);
console.info("Updated");
console.info(data);
// загрузка и заполнение table
drawLinesTable();
}
async function removeLine(id) {
if (!confirm("Do you really want to remove this item?")) {
console.info("Canceled");
return;
}
console.info("Try to remove item");
// вызов метода REST API для удаления записи
const data = await deleteLine(id);
console.info(data);
// загрузка и заполнение table
drawLinesTable();
}
// функция для получения содержимого файла в виде base64 строки
// https://ru.wikipedia.org/wiki/Base64
async function readFile(file) {
const reader = new FileReader();
// создание Promise-объекта для использования функции
// с помощью await (асинхронно) без коллбэков (callback)
// https://learn.javascript.ru/promise
return new Promise((resolve, reject) => {
// 2. "Возвращаем" содержимое когда файл прочитан
// через вызов resolve
// Если не использовать Promise, то всю работу по взаимодействию
// с REST API пришлось бы делать в обработчике (callback) функции
// onloadend
reader.onloadend = () => {
const fileContent = reader.result;
// Здесь могла бы быть работа с REST API
// Чтение заканчивает выполняться здесь
resolve(fileContent);
};
// 3. Возвращаем ошибку
reader.onerror = () => {
// Или здесь в случае ошибки
reject(new Error("oops, something went wrong with the file reader."));
};
// Шаг 1. Сначала читаем файл
// Чтение начинает выполняться здесь
reader.readAsDataURL(file);
});
}
// функция для обновления блока с превью выбранного изображения
async function updateImagePreview() {
// получение выбранного файла
// возможен выбор нескольких файлов, поэтому необходимо получить только первый
const file = cntrls.image.files[0];
// чтение содержимого файла в виде base64 строки
const fileContent = await readFile(file);
console.info("base64 ", fileContent);
// обновление атрибута src для тега img с id image-preview
cntrls.imagePreview.src = fileContent;
}
// Функция для обработки создания и редактирования элементов таблицы через модальное окно
// Если хотите делать через страницу, то удалите эту функцию
export function linesForm() {
console.info("linesForm");
// загрузка и заполнение select со списком товаров
drawItemsSelect();
// загрузка и заполнение table
drawLinesTable();
// Вызов функции обновления превью изображения при возникновении
// события oncahnge в тэге input с id image
cntrls.image.addEventListener("change", () => updateImagePreview());
// обработчик события нажатия на кнопку для показа модального окна
cntrls.button.addEventListener("click", () => showUpdateModal(null));
// обработчик события отправки формы
// возникает при нажатии на кнопку (button) с типом submit
// кнопка должна находится внутри тега form
cntrls.form.addEventListener("submit", async (event) => {
console.info("Form onSubmit");
// отключение стандартного поведения формы при отправке
// при отправке страница обновляется и JS перестает работать
event.preventDefault();
event.stopPropagation();
// если форма не прошла валидацию, то ничего делать не нужно
if (!cntrls.form.checkValidity()) {
return;
}
let imageBase64 = "";
// Получение выбранного пользователем изображения в виде base64 строки
// Если пользователь ничего не выбрал, то не нужно сохранять в БД
// дефолтное изображение
if (cntrls.imagePreview.src !== imagePlaceholder) {
// Загрузка содержимого атрибута src тэга img с id image-preview
// Здесь выполняется HTTP запрос с типом GET
const result = await fetch(cntrls.imagePreview.src);
// Получение из HTTP-ответа бинарного содержимого
const blob = await result.blob();
// Получение base64 строки для файла
// Здесь выполняется Promise из функции readFile
// Promise позволяет писать линейный код для работы с асинхронными методами
// без использования обработчиков (callback) с помощью await
imageBase64 = await readFile(blob);
}
// получение id строки для редактирования
// это значение содержится в скрытом input
const currentId = cntrls.lineId.value;
// если значение id не задано,
// то необходимо выполнить добавление записи
// иначе обновление записи
if (!currentId) {
await addLine(
cntrls.itemsType.value,
cntrls.price.value,
cntrls.nameItem.value,
imageBase64,
);
} else {
await editLine(
currentId,
cntrls.itemsType.value,
cntrls.price.value,
cntrls.nameItem.value,
imageBase64,
);
}
// после выполнения добавления/обновления модальное окно скрывается
hideUpdateModal();
});
}
// Функция для обработки создания и редактирования элементов таблицы через страницу page-edit.html
// Если хотите делать через модальное окно, то удалите эту функцию
export async function linesPageForm() {
console.info("linesPageForm");
// загрузка и заполнение select со списком товаров
drawItemsSelect();
// func1 = (id) => {} аналогично function func1(id) {}
const goBack = () => location.assign("/page10.html");
// Вызов функции обновления превью изображения при возникновении
// события onchange в тэге input с id image
cntrls.image.addEventListener("change", () => updateImagePreview());
// получение параметров GET-запроса из URL
// параметры перечислены после символа ? (?id=1&color=black&...)
const urlParams = new URLSearchParams(location.search);
// получение значения конкретного параметра (id)
// указан только при редактировании
const currentId = urlParams.get("id");
// если id задан
if (currentId) {
try {
// вызов метода REST API для получения записи по первичному ключу(id)
const line = await getLine(currentId);
// заполнение формы для редактирования
cntrls.itemsType.value = line.itemsId;
cntrls.price.value = line.price;
cntrls.nameItem.value = line.nameItem;
// заполнение превью
// Если пользователь выбрал изображение, то оно загружается
// в тэг image с id image - preview
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
cntrls.imagePreview.src = line.image ? line.image : imagePlaceholder;
} catch {
// в случае ошибки происходит возврат к page4
goBack();
}
}
// обработчик события отправки формы
// возникает при нажатии на кнопку (button) с типом submit
// кнопка должна находится внутри тега form
cntrls.form.addEventListener("submit", async (event) => {
console.info("Form onSubmit");
// отключение стандартного поведения формы при отправке
// при отправке страница обновляется и JS перестает работать
event.preventDefault();
event.stopPropagation();
// если форма не прошла валидацию, то ничего делать не нужно
if (!cntrls.form.checkValidity()) {
return;
}
let imageBase64 = "";
// Получение выбранного пользователем изображения в виде base64 строки
// Если пользователь ничего не выбрал, то не нужно сохранять в БД
// дефолтное изображение
if (cntrls.imagePreview.src !== imagePlaceholder) {
// Загрузка содержимого атрибута src тэга img с id image-preview
// Здесь выполняется HTTP запрос с типом GET
const result = await fetch(cntrls.imagePreview.src);
// Получение из HTTP-ответа бинарного содержимого
const blob = await result.blob();
// Получение base64 строки для файла
// Здесь выполняется Promise из функции readFile
// Promise позволяет писать линейный код для работы с асинхронными методами
// без использования обработчиков (callback) с помощью await
imageBase64 = await readFile(blob);
}
// если значение параметра запроса не задано,
// то необходимо выполнить добавление записи
// иначе обновление записи
if (!currentId) {
await addLine(
cntrls.itemsType.value,
cntrls.price.value,
cntrls.nameItem.value,
imageBase64,
);
} else {
await editLine(
currentId,
cntrls.itemsType.value,
cntrls.price.value,
cntrls.nameItem.value,
imageBase64,
);
}
// возврат к странице page4
goBack();
});
}

View File

@ -0,0 +1,25 @@
// модуль используется для валидации форма на странице
function validation() {
// поиск всех форма с классом .needs-validation
const forms = document.querySelectorAll("form.needs-validation");
for (let i = 0; i < forms.length; i += 1) {
const form = forms[i];
// для каждой формы добавляется обработчик события отправки
form.addEventListener("submit", (event) => {
// если форма не прошла валидацию
// то выключить стандартное действие
if (!form.checkValidity()) {
event.preventDefault();
// предотвращает распространение preventDefault
// на другие объекты
event.stopPropagation();
}
// добавляет к форме класс was-validated
form.classList.add("was-validated");
});
}
}
export default validation;

View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "Node",
"target": "ES2020",
"jsx": "preserve",
"strictNullChecks": true,
"strictFunctionTypes": true
},
"exclude": [
"node_modules",
"**/node_modules/*"
]
}

BIN
лаб3/прим1/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

12
лаб3/прим1/node_modules/.bin/acorn generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
else
exec node "$basedir/../acorn/bin/acorn" "$@"
fi

17
лаб3/прим1/node_modules/.bin/acorn.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %*

28
лаб3/прим1/node_modules/.bin/acorn.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
} else {
& "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../acorn/bin/acorn" $args
} else {
& "node$exe" "$basedir/../acorn/bin/acorn" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
лаб3/прим1/node_modules/.bin/esbuild generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
else
exec node "$basedir/../esbuild/bin/esbuild" "$@"
fi

17
лаб3/прим1/node_modules/.bin/esbuild.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*

28
лаб3/прим1/node_modules/.bin/esbuild.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
лаб3/прим1/node_modules/.bin/eslint generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
else
exec node "$basedir/../eslint/bin/eslint.js" "$@"
fi

17
лаб3/прим1/node_modules/.bin/eslint.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\eslint\bin\eslint.js" %*

28
лаб3/прим1/node_modules/.bin/eslint.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args
} else {
& "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../eslint/bin/eslint.js" $args
} else {
& "node$exe" "$basedir/../eslint/bin/eslint.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
лаб3/прим1/node_modules/.bin/he generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../he/bin/he" "$@"
else
exec node "$basedir/../he/bin/he" "$@"
fi

17
лаб3/прим1/node_modules/.bin/he.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\he\bin\he" %*

Some files were not shown because too many files have changed in this diff Show More