Merge branch 'feature/treino' into develop
3
custom/react/Countdown.tsx
Normal file
@ -0,0 +1,3 @@
|
||||
import Countdown from "./components/Countdown";
|
||||
|
||||
export default Countdown;
|
3
custom/react/TwoCountdown.tsx
Normal file
@ -0,0 +1,3 @@
|
||||
import TwoCountdown from "./components/TwoCountdown/indexTwo";
|
||||
|
||||
export default TwoCountdown;
|
11
custom/react/components/Countdown/assets/clock.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#ffffff" height="25px" width="25px" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 512 512">
|
||||
<g>
|
||||
<g>
|
||||
<path d="m256,51.8c-112.6,0-204.2,91.6-204.2,204.2s91.6,204.2 204.2,204.2 204.2-91.6 204.2-204.2-91.6-204.2-204.2-204.2v-1.42109e-14zm0,449.2c-135.1,0-245-109.9-245-245s109.9-245 245-245 245,109.9 245,245-109.9,245-245,245z"/>
|
||||
<path d="m344.1,276.4h-88.1c-11.3,0-20.4-9.1-20.4-20.4v-157.8c0-11.3 9.1-20.4 20.4-20.4 11.3,0 20.4,9.1 20.4,20.4v137.4h67.7c11.3,0 20.4,9.1 20.4,20.4 5.68434e-14,11.3-9.1,20.4-20.4,20.4z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 884 B |
BIN
custom/react/components/Countdown/assets/textura.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
108
custom/react/components/Countdown/index.tsx
Normal file
@ -0,0 +1,108 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
|
||||
import styles from "./styles.css";
|
||||
|
||||
import clock from "./assets/clock.svg";
|
||||
|
||||
interface CountdownProps {
|
||||
//formato: dd/mm/yyyy/hh:mm
|
||||
endDate: string;
|
||||
}
|
||||
|
||||
interface Time {
|
||||
hour: number;
|
||||
minute: number;
|
||||
second: number;
|
||||
}
|
||||
|
||||
const Countdown = ({endDate}: CountdownProps) => {
|
||||
|
||||
const [time, setTime] = useState<Time>({
|
||||
hour: 0,
|
||||
minute: 0,
|
||||
second: 0
|
||||
});
|
||||
|
||||
const [day, month, year, hourMinute] = endDate.split("/");
|
||||
const [hour, minute] = hourMinute.split(":");
|
||||
|
||||
const updateTimer = () => {
|
||||
|
||||
const finalDate = new Date(
|
||||
parseInt(year),
|
||||
parseInt(month) - 1,
|
||||
parseInt(day),
|
||||
parseInt(hour),
|
||||
parseInt(minute)
|
||||
).getTime();
|
||||
|
||||
const atualDate = new Date().getTime();
|
||||
|
||||
let difference = finalDate - atualDate;
|
||||
|
||||
const hours = Math.floor(difference / ( 1000 * 60 * 60));
|
||||
|
||||
difference = difference - (hours * 60 * 60 * 1000);
|
||||
|
||||
const minutes = Math.floor(difference / (1000 * 60));
|
||||
|
||||
difference = difference - (minutes * 60 * 1000);
|
||||
|
||||
const seconds= Math.floor(difference / 1000);
|
||||
|
||||
if (hours <= 0) {
|
||||
setTime({
|
||||
hour: 0,
|
||||
minute: 0,
|
||||
second:0
|
||||
});
|
||||
|
||||
}else {
|
||||
setTime({
|
||||
hour: hours,
|
||||
minute: minutes,
|
||||
second: seconds
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setInterval(updateTimer, 1000);
|
||||
}, []);
|
||||
|
||||
const hourString = time.hour.toString().padStart(2, "0");
|
||||
const minuteString = time.minute.toString().padStart(2, "0");
|
||||
const secondString = time.second.toString().padStart(2, "0");
|
||||
|
||||
return (
|
||||
<div className={styles.countdownWrapper}>
|
||||
<div className={styles.countdownBadge}>
|
||||
<img className={styles.countdownBadgeClock} src={clock} />
|
||||
</div>
|
||||
|
||||
<div className={styles.countdownTitle}>
|
||||
<h1 className={styles.countdownHeading1}>Ofertas</h1>
|
||||
<h3 className={styles.countdownHeading3}>Não perca tempo,</h3>
|
||||
<h2 className={styles.countdownHeading2}>garanta agora!</h2>
|
||||
</div>
|
||||
|
||||
<div className={styles.countdownText}>
|
||||
{`${hourString}:${minuteString}:${secondString}`}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Countdown;
|
||||
|
||||
Countdown.schema = {
|
||||
title: "Countdown Academy",
|
||||
type: "object",
|
||||
properties: {
|
||||
endDate: {
|
||||
title: "Data final de countdown",
|
||||
type: "string",
|
||||
default: "31/01/2023/12:30"
|
||||
}
|
||||
}
|
||||
};
|
78
custom/react/components/Countdown/styles.css
Normal file
@ -0,0 +1,78 @@
|
||||
.countdownWrapper {
|
||||
background-image: url(./assets/textura.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
|
||||
background-color: #c70042;
|
||||
width: 414px;
|
||||
height: 414px;
|
||||
border-radius: 30px;
|
||||
background-blend-mode: multiply;
|
||||
|
||||
position: relative;
|
||||
|
||||
margin: 30px auto 0 auto;
|
||||
}
|
||||
|
||||
.countdownTitle {
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.countdownHeading1 {
|
||||
margin: 0;
|
||||
font-size: 40px;
|
||||
line-height: 48px;
|
||||
letter-spacing: -0,05em;
|
||||
}
|
||||
|
||||
.countdownHeading3 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
line-height: 20px;
|
||||
letter-spacing: -0,05em;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.countdownHeading2 {
|
||||
margin: 0;
|
||||
font-size: 26px;
|
||||
line-height: 30px;
|
||||
letter-spacing: -0,05em;
|
||||
}
|
||||
|
||||
.countdownText {
|
||||
position: absolute;
|
||||
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
font-size: 24px;
|
||||
font-weight: 200;
|
||||
letter-spacing: 0.1em;
|
||||
color: white;
|
||||
|
||||
width: 170px;
|
||||
height: 170px;
|
||||
border-radius: 50%;
|
||||
|
||||
border: 2px solid #ffffff15;
|
||||
|
||||
display: grid;
|
||||
place-items: center;
|
||||
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.countdownBadge {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 0;
|
||||
|
||||
background-color: rgb(1, 185, 185);
|
||||
border-radius: 80px 0 0 80px;
|
||||
|
||||
padding: 10px 10px 6px 34px;
|
||||
}
|
11
custom/react/components/TwoCountdown/assets/clock.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#ffffff" height="25px" width="25px" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 512 512">
|
||||
<g>
|
||||
<g>
|
||||
<path d="m256,51.8c-112.6,0-204.2,91.6-204.2,204.2s91.6,204.2 204.2,204.2 204.2-91.6 204.2-204.2-91.6-204.2-204.2-204.2v-1.42109e-14zm0,449.2c-135.1,0-245-109.9-245-245s109.9-245 245-245 245,109.9 245,245-109.9,245-245,245z"/>
|
||||
<path d="m344.1,276.4h-88.1c-11.3,0-20.4-9.1-20.4-20.4v-157.8c0-11.3 9.1-20.4 20.4-20.4 11.3,0 20.4,9.1 20.4,20.4v137.4h67.7c11.3,0 20.4,9.1 20.4,20.4 5.68434e-14,11.3-9.1,20.4-20.4,20.4z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 884 B |
123
custom/react/components/TwoCountdown/indexTwo.tsx
Normal file
@ -0,0 +1,123 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
|
||||
import { useCssHandles } from "vtex.css-handles";
|
||||
|
||||
import clock from "./assets/clock.svg";
|
||||
|
||||
interface CountdownProps {
|
||||
//formato: dd/mm/yyyy/hh:mm
|
||||
endDate: string;
|
||||
}
|
||||
|
||||
interface Time {
|
||||
hour: number;
|
||||
minute: number;
|
||||
second: number;
|
||||
}
|
||||
|
||||
const TwoCountdown = ({endDate}: CountdownProps) => {
|
||||
|
||||
const [time, setTime] = useState<Time>({
|
||||
hour: 0,
|
||||
minute: 0,
|
||||
second: 0
|
||||
});
|
||||
|
||||
const [day, month, year, hourMinute] = endDate.split("/");
|
||||
const [hour, minute] = hourMinute.split(":");
|
||||
|
||||
const updateTimer = () => {
|
||||
|
||||
const finalDate = new Date(
|
||||
parseInt(year),
|
||||
parseInt(month) - 1,
|
||||
parseInt(day),
|
||||
parseInt(hour),
|
||||
parseInt(minute)
|
||||
).getTime();
|
||||
|
||||
const atualDate = new Date().getTime();
|
||||
|
||||
let difference = finalDate - atualDate;
|
||||
|
||||
const hours = Math.floor(difference / ( 1000 * 60 * 60));
|
||||
|
||||
difference = difference - (hours * 60 * 60 * 1000);
|
||||
|
||||
const minutes = Math.floor(difference / (1000 * 60));
|
||||
|
||||
difference = difference - (minutes * 60 * 1000);
|
||||
|
||||
const seconds= Math.floor(difference / 1000);
|
||||
|
||||
if (hours <= 0) {
|
||||
setTime({
|
||||
hour: 0,
|
||||
minute: 0,
|
||||
second:0
|
||||
});
|
||||
|
||||
}else {
|
||||
setTime({
|
||||
hour: hours,
|
||||
minute: minutes,
|
||||
second: seconds
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setInterval(updateTimer, 1000);
|
||||
}, []);
|
||||
|
||||
const hourString = time.hour.toString().padStart(2, "0");
|
||||
const minuteString = time.minute.toString().padStart(2, "0");
|
||||
const secondString = time.second.toString().padStart(2, "0");
|
||||
|
||||
const CSS__HANDLES = [
|
||||
"CountdownWrapper",
|
||||
"CountdownBadge",
|
||||
"CountdownTitle",
|
||||
"CountdownText",
|
||||
"CountdownBadgeClock",
|
||||
"CountdownTitleHeading1",
|
||||
"CountdownTitleHeading2",
|
||||
"CountdownTitleHeading3",
|
||||
];
|
||||
|
||||
const handles = useCssHandles(CSS__HANDLES);
|
||||
|
||||
return (
|
||||
<div className={handles.CountdownWrapper}>
|
||||
|
||||
<div className={handles.CountdownBadge}>
|
||||
<img className={handles.CountdownBadgeClock} src={clock} />
|
||||
</div>
|
||||
|
||||
<div className={handles.CountdownTitle}>
|
||||
<h1 className={handles.CountdownHeading1}>Ofertas</h1>
|
||||
<h3 className={handles.CountdownHeading3}>Não perca tempo,</h3>
|
||||
<h2 className={handles.CountdownHeading2}>garanta agora!</h2>
|
||||
</div>
|
||||
|
||||
<div className={handles.CountdownText}>
|
||||
{`${hourString}:${minuteString}:${secondString}`}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default TwoCountdown;
|
||||
|
||||
TwoCountdown.schema = {
|
||||
title: "Countdown-2 Academy",
|
||||
type: "object",
|
||||
properties: {
|
||||
endDate: {
|
||||
title: "Data final de countdown",
|
||||
type: "string",
|
||||
default: "31/01/2023/12:30"
|
||||
}
|
||||
}
|
||||
};
|
@ -23,5 +23,13 @@
|
||||
"content": {
|
||||
"$ref": "app:agenciamagma.m3-custom#/definitions/DynamicMenu"
|
||||
}
|
||||
},
|
||||
|
||||
"countdown-academy": {
|
||||
"component": "Countdown"
|
||||
},
|
||||
|
||||
"countdown-academy-2": {
|
||||
"component": "TwoCountdown"
|
||||
}
|
||||
}
|
||||
|
BIN
storefront/assets/imgs/img1.jpg
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
storefront/assets/imgs/img2.jpg
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
storefront/assets/imgs/img3.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
storefront/assets/imgs/textura.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
@ -4,6 +4,9 @@
|
||||
"list-context.image-list#demo",
|
||||
"flex-layout.row#deals",
|
||||
"__fold__",
|
||||
"flex-layout.row#faixa-de-imagens",
|
||||
//"countdown-academy",
|
||||
"countdown-academy-2",
|
||||
"rich-text#m3-shelf-title",
|
||||
"flex-layout.row#m3-shelf",
|
||||
"info-card#m3-middle-card",
|
||||
@ -15,6 +18,85 @@
|
||||
// "challenge": "challenge.trade-policy-condition"
|
||||
// }
|
||||
},
|
||||
|
||||
"countdown-academy-2": {
|
||||
"props" : {
|
||||
// "blockClass": "countdown-academy-teste",
|
||||
"endDate": "31/01/2023/12:30"
|
||||
}
|
||||
},
|
||||
|
||||
"countdown-academy": {
|
||||
"props" : {
|
||||
"endDate": "31/01/2023/12:30"
|
||||
}
|
||||
},
|
||||
|
||||
"flex-layout.row#faixa-de-imagens": {
|
||||
"props": {
|
||||
"blockClass": "faixa-de-imagens"
|
||||
},
|
||||
"children": [
|
||||
"image#imagem-1",
|
||||
"flex-layout.col#middle-image",
|
||||
"image#imagem-3"
|
||||
]
|
||||
},
|
||||
|
||||
"flex-layout.col#middle-image": {
|
||||
"props": {
|
||||
"blockClass": "faixa-de-imagens"
|
||||
},
|
||||
"children": [
|
||||
"image#imagem-2",
|
||||
"flex-layout.col#conteudo-meio"
|
||||
]
|
||||
},
|
||||
|
||||
"flex-layout.col#conteudo-meio": {
|
||||
"children": [
|
||||
"rich-text#texto-meio",
|
||||
"link#link-meio"
|
||||
],
|
||||
"props": {
|
||||
"blockClass": "conteudo-meio",
|
||||
"preventVerticalStretch": "auto"
|
||||
}
|
||||
},
|
||||
|
||||
"rich-text#texto-meio": {
|
||||
"props": {
|
||||
"text": "### Qual dieta é a melhor\n # pra você?\n Tenha uma vida saudável!",
|
||||
"blockClass": "texto-meio"
|
||||
}
|
||||
},
|
||||
|
||||
"link#link-meio": {
|
||||
"props": {
|
||||
"href": "/",
|
||||
"label": "Responda Nosso Quiz e Descubra",
|
||||
"blockClass": "link-meio"
|
||||
}
|
||||
},
|
||||
|
||||
"image#imagem-1": {
|
||||
"props": {
|
||||
"src":"assets/imgs/img1.jpg"
|
||||
}
|
||||
},
|
||||
|
||||
"image#imagem-2": {
|
||||
"props": {
|
||||
"src":"assets/imgs/img2.jpg"
|
||||
}
|
||||
},
|
||||
|
||||
"image#imagem-3": {
|
||||
"props": {
|
||||
"src":"assets/imgs/img3.jpg"
|
||||
}
|
||||
},
|
||||
|
||||
"challenge.trade-policy-condition": {
|
||||
"props": {
|
||||
"redirectPath": "/registration",
|
||||
|
@ -0,0 +1,79 @@
|
||||
|
||||
.CountdownWrapper {
|
||||
background-image: url(assets/imgs/textura.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
|
||||
background-color: #c70042;
|
||||
width: 414px;
|
||||
height: 414px;
|
||||
border-radius: 30px;
|
||||
background-blend-mode: multiply;
|
||||
|
||||
position: relative;
|
||||
|
||||
margin: 30px auto 0 auto;
|
||||
}
|
||||
|
||||
.CountdownTitle {
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.CountdownHeading1 {
|
||||
margin: 0;
|
||||
font-size: 40px;
|
||||
line-height: 48px;
|
||||
letter-spacing: -0,05em;
|
||||
}
|
||||
|
||||
.CountdownHeading3 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
line-height: 20px;
|
||||
letter-spacing: -0,05em;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.CountdownHeading2 {
|
||||
margin: 0;
|
||||
font-size: 26px;
|
||||
line-height: 30px;
|
||||
letter-spacing: -0,05em;
|
||||
}
|
||||
|
||||
.CountdownText {
|
||||
position: absolute;
|
||||
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
font-size: 24px;
|
||||
font-weight: 200;
|
||||
letter-spacing: 0.1em;
|
||||
color: white;
|
||||
|
||||
width: 170px;
|
||||
height: 170px;
|
||||
border-radius: 50%;
|
||||
|
||||
border: 2px solid #ffffff15;
|
||||
|
||||
display: grid;
|
||||
place-items: center;
|
||||
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.CountdownBadge {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 0;
|
||||
|
||||
background-color: rgb(1, 185, 185);
|
||||
border-radius: 80px 0 0 80px;
|
||||
|
||||
padding: 10px 10px 6px 34px;
|
||||
}
|
23
storefront/styles/sass/pages/home/vtex.flex-layout.scss
Normal file
@ -0,0 +1,23 @@
|
||||
.flexRow--faixa-de-imagens {
|
||||
margin-top: 5rem;
|
||||
|
||||
:global(.vtex-store-components-3-x-imageElement) {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.stretchChildrenWidth {
|
||||
margin: 0 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.flexCol--faixa-de-imagens {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.flexCol--conteudo-meio {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
|
||||
justify-content: center;
|
||||
}
|
34
storefront/styles/sass/pages/home/vtex.rich-text.scss
Normal file
@ -0,0 +1,34 @@
|
||||
.container--texto-meio {
|
||||
justify-content: center;
|
||||
font-family: "Roboto", sans-serif;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.headingLevel3--texto-meio,
|
||||
.headingLevel1--texto-meio,
|
||||
.paragraph--texto-meio {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.headingLevel3--texto-meio {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.05em;
|
||||
}
|
||||
|
||||
.headingLevel1--texto-meio {
|
||||
font-size: 42px;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.05em;
|
||||
}
|
||||
|
||||
.paragraph--texto-meio {
|
||||
font-size: 16px;
|
||||
font-weight: 300;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.wrapper--texto-meio {
|
||||
width: 100%;
|
||||
margin: 0 24px;
|
||||
}
|
11
storefront/styles/sass/pages/home/vtex.store-link.scss
Normal file
@ -0,0 +1,11 @@
|
||||
.link--link-meio {
|
||||
padding: 16px 22px;
|
||||
background-color: #c70042;
|
||||
color: white;
|
||||
border-radius: 30px;
|
||||
display: block;
|
||||
width: fit-content;
|
||||
margin: 2rem 24px;
|
||||
letter-spacing: 0.05em;
|
||||
font-size: 14px;
|
||||
}
|
24
yarn.lock
@ -2,13 +2,6 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@agenciam3/pkg@^1.1.13":
|
||||
version "1.1.13"
|
||||
resolved "https://gitlab.com/api/v4/projects/21631951/packages/npm/@agenciam3/pkg/-/@agenciam3/pkg-1.1.13.tgz#1e5c0e831d325f46bfbfd65e3347949b6be69c5d"
|
||||
integrity sha1-HlwOgx0yX0a/v9ZeM0eUm2vmnF0=
|
||||
dependencies:
|
||||
"@types/jquery" "^3.5.1"
|
||||
|
||||
"@babel/code-frame@7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
|
||||
@ -2041,13 +2034,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
|
||||
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
|
||||
|
||||
"@types/jquery@^3.5.1":
|
||||
version "3.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.6.tgz#97ac8e36dccd8ad8ed3f3f3b48933614d9fd8cf0"
|
||||
integrity sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==
|
||||
dependencies:
|
||||
"@types/sizzle" "*"
|
||||
|
||||
"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8":
|
||||
version "7.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
||||
@ -2083,11 +2069,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
|
||||
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
|
||||
|
||||
"@types/sizzle@*":
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef"
|
||||
integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^2.17.0":
|
||||
version "2.34.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9"
|
||||
@ -6687,6 +6668,11 @@ lru-queue@^0.1.0:
|
||||
dependencies:
|
||||
es5-ext "~0.10.2"
|
||||
|
||||
m3-utils@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/m3-utils/-/m3-utils-0.1.0.tgz#0e0ebe1a108263ab23ce53bdee8beab5a1a0e4a8"
|
||||
integrity sha512-N8bdQwPBeiTnOIzWKweN4rI683Lmm/xbXpfy1PqQLjqIZZcgh1eidq9Spab1RogK3DPQ9hlmvAyl4wGW6rmJmQ==
|
||||
|
||||
make-dir@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
||||
|