mirror of
https://github.com/bigskysoftware/htmx.git
synced 2025-10-02 15:25:26 +00:00
dist
This commit is contained in:
parent
a664587686
commit
ef08797e19
116
dist/htmx.js
vendored
116
dist/htmx.js
vendored
@ -847,12 +847,17 @@ return (function () {
|
|||||||
triggerSpec.changed = true;
|
triggerSpec.changed = true;
|
||||||
} else if (token === "once") {
|
} else if (token === "once") {
|
||||||
triggerSpec.once = true;
|
triggerSpec.once = true;
|
||||||
|
} else if (token === "consume") {
|
||||||
|
triggerSpec.consume = true;
|
||||||
} else if (token === "delay" && tokens[0] === ":") {
|
} else if (token === "delay" && tokens[0] === ":") {
|
||||||
tokens.shift();
|
tokens.shift();
|
||||||
triggerSpec.delay = parseInterval(consumeUntil(tokens, WHITESPACE_OR_COMMA));
|
triggerSpec.delay = parseInterval(consumeUntil(tokens, WHITESPACE_OR_COMMA));
|
||||||
} else if (token === "from" && tokens[0] === ":") {
|
} else if (token === "from" && tokens[0] === ":") {
|
||||||
tokens.shift();
|
tokens.shift();
|
||||||
triggerSpec.from = consumeUntil(tokens, WHITESPACE_OR_COMMA);
|
triggerSpec.from = consumeUntil(tokens, WHITESPACE_OR_COMMA);
|
||||||
|
} else if (token === "target" && tokens[0] === ":") {
|
||||||
|
tokens.shift();
|
||||||
|
triggerSpec.target = consumeUntil(tokens, WHITESPACE_OR_COMMA);
|
||||||
} else if (token === "throttle" && tokens[0] === ":") {
|
} else if (token === "throttle" && tokens[0] === ":") {
|
||||||
tokens.shift();
|
tokens.shift();
|
||||||
triggerSpec.throttle = parseInterval(consumeUntil(tokens, WHITESPACE_OR_COMMA));
|
triggerSpec.throttle = parseInterval(consumeUntil(tokens, WHITESPACE_OR_COMMA));
|
||||||
@ -922,7 +927,7 @@ return (function () {
|
|||||||
function shouldCancel(elt) {
|
function shouldCancel(elt) {
|
||||||
return elt.tagName === "FORM" ||
|
return elt.tagName === "FORM" ||
|
||||||
(matches(elt, 'input[type="submit"], button') && closest(elt, 'form') !== null) ||
|
(matches(elt, 'input[type="submit"], button') && closest(elt, 'form') !== null) ||
|
||||||
(elt.tagName === "A" && elt.href && elt.href.indexOf('#') !== 0);
|
(elt.tagName === "A" && elt.href && elt.getAttribute('href').indexOf('#') !== 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ignoreBoostedAnchorCtrlClick(elt, evt) {
|
function ignoreBoostedAnchorCtrlClick(elt, evt) {
|
||||||
@ -962,9 +967,20 @@ return (function () {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var eventData = getInternalData(evt);
|
var eventData = getInternalData(evt);
|
||||||
|
if (eventData.handledFor == null) {
|
||||||
|
eventData.handledFor = [];
|
||||||
|
}
|
||||||
var elementData = getInternalData(elt);
|
var elementData = getInternalData(elt);
|
||||||
if (!eventData.handled) {
|
if (eventData.handledFor.indexOf(elt) < 0) {
|
||||||
eventData.handled = true;
|
eventData.handledFor.push(elt);
|
||||||
|
if (triggerSpec.consume) {
|
||||||
|
evt.stopPropagation();
|
||||||
|
}
|
||||||
|
if (triggerSpec.target && evt.target) {
|
||||||
|
if (!evt.target.matches(triggerSpec.target)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (triggerSpec.once) {
|
if (triggerSpec.once) {
|
||||||
if (elementData.triggeredOnce) {
|
if (elementData.triggeredOnce) {
|
||||||
return;
|
return;
|
||||||
@ -1052,8 +1068,13 @@ return (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function processWebSocketSource(elt, wssSource) {
|
function processWebSocketSource(elt, wssSource) {
|
||||||
if (wssSource.indexOf("ws:") !== 0 && wssSource.indexOf("wss:") !== 0) {
|
if (wssSource.indexOf("/") == 0) { // complete absolute paths only
|
||||||
wssSource = "wss:" + wssSource;
|
var base_part = location.hostname + (location.port ? ':'+location.port: '');
|
||||||
|
if (location.protocol == 'https:') {
|
||||||
|
wssSource = "wss://" + base_part + wssSource;
|
||||||
|
} else if (location.protocol == 'http:') {
|
||||||
|
wssSource = "ws://" + base_part + wssSource;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var socket = htmx.createWebSocket(wssSource);
|
var socket = htmx.createWebSocket(wssSource);
|
||||||
socket.onerror = function (e) {
|
socket.onerror = function (e) {
|
||||||
@ -1169,6 +1190,7 @@ return (function () {
|
|||||||
var settleInfo = makeSettleInfo(elt);
|
var settleInfo = makeSettleInfo(elt);
|
||||||
|
|
||||||
selectAndSwap(swapSpec.swapStyle, elt, target, response, settleInfo)
|
selectAndSwap(swapSpec.swapStyle, elt, target, response, settleInfo)
|
||||||
|
settleImmediately(settleInfo.tasks)
|
||||||
triggerEvent(elt, "htmx:sseMessage", event)
|
triggerEvent(elt, "htmx:sseMessage", event)
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1422,7 +1444,7 @@ return (function () {
|
|||||||
while(historyCache.length > 0){
|
while(historyCache.length > 0){
|
||||||
try {
|
try {
|
||||||
localStorage.setItem("htmx-history-cache", JSON.stringify(historyCache));
|
localStorage.setItem("htmx-history-cache", JSON.stringify(historyCache));
|
||||||
return;
|
break;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
triggerErrorEvent(getDocument().body, "htmx:historyCacheError", {cause:e, cache: historyCache})
|
triggerErrorEvent(getDocument().body, "htmx:historyCacheError", {cause:e, cache: historyCache})
|
||||||
historyCache.shift(); // shrink the cache and retry
|
historyCache.shift(); // shrink the cache and retry
|
||||||
@ -1526,22 +1548,21 @@ return (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addRequestIndicatorClasses(elt) {
|
function addRequestIndicatorClasses(elt) {
|
||||||
mutateRequestIndicatorClasses(elt, "add");
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeRequestIndicatorClasses(elt) {
|
|
||||||
mutateRequestIndicatorClasses(elt, "remove");
|
|
||||||
}
|
|
||||||
|
|
||||||
function mutateRequestIndicatorClasses(elt, action) {
|
|
||||||
var indicator = getClosestAttributeValue(elt, 'hx-indicator');
|
var indicator = getClosestAttributeValue(elt, 'hx-indicator');
|
||||||
if (indicator) {
|
if (indicator) {
|
||||||
var indicators = querySelectorAllExt(elt, indicator);
|
var indicators = querySelectorAllExt(elt, indicator);
|
||||||
} else {
|
} else {
|
||||||
indicators = [elt];
|
indicators = [elt];
|
||||||
}
|
}
|
||||||
forEach(indicators, function(ic) {
|
forEach(indicators, function (ic) {
|
||||||
ic.classList[action].call(ic.classList, htmx.config.requestClass);
|
ic.classList["add"].call(ic.classList, htmx.config.requestClass);
|
||||||
|
});
|
||||||
|
return indicators;
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeRequestIndicatorClasses(indicators) {
|
||||||
|
forEach(indicators, function (ic) {
|
||||||
|
ic.classList["remove"].call(ic.classList, htmx.config.requestClass);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1919,16 +1940,22 @@ return (function () {
|
|||||||
function ajaxHelper(verb, path, context) {
|
function ajaxHelper(verb, path, context) {
|
||||||
if (context) {
|
if (context) {
|
||||||
if (context instanceof Element || isType(context, 'String')) {
|
if (context instanceof Element || isType(context, 'String')) {
|
||||||
issueAjaxRequest(verb, path, null, null, null, resolveTarget(context));
|
return issueAjaxRequest(verb, path, null, null, null, resolveTarget(context));
|
||||||
} else {
|
} else {
|
||||||
issueAjaxRequest(verb, path, resolveTarget(context.source), context.event, context.handler, resolveTarget(context.target));
|
return issueAjaxRequest(verb, path, resolveTarget(context.source), context.event, context.handler, resolveTarget(context.target));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
issueAjaxRequest(verb, path);
|
return issueAjaxRequest(verb, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function issueAjaxRequest(verb, path, elt, event, responseHandler, targetOverride) {
|
function issueAjaxRequest(verb, path, elt, event, responseHandler, targetOverride) {
|
||||||
|
var resolve = null;
|
||||||
|
var reject = null;
|
||||||
|
var promise = new Promise(function (_resolve, _reject) {
|
||||||
|
resolve = _resolve;
|
||||||
|
reject = _reject;
|
||||||
|
});
|
||||||
if(elt == null) {
|
if(elt == null) {
|
||||||
elt = getDocument().body;
|
elt = getDocument().body;
|
||||||
}
|
}
|
||||||
@ -1966,12 +1993,18 @@ return (function () {
|
|||||||
// prompt returns null if cancelled and empty string if accepted with no entry
|
// prompt returns null if cancelled and empty string if accepted with no entry
|
||||||
if (promptResponse === null ||
|
if (promptResponse === null ||
|
||||||
!triggerEvent(elt, 'htmx:prompt', {prompt: promptResponse, target:target}))
|
!triggerEvent(elt, 'htmx:prompt', {prompt: promptResponse, target:target}))
|
||||||
return endRequestLock();
|
resolve();
|
||||||
|
endRequestLock();
|
||||||
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
var confirmQuestion = getClosestAttributeValue(elt, "hx-confirm");
|
var confirmQuestion = getClosestAttributeValue(elt, "hx-confirm");
|
||||||
if (confirmQuestion) {
|
if (confirmQuestion) {
|
||||||
if(!confirm(confirmQuestion)) return endRequestLock();
|
if(!confirm(confirmQuestion)) {
|
||||||
|
resolve();
|
||||||
|
endRequestLock()
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
@ -2014,7 +2047,9 @@ return (function () {
|
|||||||
|
|
||||||
if(errors && errors.length > 0){
|
if(errors && errors.length > 0){
|
||||||
triggerEvent(elt, 'htmx:validation:halted', requestConfig)
|
triggerEvent(elt, 'htmx:validation:halted', requestConfig)
|
||||||
return endRequestLock();
|
resolve();
|
||||||
|
endRequestLock();
|
||||||
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
var splitPath = path.split("#");
|
var splitPath = path.split("#");
|
||||||
@ -2060,25 +2095,45 @@ return (function () {
|
|||||||
triggerErrorEvent(elt, 'htmx:onLoadError', mergeObjects({error:e}, responseInfo));
|
triggerErrorEvent(elt, 'htmx:onLoadError', mergeObjects({error:e}, responseInfo));
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
removeRequestIndicatorClasses(elt);
|
removeRequestIndicatorClasses(indicators);
|
||||||
var finalElt = getInternalData(elt).replacedWith || elt;
|
var finalElt = elt;
|
||||||
|
if (!bodyContains(elt)) {
|
||||||
|
finalElt = getInternalData(target).replacedWith || target;
|
||||||
|
}
|
||||||
triggerEvent(finalElt, 'htmx:afterRequest', responseInfo);
|
triggerEvent(finalElt, 'htmx:afterRequest', responseInfo);
|
||||||
triggerEvent(finalElt, 'htmx:afterOnLoad', responseInfo);
|
triggerEvent(finalElt, 'htmx:afterOnLoad', responseInfo);
|
||||||
|
resolve();
|
||||||
endRequestLock();
|
endRequestLock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xhr.onerror = function () {
|
xhr.onerror = function () {
|
||||||
removeRequestIndicatorClasses(elt);
|
removeRequestIndicatorClasses(indicators);
|
||||||
triggerErrorEvent(elt, 'htmx:afterRequest', responseInfo);
|
var finalElt = elt;
|
||||||
triggerErrorEvent(elt, 'htmx:sendError', responseInfo);
|
if (!bodyContains(elt)) {
|
||||||
|
finalElt = getInternalData(target).replacedWith || target;
|
||||||
|
}
|
||||||
|
triggerErrorEvent(finalElt, 'htmx:afterRequest', responseInfo);
|
||||||
|
triggerErrorEvent(finalElt, 'htmx:sendError', responseInfo);
|
||||||
|
reject();
|
||||||
endRequestLock();
|
endRequestLock();
|
||||||
}
|
}
|
||||||
xhr.onabort = function() {
|
xhr.onabort = function() {
|
||||||
removeRequestIndicatorClasses(elt);
|
removeRequestIndicatorClasses(indicators);
|
||||||
|
var finalElt = elt;
|
||||||
|
if (!bodyContains(elt)) {
|
||||||
|
finalElt = getInternalData(target).replacedWith || target;
|
||||||
|
}
|
||||||
|
triggerErrorEvent(finalElt, 'htmx:afterRequest', responseInfo);
|
||||||
|
triggerErrorEvent(finalElt, 'htmx:sendAbort', responseInfo);
|
||||||
|
reject();
|
||||||
endRequestLock();
|
endRequestLock();
|
||||||
}
|
}
|
||||||
if(!triggerEvent(elt, 'htmx:beforeRequest', responseInfo)) return endRequestLock();
|
if(!triggerEvent(elt, 'htmx:beforeRequest', responseInfo)){
|
||||||
addRequestIndicatorClasses(elt);
|
resolve();
|
||||||
|
endRequestLock()
|
||||||
|
return promise
|
||||||
|
}
|
||||||
|
var indicators = addRequestIndicatorClasses(elt);
|
||||||
|
|
||||||
forEach(['loadstart', 'loadend', 'progress', 'abort'], function(eventName) {
|
forEach(['loadstart', 'loadend', 'progress', 'abort'], function(eventName) {
|
||||||
forEach([xhr, xhr.upload], function (target) {
|
forEach([xhr, xhr.upload], function (target) {
|
||||||
@ -2092,6 +2147,7 @@ return (function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
xhr.send(verb === 'get' ? null : encodeParamsForBody(xhr, elt, filteredParameters));
|
xhr.send(verb === 'get' ? null : encodeParamsForBody(xhr, elt, filteredParameters));
|
||||||
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleAjaxResponse(elt, responseInfo) {
|
function handleAjaxResponse(elt, responseInfo) {
|
||||||
|
2
dist/htmx.min.js
vendored
2
dist/htmx.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
dist/htmx.min.js.gz
vendored
BIN
dist/htmx.min.js.gz
vendored
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user