123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794 |
- (function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["notie"] = factory();
- else
- root["notie"] = factory();
- })(this, function() {
- return /******/ (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;
- /******/ // identity function for calling harmony imports with the correct context
- /******/ __webpack_require__.i = function(value) { return value; };
- /******/ // 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 = 0);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
- function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
- // ====================
- // options
- // ====================
- var positions = {
- top: 'top',
- bottom: 'bottom'
- };
- var options = {
- alertTime: 3,
- dateMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
- overlayClickDismiss: true,
- overlayOpacity: 0.75,
- transitionCurve: 'ease',
- transitionDuration: 0.3,
- transitionSelector: 'all',
- classes: {
- container: 'notie-container',
- textbox: 'notie-textbox',
- textboxInner: 'notie-textbox-inner',
- button: 'notie-button',
- element: 'notie-element',
- elementHalf: 'notie-element-half',
- elementThird: 'notie-element-third',
- overlay: 'notie-overlay',
- backgroundSuccess: 'notie-background-success',
- backgroundWarning: 'notie-background-warning',
- backgroundError: 'notie-background-error',
- backgroundInfo: 'notie-background-info',
- backgroundNeutral: 'notie-background-neutral',
- backgroundOverlay: 'notie-background-overlay',
- alert: 'notie-alert',
- inputField: 'notie-input-field',
- selectChoiceRepeated: 'notie-select-choice-repeated',
- dateSelectorInner: 'notie-date-selector-inner',
- dateSelectorUp: 'notie-date-selector-up'
- },
- ids: {
- overlay: 'notie-overlay'
- },
- positions: {
- alert: positions.top,
- force: positions.top,
- confirm: positions.top,
- input: positions.top,
- select: positions.bottom,
- date: positions.top
- }
- };
- var setOptions = exports.setOptions = function setOptions(newOptions) {
- options = _extends({}, options, newOptions, {
- classes: _extends({}, options.classes, newOptions.classes),
- ids: _extends({}, options.ids, newOptions.ids),
- positions: _extends({}, options.positions, newOptions.positions)
- });
- };
- // ====================
- // helpers
- // ====================
- var tick = function tick() {
- return new Promise(function (resolve) {
- return setTimeout(resolve, 0);
- });
- };
- var wait = function wait(time) {
- return new Promise(function (resolve) {
- return setTimeout(resolve, time * 1000);
- });
- };
- var blur = function blur() {
- document.activeElement && document.activeElement.blur();
- };
- var generateRandomId = function generateRandomId() {
- // RFC4122 version 4 compliant UUID
- var id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = Math.random() * 16 | 0;
- var v = c === 'x' ? r : r & 0x3 | 0x8;
- return v.toString(16);
- });
- return 'notie-' + id;
- };
- var typeToClassLookup = {
- 1: options.classes.backgroundSuccess,
- success: options.classes.backgroundSuccess,
- 2: options.classes.backgroundWarning,
- warning: options.classes.backgroundWarning,
- 3: options.classes.backgroundError,
- error: options.classes.backgroundError,
- 4: options.classes.backgroundInfo,
- info: options.classes.backgroundInfo,
- 5: options.classes.backgroundNeutral,
- neutral: options.classes.backgroundNeutral
- };
- var getTransition = function getTransition() {
- return options.transitionSelector + ' ' + options.transitionDuration + 's ' + options.transitionCurve;
- };
- var enterClicked = function enterClicked(event) {
- return event.keyCode === 13;
- };
- var escapeClicked = function escapeClicked(event) {
- return event.keyCode === 27;
- };
- var addToDocument = function addToDocument(element, position) {
- element.classList.add(options.classes.container);
- element.style[position] = '-10000px';
- document.body.appendChild(element);
- element.style[position] = '-' + element.offsetHeight + 'px';
- if (element.listener) window.addEventListener('keydown', element.listener);
- tick().then(function () {
- element.style.transition = getTransition();
- element.style[position] = 0;
- });
- };
- var removeFromDocument = function removeFromDocument(id, position) {
- var element = document.getElementById(id);
- if (!element) return;
- element.style[position] = '-' + element.offsetHeight + 'px';
- if (element.listener) window.removeEventListener('keydown', element.listener);
- wait(options.transitionDuration).then(function () {
- if (element.parentNode) element.parentNode.removeChild(element);
- });
- };
- var addOverlayToDocument = function addOverlayToDocument(owner, position) {
- var element = document.createElement('div');
- element.id = options.ids.overlay;
- element.classList.add(options.classes.overlay);
- element.classList.add(options.classes.backgroundOverlay);
- element.style.opacity = 0;
- if (owner && options.overlayClickDismiss) {
- element.onclick = function () {
- removeFromDocument(owner.id, position);
- removeOverlayFromDocument();
- };
- }
- document.body.appendChild(element);
- tick().then(function () {
- element.style.transition = getTransition();
- element.style.opacity = options.overlayOpacity;
- });
- };
- var removeOverlayFromDocument = function removeOverlayFromDocument() {
- var element = document.getElementById(options.ids.overlay);
- element.style.opacity = 0;
- wait(options.transitionDuration).then(function () {
- if (element.parentNode) element.parentNode.removeChild(element);
- });
- };
- var hideAlerts = exports.hideAlerts = function hideAlerts(callback) {
- var alertsShowing = document.getElementsByClassName(options.classes.alert);
- if (alertsShowing.length) {
- for (var i = 0; i < alertsShowing.length; i++) {
- var _alert = alertsShowing[i];
- removeFromDocument(_alert.id, _alert.position);
- }
- if (callback) wait(options.transitionDuration).then(function () {
- return callback();
- });
- }
- };
- // ====================
- // exports
- // ====================
- var alert = exports.alert = function alert(_ref) {
- var _ref$type = _ref.type,
- type = _ref$type === undefined ? 4 : _ref$type,
- text = _ref.text,
- _ref$time = _ref.time,
- time = _ref$time === undefined ? options.alertTime : _ref$time,
- _ref$stay = _ref.stay,
- stay = _ref$stay === undefined ? false : _ref$stay,
- _ref$position = _ref.position,
- position = _ref$position === undefined ? options.positions.alert || position.top : _ref$position;
- blur();
- hideAlerts();
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- element.position = position;
- element.classList.add(options.classes.textbox);
- element.classList.add(typeToClassLookup[type]);
- element.classList.add(options.classes.alert);
- element.innerHTML = '<div class="' + options.classes.textboxInner + '">' + text + '</div>';
- element.onclick = function () {
- return removeFromDocument(id, position);
- };
- element.listener = function (event) {
- if (enterClicked(event) || escapeClicked(event)) hideAlerts();
- };
- addToDocument(element, position);
- if (time && time < 1) time = 1;
- if (!stay && time) wait(time).then(function () {
- return removeFromDocument(id, position);
- });
- };
- var force = exports.force = function force(_ref2, callbackArg) {
- var _ref2$type = _ref2.type,
- type = _ref2$type === undefined ? 5 : _ref2$type,
- text = _ref2.text,
- _ref2$buttonText = _ref2.buttonText,
- buttonText = _ref2$buttonText === undefined ? 'OK' : _ref2$buttonText,
- callback = _ref2.callback,
- _ref2$position = _ref2.position,
- position = _ref2$position === undefined ? options.positions.force || position.top : _ref2$position;
- blur();
- hideAlerts();
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- var elementText = document.createElement('div');
- elementText.classList.add(options.classes.textbox);
- elementText.classList.add(options.classes.backgroundInfo);
- elementText.innerHTML = '<div class="' + options.classes.textboxInner + '">' + text + '</div>';
- var elementButton = document.createElement('div');
- elementButton.classList.add(options.classes.button);
- elementButton.classList.add(typeToClassLookup[type]);
- elementButton.innerHTML = buttonText;
- elementButton.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (callback) callback();else if (callbackArg) callbackArg();
- };
- element.appendChild(elementText);
- element.appendChild(elementButton);
- element.listener = function (event) {
- if (enterClicked(event)) elementButton.click();
- };
- addToDocument(element, position);
- addOverlayToDocument();
- };
- var confirm = exports.confirm = function confirm(_ref3, submitCallbackArg, cancelCallbackArg) {
- var text = _ref3.text,
- _ref3$submitText = _ref3.submitText,
- submitText = _ref3$submitText === undefined ? 'Yes' : _ref3$submitText,
- _ref3$cancelText = _ref3.cancelText,
- cancelText = _ref3$cancelText === undefined ? 'Cancel' : _ref3$cancelText,
- submitCallback = _ref3.submitCallback,
- cancelCallback = _ref3.cancelCallback,
- _ref3$position = _ref3.position,
- position = _ref3$position === undefined ? options.positions.confirm || position.top : _ref3$position;
- blur();
- hideAlerts();
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- var elementText = document.createElement('div');
- elementText.classList.add(options.classes.textbox);
- elementText.classList.add(options.classes.backgroundInfo);
- elementText.innerHTML = '<div class="' + options.classes.textboxInner + '">' + text + '</div>';
- var elementButtonLeft = document.createElement('div');
- elementButtonLeft.classList.add(options.classes.button);
- elementButtonLeft.classList.add(options.classes.elementHalf);
- elementButtonLeft.classList.add(options.classes.backgroundSuccess);
- elementButtonLeft.innerHTML = submitText;
- elementButtonLeft.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (submitCallback) submitCallback();else if (submitCallbackArg) submitCallbackArg();
- };
- var elementButtonRight = document.createElement('div');
- elementButtonRight.classList.add(options.classes.button);
- elementButtonRight.classList.add(options.classes.elementHalf);
- elementButtonRight.classList.add(options.classes.backgroundError);
- elementButtonRight.innerHTML = cancelText;
- elementButtonRight.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (cancelCallback) cancelCallback();else if (cancelCallbackArg) cancelCallbackArg();
- };
- element.appendChild(elementText);
- element.appendChild(elementButtonLeft);
- element.appendChild(elementButtonRight);
- element.listener = function (event) {
- if (enterClicked(event)) elementButtonLeft.click();else if (escapeClicked(event)) elementButtonRight.click();
- };
- addToDocument(element, position);
- addOverlayToDocument(element, position);
- };
- var input = function input(_ref4, submitCallbackArg, cancelCallbackArg) {
- var text = _ref4.text,
- _ref4$submitText = _ref4.submitText,
- submitText = _ref4$submitText === undefined ? 'Submit' : _ref4$submitText,
- _ref4$cancelText = _ref4.cancelText,
- cancelText = _ref4$cancelText === undefined ? 'Cancel' : _ref4$cancelText,
- submitCallback = _ref4.submitCallback,
- cancelCallback = _ref4.cancelCallback,
- _ref4$position = _ref4.position,
- position = _ref4$position === undefined ? options.positions.input || position.top : _ref4$position,
- settings = _objectWithoutProperties(_ref4, ['text', 'submitText', 'cancelText', 'submitCallback', 'cancelCallback', 'position']);
- blur();
- hideAlerts();
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- var elementText = document.createElement('div');
- elementText.classList.add(options.classes.textbox);
- elementText.classList.add(options.classes.backgroundInfo);
- elementText.innerHTML = '<div class="' + options.classes.textboxInner + '">' + text + '</div>';
- var elementInput = document.createElement('input');
- elementInput.classList.add(options.classes.inputField);
- elementInput.setAttribute('autocapitalize', settings.autocapitalize || 'none');
- elementInput.setAttribute('autocomplete', settings.autocomplete || 'off');
- elementInput.setAttribute('autocorrect', settings.autocorrect || 'off');
- elementInput.setAttribute('autofocus', settings.autofocus || 'true');
- elementInput.setAttribute('inputmode', settings.inputmode || 'verbatim');
- elementInput.setAttribute('max', settings.max || '');
- elementInput.setAttribute('maxlength', settings.maxlength || '');
- elementInput.setAttribute('min', settings.min || '');
- elementInput.setAttribute('minlength', settings.minlength || '');
- elementInput.setAttribute('placeholder', settings.placeholder || '');
- elementInput.setAttribute('spellcheck', settings.spellcheck || 'default');
- elementInput.setAttribute('step', settings.step || 'any');
- elementInput.setAttribute('type', settings.type || 'text');
- elementInput.value = settings.value || '';
- // As-you-type input restrictions
- if (settings.allowed) {
- elementInput.oninput = function () {
- var regex = void 0;
- if (Array.isArray(settings.allowed)) {
- var regexString = '';
- var allowed = settings.allowed;
- for (var i = 0; i < allowed.length; i++) {
- if (allowed[i] === 'an') regexString += '0-9a-zA-Z';else if (allowed[i] === 'a') regexString += 'a-zA-Z';else if (allowed[i] === 'n') regexString += '0-9';
- if (allowed[i] === 's') regexString += ' ';
- }
- regex = new RegExp('[^' + regexString + ']', 'g');
- } else if (_typeof(settings.allowed) === 'object') {
- regex = settings.allowed;
- }
- elementInput.value = elementInput.value.replace(regex, '');
- };
- }
- var elementButtonLeft = document.createElement('div');
- elementButtonLeft.classList.add(options.classes.button);
- elementButtonLeft.classList.add(options.classes.elementHalf);
- elementButtonLeft.classList.add(options.classes.backgroundSuccess);
- elementButtonLeft.innerHTML = submitText;
- elementButtonLeft.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (submitCallback) submitCallback(elementInput.value);else if (submitCallbackArg) submitCallbackArg(elementInput.value);
- };
- var elementButtonRight = document.createElement('div');
- elementButtonRight.classList.add(options.classes.button);
- elementButtonRight.classList.add(options.classes.elementHalf);
- elementButtonRight.classList.add(options.classes.backgroundError);
- elementButtonRight.innerHTML = cancelText;
- elementButtonRight.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (cancelCallback) cancelCallback(elementInput.value);else if (cancelCallbackArg) cancelCallbackArg(elementInput.value);
- };
- element.appendChild(elementText);
- element.appendChild(elementInput);
- element.appendChild(elementButtonLeft);
- element.appendChild(elementButtonRight);
- element.listener = function (event) {
- if (enterClicked(event)) elementButtonLeft.click();else if (escapeClicked(event)) elementButtonRight.click();
- };
- addToDocument(element, position);
- elementInput.focus();
- addOverlayToDocument(element, position);
- };
- exports.input = input;
- var select = exports.select = function select(_ref5, cancelCallbackArg) {
- var text = _ref5.text,
- _ref5$cancelText = _ref5.cancelText,
- cancelText = _ref5$cancelText === undefined ? 'Cancel' : _ref5$cancelText,
- cancelCallback = _ref5.cancelCallback,
- choices = _ref5.choices,
- _ref5$position = _ref5.position,
- position = _ref5$position === undefined ? options.positions.select || position.top : _ref5$position;
- blur();
- hideAlerts();
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- var elementText = document.createElement('div');
- elementText.classList.add(options.classes.textbox);
- elementText.classList.add(options.classes.backgroundInfo);
- elementText.innerHTML = '<div class="' + options.classes.textboxInner + '">' + text + '</div>';
- element.appendChild(elementText);
- choices.forEach(function (_ref6, index) {
- var _ref6$type = _ref6.type,
- type = _ref6$type === undefined ? 1 : _ref6$type,
- text = _ref6.text,
- handler = _ref6.handler;
- var elementChoice = document.createElement('div');
- elementChoice.classList.add(typeToClassLookup[type]);
- elementChoice.classList.add(options.classes.button);
- elementChoice.classList.add(options.classes.selectChoice);
- var nextChoice = choices[index + 1];
- if (nextChoice && !nextChoice.type) nextChoice.type = 1;
- if (nextChoice && nextChoice.type === type) {
- elementChoice.classList.add(options.classes.selectChoiceRepeated);
- }
- elementChoice.innerHTML = text;
- elementChoice.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- handler();
- };
- element.appendChild(elementChoice);
- });
- var elementCancel = document.createElement('div');
- elementCancel.classList.add(options.classes.backgroundNeutral);
- elementCancel.classList.add(options.classes.button);
- elementCancel.innerHTML = cancelText;
- elementCancel.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (cancelCallback) cancelCallback();else if (cancelCallbackArg) cancelCallbackArg();
- };
- element.appendChild(elementCancel);
- element.listener = function (event) {
- if (escapeClicked(event)) elementCancel.click();
- };
- addToDocument(element, position);
- addOverlayToDocument(element, position);
- };
- var date = exports.date = function date(_ref7, submitCallbackArg, cancelCallbackArg) {
- var _ref7$value = _ref7.value,
- value = _ref7$value === undefined ? new Date() : _ref7$value,
- _ref7$submitText = _ref7.submitText,
- submitText = _ref7$submitText === undefined ? 'OK' : _ref7$submitText,
- _ref7$cancelText = _ref7.cancelText,
- cancelText = _ref7$cancelText === undefined ? 'Cancel' : _ref7$cancelText,
- submitCallback = _ref7.submitCallback,
- cancelCallback = _ref7.cancelCallback,
- _ref7$position = _ref7.position,
- position = _ref7$position === undefined ? options.positions.date || position.top : _ref7$position;
- blur();
- hideAlerts();
- var arrow = '▾';
- var elementDateMonth = document.createElement('div');
- var elementDateDay = document.createElement('div');
- var elementDateYear = document.createElement('div');
- var setValueHTML = function setValueHTML(date) {
- elementDateMonth.innerHTML = options.dateMonths[date.getMonth()];
- elementDateDay.innerHTML = date.getDate();
- elementDateYear.innerHTML = date.getFullYear();
- };
- var handleDayInput = function handleDayInput(event) {
- var daysInMonth = new Date(value.getFullYear(), value.getMonth() + 1, 0).getDate();
- var day = event.target.textContent.replace(/^0+/, '').replace(/[^\d]/g, '').slice(0, 2);
- if (Number(day) > daysInMonth) day = daysInMonth.toString();
- event.target.textContent = day;
- if (Number(day) < 1) day = '1';
- value.setDate(Number(day));
- };
- var handleYearInput = function handleYearInput(event) {
- var year = event.target.textContent.replace(/^0+/, '').replace(/[^\d]/g, '').slice(0, 4);
- event.target.textContent = year;
- value.setFullYear(Number(year));
- };
- var handleBlur = function handleBlur(event) {
- setValueHTML(value);
- };
- var updateMonth = function updateMonth(amount) {
- var daysInNextMonth = new Date(value.getFullYear(), value.getMonth() + amount + 1, 0).getDate();
- if (value.getDate() > daysInNextMonth) value.setDate(daysInNextMonth);
- value.setMonth(value.getMonth() + amount);
- setValueHTML(value);
- };
- var updateDay = function updateDay(amount) {
- value.setDate(value.getDate() + amount);
- setValueHTML(value);
- };
- var updateYear = function updateYear(amount) {
- var nextYear = value.getFullYear() + amount;
- if (nextYear < 0) value.setFullYear(0);else value.setFullYear(value.getFullYear() + amount);
- setValueHTML(value);
- };
- var element = document.createElement('div');
- var id = generateRandomId();
- element.id = id;
- var elementDateSelector = document.createElement('div');
- elementDateSelector.classList.add(options.classes.backgroundInfo);
- var elementDateSelectorInner = document.createElement('div');
- elementDateSelectorInner.classList.add(options.classes.dateSelectorInner);
- var elementDateUpMonth = document.createElement('div');
- elementDateUpMonth.classList.add(options.classes.button);
- elementDateUpMonth.classList.add(options.classes.elementThird);
- elementDateUpMonth.classList.add(options.classes.dateSelectorUp);
- elementDateUpMonth.innerHTML = arrow;
- var elementDateUpDay = document.createElement('div');
- elementDateUpDay.classList.add(options.classes.button);
- elementDateUpDay.classList.add(options.classes.elementThird);
- elementDateUpDay.classList.add(options.classes.dateSelectorUp);
- elementDateUpDay.innerHTML = arrow;
- var elementDateUpYear = document.createElement('div');
- elementDateUpYear.classList.add(options.classes.button);
- elementDateUpYear.classList.add(options.classes.elementThird);
- elementDateUpYear.classList.add(options.classes.dateSelectorUp);
- elementDateUpYear.innerHTML = arrow;
- elementDateMonth.classList.add(options.classes.element);
- elementDateMonth.classList.add(options.classes.elementThird);
- elementDateMonth.innerHTML = options.dateMonths[value.getMonth()];
- elementDateDay.classList.add(options.classes.element);
- elementDateDay.classList.add(options.classes.elementThird);
- elementDateDay.setAttribute('contentEditable', true);
- elementDateDay.addEventListener('input', handleDayInput);
- elementDateDay.addEventListener('blur', handleBlur);
- elementDateDay.innerHTML = value.getDate();
- elementDateYear.classList.add(options.classes.element);
- elementDateYear.classList.add(options.classes.elementThird);
- elementDateYear.setAttribute('contentEditable', true);
- elementDateYear.addEventListener('input', handleYearInput);
- elementDateYear.addEventListener('blur', handleBlur);
- elementDateYear.innerHTML = value.getFullYear();
- var elementDateDownMonth = document.createElement('div');
- elementDateDownMonth.classList.add(options.classes.button);
- elementDateDownMonth.classList.add(options.classes.elementThird);
- elementDateDownMonth.innerHTML = arrow;
- var elementDateDownDay = document.createElement('div');
- elementDateDownDay.classList.add(options.classes.button);
- elementDateDownDay.classList.add(options.classes.elementThird);
- elementDateDownDay.innerHTML = arrow;
- var elementDateDownYear = document.createElement('div');
- elementDateDownYear.classList.add(options.classes.button);
- elementDateDownYear.classList.add(options.classes.elementThird);
- elementDateDownYear.innerHTML = arrow;
- elementDateUpMonth.onclick = function () {
- return updateMonth(1);
- };
- elementDateUpDay.onclick = function () {
- return updateDay(1);
- };
- elementDateUpYear.onclick = function () {
- return updateYear(1);
- };
- elementDateDownMonth.onclick = function () {
- return updateMonth(-1);
- };
- elementDateDownDay.onclick = function () {
- return updateDay(-1);
- };
- elementDateDownYear.onclick = function () {
- return updateYear(-1);
- };
- var elementButtonLeft = document.createElement('div');
- elementButtonLeft.classList.add(options.classes.button);
- elementButtonLeft.classList.add(options.classes.elementHalf);
- elementButtonLeft.classList.add(options.classes.backgroundSuccess);
- elementButtonLeft.innerHTML = submitText;
- elementButtonLeft.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (submitCallback) submitCallback(value);else if (submitCallbackArg) submitCallbackArg(value);
- };
- var elementButtonRight = document.createElement('div');
- elementButtonRight.classList.add(options.classes.button);
- elementButtonRight.classList.add(options.classes.elementHalf);
- elementButtonRight.classList.add(options.classes.backgroundError);
- elementButtonRight.innerHTML = cancelText;
- elementButtonRight.onclick = function () {
- removeFromDocument(id, position);
- removeOverlayFromDocument();
- if (cancelCallback) cancelCallback(value);else if (cancelCallbackArg) cancelCallbackArg(value);
- };
- elementDateSelectorInner.appendChild(elementDateUpMonth);
- elementDateSelectorInner.appendChild(elementDateUpDay);
- elementDateSelectorInner.appendChild(elementDateUpYear);
- elementDateSelectorInner.appendChild(elementDateMonth);
- elementDateSelectorInner.appendChild(elementDateDay);
- elementDateSelectorInner.appendChild(elementDateYear);
- elementDateSelectorInner.appendChild(elementDateDownMonth);
- elementDateSelectorInner.appendChild(elementDateDownDay);
- elementDateSelectorInner.appendChild(elementDateDownYear);
- elementDateSelector.appendChild(elementDateSelectorInner);
- element.appendChild(elementDateSelector);
- element.appendChild(elementButtonLeft);
- element.appendChild(elementButtonRight);
- element.listener = function (event) {
- if (enterClicked(event)) elementButtonLeft.click();else if (escapeClicked(event)) elementButtonRight.click();
- };
- addToDocument(element, position);
- addOverlayToDocument(element, position);
- };
- exports.default = {
- alert: alert,
- force: force,
- confirm: confirm,
- input: input,
- select: select,
- date: date,
- setOptions: setOptions,
- hideAlerts: hideAlerts
- };
- /***/ })
- /******/ ]);
- });
|