const input = document.querySelector('input');
input.addEventListener('input', (event) => {
const value = event.target.value
.replace(/^\+?[78]/, '')
.replace(/[^0-9]/g, '')
.slice(0, 10);
event.target.value = value;
});
IMask(document.querySelector('input'), { mask: '000 000 00 00' });
$(document).on('click', '.content .child', function(event){
event.stopPropagation();
});
const response = await fetch('data.json');
const data = await response.json();
console.log(data);
npx
, например: npx serve
. const updateItems = async ({ id, isShow = false }: Partial<{ id: number, isShow: boolean }>) => {};
document.documentElement
.data-theme="dark"
localStorage
:localStorage.setItem('theme', isChecked ? 'dark' : 'light');
head
добавляйте скрипт, который применит атрибут:const theme = localStorage.getItem('theme');
if (mode === 'dark') {
document.documentElement.dataset.theme = 'dark';
}
Object.fromEntries(Object.entries(...).map(([key, value]) => [key, [value]]));
Function.prototype.apply()
принимает первым аргументом контекст (this
), с которым будет работать, в Вашем случае - person
. Вторым аргументом принимает массив аргументов вызова функции, которую вызываете при помощи .apply
. Можете почитать подробнее на MDN и learn.javascript.ru. render
. Что-то вроде:const createPath = (x, y) => {
const path = new Path2D();
path.roundRect(x, y, 200, 40, 30);
return path;
};
let taskList = [
{ id: 0, value: "", x: 150, y: 75 },
{ id: 0, value: "", x: -150, y: 75 },
].map((entry) => ({ ...entry, path: createPath(entry.x, entry.y) }));
render
.let cameraX = 0;
let cameraY = 0;
addEventListener("mousemove", ({ button, clientX, clientY }) => {
if (pressMM) {
cameraX += clientX - lastX;
cameraY += clientY - lastY;
lastX = clientX;
lastY = clientY;
}
});
const drawTasks = () => {
context.clearRect(0, 0, canvas.width, canvas.height);
context.save();
context.translate(cameraX, cameraY);
for (const { x, y, path, value } of taskList) {
context.beginPath();
context.stroke(path);
}
context.restore();
};
import * as React from "react";
import { DemoContainer } from "@mui/x-date-pickers/internals/demo";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
import { DatePicker } from "@mui/x-date-pickers/DatePicker";
import { StaticDatePicker } from "@mui/x-date-pickers/StaticDatePicker";
import dayjs, { Dayjs } from "dayjs";
export default function BasicDatePicker() {
const [date, setDate] = React.useState<Dayjs | null>(dayjs());
const onDateChange = React.useCallback((value: Dayjs) => {
setDate(value);
}, []);
return (
<LocalizationProvider dateAdapter={AdapterDayjs}>
<DemoContainer components={["DatePicker", "StaticDatePicker"]}>
<DatePicker<Dayjs>
value={date}
views={["month"]}
onChange={onDateChange}
/>
<StaticDatePicker<Dayjs>
value={date}
orientation="landscape"
onChange={onDateChange}
/>
</DemoContainer>
</LocalizationProvider>
);
}
window.open
необходимо предоставить разрешение на открытие окон.