/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 1); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* * Build a path for redirection. * * - Adds a timestamp GET param for cache busting * - Inserts an ID attribute if necessary */ var buildSuccessPath = exports.buildSuccessPath = function buildSuccessPath(path, json) { var timestamp = new Date().valueOf(); if (path.indexOf('?') > -1) { path += '&t=' + timestamp; } else { path += '?t=' + timestamp; } if (json && json.id) { path = path.replace(':id', json.id); } return path; }; /* * Remote element */ var removeElement = exports.removeElement = function removeElement(element) { element.parentElement.removeChild(element); }; /* * Create an error element */ var createErrorParagraph = exports.createErrorParagraph = function createErrorParagraph(text, base) { var p = document.createElement('p'); p.classList.add('form-error'); p.classList.add(base ? 'form-error-base' : 'form-error-inline'); p.innerText = text; return p; }; /* * Convert a query into an array of elements */ var querySelectorArray = exports.querySelectorArray = function querySelectorArray(parent, selector) { var query = parent.querySelectorAll(selector); var array = Array.prototype.slice.call(query); return array; }; /* * Take a single error message and format it as if it were * a json error coming from the server */ var formatStringAsErrors = exports.formatStringAsErrors = function formatStringAsErrors(errorString) { return { base: [errorString] }; }; /* * Return true if the element is in view */ var elementIsInView = exports.elementIsInView = function elementIsInView(el) { var rect = el.getBoundingClientRect(); var w = window, d = document; return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (w.innerHeight || d.documentElement.clientHeight) && rect.right <= (w.innerWidth || d.documentElement.clientWidth); }; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _handlers = __webpack_require__(2); var handlers = _interopRequireWildcard(_handlers); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } var MODULE_LOADED = '_rails_validator_loaded'; var init = function init() { window[MODULE_LOADED] = true; addListener('form', 'ajax:before', handlers.onRemoteFormBefore); addListener('form[data-success], a[data-success]', 'ajax:success', handlers.onRemoteFormSuccess); addListener('form[data-errors]', 'ajax:error', handlers.onRemoteFormErrors); }; var addListener = function addListener(selector, event, fn) { document.addEventListener(event, function (e) { if (e.target.matches(selector)) { e.stopPropagation(); fn.call(e.target, e); } }); }; if (!window[MODULE_LOADED]) { init(); } // https://developer.mozilla.org/en-US/docs/Web/API/Element/matches if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.onRemoteFormErrors = exports.onRemoteFormSuccess = exports.onRemoteFormBefore = undefined; var _errors = __webpack_require__(3); var errors = _interopRequireWildcard(_errors); var _helpers = __webpack_require__(0); var helpers = _interopRequireWildcard(_helpers); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } /* * Tell the server we want a json response */ var onRemoteFormBefore = exports.onRemoteFormBefore = function onRemoteFormBefore(event) { var form = event.target; if (form.getAttribute('data-type') === null) { form.setAttribute('data-type', 'json'); } }; /* * Called when a remote form is submitted with a data-success configured * Redirects to the configured path, or reloads the page if "reload" is passed * * ie: *