Forwarded from Kirill Rez
Volond Apps pinned «https://docs.google.com/spreadsheets/d/1Lk6OClOPA8p94fspQrs8-M-W080tb244U-fWGqvnApk/edit?gid=253009584#gid=253009584»
const handleCardClick = (e: React.MouseEvent) => {
const card = e.currentTarget;
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left - rect.width / 2;
const y = e.clientY - rect.top - rect.height / 2;
card.style.transform = perspective(1000px) rotateX(${-y / 10}deg) rotateY(${x / 10}deg);
setTimeout(() => {
card.style.transform = '';
}, 100);
setPoints(points + pointsToAdd); setClicks([...clicks, { id: Date.now(), x: e.pageX, y: e.pageY }]);
};Обработчик события клика:
const handleCardClick = (e: React.MouseEvent<HTMLDivElement>) => { ... } ```
— это функция, которая принимает событие клика как аргумент.
Получение элемента карточки:
```const card = e.currentTarget;```— здесь currentTarget указывает на элемент, на который было совершено нажатие, т.е. на карточку.
Получение размеров и позиции карточки:
const rect = card.getBoundingClientRect();
— этот метод возвращает размеры и положение карточки относительно видимой области экрана.
Вычисление смещения клика:
const x = e.clientX - rect.left - rect.width / 2;
— вычисляет смещение по оси X относительно центра карточки.
const y = e.clientY - rect.top - rect.height / 2;
— вычисляет смещение по оси Y относительно центра карточки.
Применение 3D-трансформации:
card.style.transform = perspective(1000px) rotateX(−y/10deg)rotateY({x / 10}deg); ```— здесь устанавливается CSS-трансформация, создающая эффект поворота карточки по осям X и Y в зависимости от положения курсора мыши.
Сброс трансформации:
```setTimeout(() => { card.style.transform = ''; }, 100); ```— через 100 миллисекунд трансформация сбрасывается, возвращая карточку в исходное положение.
Обновление очков и кликов:
```setPoints(points + pointsToAdd); — обновляет состояние очков, добавляя к текущему значению points значение pointsToAdd.
```setClicks([...clicks, { id: Date.now(), x: e.pageX, y: e.pageY }]);```— добавляет новую запись о клике в массив clicks, содержащую уникальный идентификатор (время нажатия) и координаты клика.
В итоге, эта функция создает интерактивный эффект на карточке при клике, а также обновляет состояние приложения, связанное с очками и кликами
Отсутствие результата тоже результат
Точнее НУ ОЧЕНЬ МЕДЛЕННЫЙ....
XML_to_JSON
Точнее НУ ОЧЕНЬ МЕДЛЕННЫЙ....
XML_to_JSON
/* Source: https://gist.github.com/erickoledadevrel/6b1e9e2796e3c21f669f */
/**
* Converts an XML string to a JSON object, using logic similar to the
* sunset method Xml.parse().
* @param {string} xml The XML to parse.
* @returns {Object} The parsed XML.
*/
function XML_to_JSON(xml) {
var doc = XmlService.parse(xml);
var result = {};
var root = doc.getRootElement();
result[root.getName()] = elementToJSON(root);
return result;
}
/**
* Converts an XmlService element to a JSON object, using logic similar to
* the sunset method Xml.parse().
* @param {XmlService.Element} element The element to parse.
* @returns {Object} The parsed element.
*/
function elementToJSON(element) {
var result = {};
// Attributes.
element.getAttributes().forEach(function (attribute) {
result[attribute.getName()] = attribute.getValue();
});
// Child elements.
element.getChildren().forEach(function (child) {
var key = child.getName();
var value = elementToJSON(child);
if (result[key]) {
if (!(result[key] instanceof Array)) {
result[key] = [result[key]];
}
result[key].push(value);
} else {
result[key] = value;
}
});
// Text content.
if (element.getText()) {
result['Text'] = element.getText();
}
return result;
}
Нумерация строк формулой
Иногда нужно пронумеровать строки формулой что бы при сортировке отображалось именно в какой строке находиться значения
Иногда нужно пронумеровать строки формулой что бы при сортировке отображалось именно в какой строке находиться значения
=Let(title;"Строка";if(CountA(A2:A)>0;{title;arrayformula(Row(indirect("A2:A"&CountA(A1:A))))};title))
Forwarded from Дмитрий
Ну и я тогда поделюсь) когда то мне захотелось сделать интерфейс, но я не шарю. Нашел openasapp.net
Суть простая: делаешь таблицу на формулах, например подсчет ЗП или KPI или подобный "специфичный калькулятор", заливаешь в платформу и в UI конструкторе делаешь кнопки, ползунки и пр. ссылаясь на ячейки. Работает бесплатно до какого то лимита уже не помню какого. В маркете скачиваешь универсальное приложение, которое то ли облачно то ли скриптово делает из него то что сделал ты в онлайн редакторе. Эта тема была задолго до аппшита, Апшит я так и не понял честно говоря, а в этой штуке разобрался когда то.
ps ну и этим можно делиться с людьми просто ссылкой, лимит вроде как раз на кол-во юзеров. Накидал что то удобное, расшарил, нужно обновить - обновил у всех
Суть простая: делаешь таблицу на формулах, например подсчет ЗП или KPI или подобный "специфичный калькулятор", заливаешь в платформу и в UI конструкторе делаешь кнопки, ползунки и пр. ссылаясь на ячейки. Работает бесплатно до какого то лимита уже не помню какого. В маркете скачиваешь универсальное приложение, которое то ли облачно то ли скриптово делает из него то что сделал ты в онлайн редакторе. Эта тема была задолго до аппшита, Апшит я так и не понял честно говоря, а в этой штуке разобрался когда то.
ps ну и этим можно делиться с людьми просто ссылкой, лимит вроде как раз на кол-во юзеров. Накидал что то удобное, расшарил, нужно обновить - обновил у всех
Forwarded from volond
https://www.youtube.com/watch?v=-Ido-G7J6iU Вот тут чудах из браузера отправляет форму в таблицу через развернутый webApp чего хотелось бы избежать
YouTube
Как отправить данные HTML-формы в Google Sheets
Смотрим как (1) устроена HTML-форма, (2) CSS-стили для неё, (3) как устроена функция doPost() в Google Таблице и (4) как устроен JavaScript на HTML-странице (спойлер - используется Fetch API)
👉 [01:08] 1. Как устроена форма на HTML
👉 [03:53] 2. CSS-оформление…
👉 [01:08] 1. Как устроена форма на HTML
👉 [03:53] 2. CSS-оформление…
Подсчитайте общее время выполнения вашего проекта Google Apps Script
Gist
Count your Google Apps Script project's total execution time
Count your Google Apps Script project's total execution time - runtimeCount.gs
Forwarded from volond
C
=image("https://latex.codecogs.com/svg.image?1+sin^2(x)")
Forwarded from Google Apps Script | Канал
Библиотека GenAIApp разработана для создания, управления и взаимодействия с чат-ботами на базе ИИ с использованием API Gemini и OpenAI (насколько я понимаю, Yandex GPT туда прикрутить не проблема). Библиотека предоставляет такие функции, как текстовый разговор, просмотр веб-страниц, анализ изображений и многое другое, позволяя вам создавать универсальные приложения чата на основе ИИ, которые могут интегрироваться с различными функциями и внешними источниками данных.
Еще раз, это обертка над API всяких ИИ, которая позволяет в универсальном виде управлять диалогами и решать определенные задачи
https://github.com/scriptit-fr/GenAIApp
Еще раз, это обертка над API всяких ИИ, которая позволяет в универсальном виде управлять диалогами и решать определенные задачи
https://github.com/scriptit-fr/GenAIApp
Forwarded from Alexander
Только если вдруг будете всё-таки подключать будьте аккуратны
скрипт подключенный к gcp работает неделю и потом его надо переавторизовывать
Вот одно из решений
https://docs.google.com/document/d/13eVgMqjGJj8oCIG4qozmAC0-jStOqdx2rfHjIwAbIzA/edit?usp=sharing
скрипт подключенный к gcp работает неделю и потом его надо переавторизовывать
Вот одно из решений
https://docs.google.com/document/d/13eVgMqjGJj8oCIG4qozmAC0-jStOqdx2rfHjIwAbIzA/edit?usp=sharing
Forwarded from PushAll
Хабрахабр:PL/V8: JavaScript в PostgreSQL
Привет, Хабр!Сегодня рассмотрим PL/V8. Это расширение PostgreSQL, которое позволяет использовать JavaScript через движок V8 (тот самый, который стоит за Node.js). Это открывает массу возможностей:- Писать хранимые процедуры на JavaScript.- Выполнять сложную бизнес-логику прямо в базе данных.- Соз?
Привет, Хабр!Сегодня рассмотрим PL/V8. Это расширение PostgreSQL, которое позволяет использовать JavaScript через движок V8 (тот самый, который стоит за Node.js). Это открывает массу возможностей:- Писать хранимые процедуры на JavaScript.- Выполнять сложную бизнес-логику прямо в базе данных.- Соз?
Forwarded from Google Apps Script | Канал
Так-так-так... Что придумал Брюс на этот раз?
https://github.com/brucemcpherson/gas-fakes
Если мне не изменяет память это уже 3 или 4 попытка эмулировать Apps Script
Хорошая идея, и можно потренироваться на открытом коде 😉
https://github.com/brucemcpherson/gas-fakes
$> npm i @mcpher/gas-fakes
Идея заключается в том, что вы можете запустить службы GAS (которые реализованы) локально на Node, и она будет использовать различные API Google Workspace для эмуляции того, что произойдет, если вы запустите то же самое в среде GAS.
Если мне не изменяет память это уже 3 или 4 попытка эмулировать Apps Script
Хорошая идея, и можно потренироваться на открытом коде 😉
GitHub
GitHub - brucemcpherson/gas-fakes: A proof of concept implementation of Apps Script Environment on Node
A proof of concept implementation of Apps Script Environment on Node - brucemcpherson/gas-fakes
16. REST Client
Возможно, плагин REST Client не покажется вам супер полезным на первый взгляд по сравнению, например, с привычным Postman. Однако, поиграв с ним немного, JavaScript разработчик уже не сможет жить по-прежнему.
Это замечательный инструмент для тестирования API. Вы можете просто создать новый файл и написать в нем:
https://google.com
Теперь чтобы отправить HTTP GET-запрос, вам нужно просто выделить эту строку, открыть палитру команд (CTRL+SHIFT+P) и выбрать в ней Rest Client: Send Request. Данные полученного ответа будут показаны в новой вкладке – очень удобно и полезно!
rest client for vscode
Вы даже можете передать GET-параметры или тело POST-запроса, добавив всего пару строк кода:
POST https://test.someapi.com/v1/account/user/login/
Content-Type: application/json
{ "email": "someemail@gmail.com", "password": 1 }
Этот фрагмент соответствует POST-запросу с параметрами {"email": "someemail@gmail.com", "пароль": 1 }.
Это лишь крошечная часть возможностей REST Client. Вы можете узнать о нем больше, если интересно.
Возможно, плагин REST Client не покажется вам супер полезным на первый взгляд по сравнению, например, с привычным Postman. Однако, поиграв с ним немного, JavaScript разработчик уже не сможет жить по-прежнему.
Это замечательный инструмент для тестирования API. Вы можете просто создать новый файл и написать в нем:
https://google.com
Теперь чтобы отправить HTTP GET-запрос, вам нужно просто выделить эту строку, открыть палитру команд (CTRL+SHIFT+P) и выбрать в ней Rest Client: Send Request. Данные полученного ответа будут показаны в новой вкладке – очень удобно и полезно!
rest client for vscode
Вы даже можете передать GET-параметры или тело POST-запроса, добавив всего пару строк кода:
POST https://test.someapi.com/v1/account/user/login/
Content-Type: application/json
{ "email": "someemail@gmail.com", "password": 1 }
Этот фрагмент соответствует POST-запросу с параметрами {"email": "someemail@gmail.com", "пароль": 1 }.
Это лишь крошечная часть возможностей REST Client. Вы можете узнать о нем больше, если интересно.
Visualstudio
REST Client - Visual Studio Marketplace
Extension for Visual Studio Code - REST Client for Visual Studio Code