|
|
@@ -0,0 +1,157 @@
|
|
|
+package wtypes
|
|
|
+
|
|
|
+// IHxTrigger -- атрибут триггера HTMX (hx-trigger)
|
|
|
+//
|
|
|
+// # Список событий разделяется запятыми
|
|
|
+//
|
|
|
+// click -- простой щелчок
|
|
|
+//
|
|
|
+// click[ctrlKey] -- щелчок с удержанием CTRL
|
|
|
+//
|
|
|
+// click[ctrlKey&&shiftKey]
|
|
|
+//
|
|
|
+// click[checkGlobalState()]
|
|
|
+//
|
|
|
+// Модификаторы:
|
|
|
+//
|
|
|
+// once — событие будет срабатывать только один раз (например, при первом нажатии)
|
|
|
+//
|
|
|
+// changed — событие сработает только в том случае, если значение элемента изменилось.
|
|
|
+// Пожалуйста, обратите внимание, что change — это название события, а changed —
|
|
|
+// название модификатора.
|
|
|
+//
|
|
|
+// delay:<timing declaration> — перед тем как событие вызовет запрос, произойдёт
|
|
|
+// задержка. Если событие произойдёт снова, задержка сбросится.
|
|
|
+//
|
|
|
+// throttle:<timing declaration> — дросселирование произойдёт после того, как событие
|
|
|
+// вызовет запрос. Если событие произойдёт снова до завершения задержки, оно будет
|
|
|
+// проигнорировано, а элемент сработает в конце задержки.
|
|
|
+//
|
|
|
+// from:<Extended CSS selector> — позволяет событию, запускающему запрос, исходить от
|
|
|
+// другого элемента в документе (например, прослушивание события нажатия клавиши в теле
|
|
|
+// документа для поддержки горячих клавиш). Подробнее
|
|
|
+// https://htmx.org/attributes/hx-trigger/
|
|
|
+//
|
|
|
+// target:<CSS selector> — позволяет фильтровать события с помощью CSS-селектора по цели
|
|
|
+// события.
|
|
|
+//
|
|
|
+// queue:<queue option> — определяет, как события ставятся в очередь, если событие
|
|
|
+//
|
|
|
+// происходит во время выполнения запроса на другое событие. Возможные варианты:
|
|
|
+//
|
|
|
+// first - поставить в очередь первое событие
|
|
|
+//
|
|
|
+// last - поставить в очередь последнее событие (по умолчанию)
|
|
|
+//
|
|
|
+// all - поставить в очередь все события (отправить запрос для каждого события)
|
|
|
+//
|
|
|
+// none - не ставить в очередь новые события
|
|
|
+//
|
|
|
+// Основные события DOM
|
|
|
+//
|
|
|
+// click - Срабатывает при клике на элемент.
|
|
|
+//
|
|
|
+// dblclick - Срабатывает при двойном клике на элемент.
|
|
|
+//
|
|
|
+// mouseenter - Срабатывает, когда курсор мыши наводится на элемент.
|
|
|
+//
|
|
|
+// mousemove -- Срабатывает, когда мышь двигается по элементу
|
|
|
+//
|
|
|
+// mouseleave - Срабатывает, когда курсор мыши покидает элемент.
|
|
|
+//
|
|
|
+// mouseover - Срабатывает, когда курсор мыши наводится на элемент или его потомков.
|
|
|
+//
|
|
|
+// mouseout - Срабатывает, когда курсор мыши покидает элемент или его потомков.
|
|
|
+//
|
|
|
+// mousedown - Срабатывает при нажатии кнопки мыши на элементе.
|
|
|
+//
|
|
|
+// mouseup - Срабатывает при отпускании кнопки мыши на элементе.
|
|
|
+//
|
|
|
+// keydown - Срабатывает при нажатии клавиши на клавиатуре.
|
|
|
+//
|
|
|
+// keyup - Срабатывает при отпускании клавиши на клавиатуре.
|
|
|
+//
|
|
|
+// keypress - Срабатывает при нажатии и удержании клавиши на клавиатуре.
|
|
|
+//
|
|
|
+// focus - Срабатывает при фокусировке на элементе.
|
|
|
+//
|
|
|
+// blur - Срабатывает при потере фокуса элементом.
|
|
|
+//
|
|
|
+// change - Срабатывает при изменении значения элемента (например, в input или select).
|
|
|
+//
|
|
|
+// input - Срабатывает при вводе данных в элемент (например, в input или textarea).
|
|
|
+//
|
|
|
+// submit - Срабатывает при отправке формы.
|
|
|
+//
|
|
|
+// load - Срабатывает при загрузке элемента (например, изображения).
|
|
|
+//
|
|
|
+// scroll - Срабатывает при прокрутке элемента.
|
|
|
+//
|
|
|
+// resize - Срабатывает при изменении размеров окна.
|
|
|
+//
|
|
|
+// Нестандартные события
|
|
|
+//
|
|
|
+// load - срабатывает при загрузке (полезно для отложенной загрузки чего-либо)
|
|
|
+//
|
|
|
+// revealed - срабатывает при прокрутке элемента в область просмотра (также полезно
|
|
|
+// для отложенной загрузки). См. документацию.
|
|
|
+//
|
|
|
+// intersect — срабатывает один раз, когда элемент впервые пересекает область просмотра.
|
|
|
+//
|
|
|
+// Поддерживает два дополнительных параметра:
|
|
|
+//
|
|
|
+// root:<selector> - CSS-селектор корневого элемента для пересечения
|
|
|
+//
|
|
|
+// threshold:<float> — число с плавающей запятой от 0,0 до 1,0, указывающее,
|
|
|
+// при каком проценте пересечения должно срабатывать событие
|
|
|
+//
|
|
|
+// htmx:afterRequest - Срабатывает после завершения AJAX-запроса.
|
|
|
+//
|
|
|
+// htmx:beforeRequest - Срабатывает перед отправкой AJAX-запроса.
|
|
|
+//
|
|
|
+// htmx:configRequest - Срабатывает перед настройкой AJAX-запроса.
|
|
|
+//
|
|
|
+// htmx:afterSettle - Срабатывает после применения изменений в DOM.
|
|
|
+//
|
|
|
+// htmx:afterSwap - Срабатывает после замены содержимого в DOM.
|
|
|
+//
|
|
|
+// Примеры
|
|
|
+//
|
|
|
+// hx-trigger="every 1s">
|
|
|
+//
|
|
|
+// hx-trigger="load, click delay:1s"></div>
|
|
|
+//
|
|
|
+// В этом примере ресурс будет загружаться сразу после загрузки страницы, а затем
|
|
|
+// снова с задержкой в одну секунду после каждого нажатия.
|
|
|
+//
|
|
|
+// <div hx-trigger="mouseenter delay:500ms" hx-get="/example">Hover me</div>
|
|
|
+//
|
|
|
+// Указывает элемент, от которого будет считываться событие:
|
|
|
+//
|
|
|
+// <div hx-trigger="click from:#button" hx-get="/example">Click the button</div>
|
|
|
+//
|
|
|
+// <button id="button">Click me</button>
|
|
|
+//
|
|
|
+// Получение абсолютных координат курсора
|
|
|
+//
|
|
|
+// <div hx-trigger="mousemove" hx-get="/get-coordinates"
|
|
|
+//
|
|
|
+// hx-vals='js:{x: event.clientX, y: event.clientY}'
|
|
|
+//
|
|
|
+// style="width: 300px; height: 200px; border: 1px solid black;">
|
|
|
+//
|
|
|
+// Наведите курсор на меня
|
|
|
+//
|
|
|
+// </div>
|
|
|
+//
|
|
|
+// Для относительной позиции:
|
|
|
+//
|
|
|
+// hx-vals='js:{x: event.offsetX, y: event.offsetY}'
|
|
|
+type IHxTrigger interface {
|
|
|
+ // Set -- устанавливает триггер атрибута
|
|
|
+ Set(string)
|
|
|
+ // Get -- возвращает триггер атрибута
|
|
|
+ Get() string
|
|
|
+ // String -- возвращает строковое значение тэга
|
|
|
+ String() string
|
|
|
+}
|