first commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
||||
"use strict";
|
||||
|
||||
var _scrollToElement = _interopRequireDefault(require("./misc/scroll-to-element.js"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||||
|
||||
var submittedForm = window.mc4wp_submitted_form;
|
||||
var forms = window.mc4wp.forms;
|
||||
|
||||
function trigger(event, args) {
|
||||
forms.trigger(args[0].id + '.' + event, args);
|
||||
forms.trigger(event, args);
|
||||
}
|
||||
|
||||
function handleFormRequest(form, eventName, errors, data) {
|
||||
var timeStart = Date.now();
|
||||
var pageHeight = document.body.clientHeight; // re-populate form if an error occurred
|
||||
|
||||
if (errors) {
|
||||
form.setData(data);
|
||||
} // scroll to form
|
||||
|
||||
|
||||
if (window.scrollY <= 10 && submittedForm.auto_scroll) {
|
||||
(0, _scrollToElement["default"])(form.element);
|
||||
} // trigger events on window.load so all other scripts have loaded
|
||||
|
||||
|
||||
window.addEventListener('load', function () {
|
||||
trigger('submitted', [form]);
|
||||
|
||||
if (errors) {
|
||||
trigger('error', [form, errors]);
|
||||
} else {
|
||||
// form was successfully submitted
|
||||
trigger('success', [form, data]); // subscribed / unsubscribed
|
||||
|
||||
trigger(eventName, [form, data]); // for BC: always trigger "subscribed" event when firing "updated_subscriber" event
|
||||
|
||||
if (eventName === 'updated_subscriber') {
|
||||
trigger('subscribed', [form, data, true]);
|
||||
}
|
||||
} // scroll to form again if page height changed since last scroll, eg because of slow loading images
|
||||
// (only if load didn't take too long to prevent overtaking user scroll)
|
||||
|
||||
|
||||
var timeElapsed = Date.now() - timeStart;
|
||||
|
||||
if (submittedForm.auto_scroll && timeElapsed > 1000 && timeElapsed < 2000 && document.body.clientHeight !== pageHeight) {
|
||||
(0, _scrollToElement["default"])(form.element);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (submittedForm) {
|
||||
var element = document.getElementById(submittedForm.element_id);
|
||||
var form = forms.getByElement(element);
|
||||
handleFormRequest(form, submittedForm.event, submittedForm.errors, submittedForm.data);
|
||||
}
|
||||
|
||||
},{"./misc/scroll-to-element.js":2}],2:[function(require,module,exports){
|
||||
"use strict";
|
||||
|
||||
function scrollTo(element) {
|
||||
var x = window.pageXOffset || document.documentElement.scrollLeft;
|
||||
var y = calculateScrollOffset(element);
|
||||
window.scrollTo(x, y);
|
||||
}
|
||||
|
||||
function calculateScrollOffset(elem) {
|
||||
var body = document.body;
|
||||
var html = document.documentElement;
|
||||
var elemRect = elem.getBoundingClientRect();
|
||||
var clientHeight = html.clientHeight;
|
||||
var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
|
||||
var scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;
|
||||
var maxScrollPosition = documentHeight - clientHeight;
|
||||
return Math.min(scrollPosition + window.pageYOffset, maxScrollPosition);
|
||||
}
|
||||
|
||||
module.exports = scrollTo;
|
||||
|
||||
},{}]},{},[1]);
|
||||
Reference in New Issue
Block a user