{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/bootbox/bootbox.all.js","webpack:///./vendor/assets/libs/bootbox/bootbox.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","_typeof","iterator","obj","constructor","root","factory","init","$","undefined","keys","hasDontEnumBug","toString","propertyIsEnumerable","dontEnumsLength","dontEnums","length","TypeError","prop","result","push","VERSION","locales","ar","OK","CANCEL","CONFIRM","bg_BG","br","cs","da","de","el","en","es","eu","et","fa","fi","fr","he","hu","hr","id","it","ja","ka","ko","lt","lv","nl","no","pl","pt","ru","sk","sl","sq","sv","sw","ta","th","tr","uk","zh_CN","zh_TW","templates","dialog","header","footer","closeButton","form","button","option","promptMessage","inputs","text","textarea","email","select","checkbox","radio","date","time","number","password","range","defaults","locale","backdrop","animate","className","show","container","inputType","swapButtonOrder","centerVertical","multiple","scrollable","mergeArguments","args","properties","extend","argn","options","Error","mapArguments","mergeDialogOptions","labels","reverse","buttons","allowedButtons","baseOptions","createLabels","each","join","j","argument","toLowerCase","toUpperCase","label","getText","getKeyLength","collection","index","focusPrimaryButton","e","data","find","first","trigger","destroyModal","target","remove","unbindModal","off","processCallback","callback","stopPropagation","preventDefault","isFunction","modal","minAndMaxAreValid","type","min","max","minValid","maxValid","dateIsValid","console","warn","timeIsValid","isNaN","test","addLocale","values","_","v","removeLocale","setLocale","setDefaults","arguments","hideAll","_$","fn","total","message","isPrimary","sanitize","Constructor","fullBootstrapVersion","indexOf","bootstrap","substring","innerDialog","body","callbacks","onEscape","html","b","addClass","append","after","size","title","before","prepend","prependTo","one","onHide","on","onHidden","onShow","onShown","children","currentTarget","callbackKey","this","which","keyboard","alert","ok","confirm","cancel","prompt","promptDialog","input","shouldShow","inputOptions","map","val","checkValidity","placeholder","attr","pattern","maxlength","required","rows","parseInt","step","parseFloat","groups","isArray","elem","group","checkboxValues","checkFirstRadio","trim","focus"],"mappings":"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","file":"js/vendor/libs/bootbox/bootbox-46d35c56703872ec8c27.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://optimal.seneris.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 628);\n","(function() { module.exports = window[\"jQuery\"]; }());","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! @preserve\r\n * bootbox.js\r\n * version: 5.4.0\r\n * author: Nick Payne \r\n * license: MIT\r\n * http://bootboxjs.com/\r\n */\n(function (root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(['jquery'], factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n // Node, CommonJS-like\n module.exports = factory(require('jquery'));\n } else {\n // Browser globals (root is window)\n root.bootbox = factory(root.jQuery);\n }\n})(this, function init($, undefined) {\n 'use strict'; // Polyfills Object.keys, if necessary.\n // @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys\n\n if (!Object.keys) {\n Object.keys = function () {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n hasDontEnumBug = !{\n toString: null\n }.propertyIsEnumerable('toString'),\n dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'],\n dontEnumsLength = dontEnums.length;\n return function (obj) {\n if (typeof obj !== 'function' && (_typeof(obj) !== 'object' || obj === null)) {\n throw new TypeError('Object.keys called on non-object');\n }\n\n var result = [],\n prop,\n i;\n\n for (prop in obj) {\n if (hasOwnProperty.call(obj, prop)) {\n result.push(prop);\n }\n }\n\n if (hasDontEnumBug) {\n for (i = 0; i < dontEnumsLength; i++) {\n if (hasOwnProperty.call(obj, dontEnums[i])) {\n result.push(dontEnums[i]);\n }\n }\n }\n\n return result;\n };\n }();\n }\n\n var exports = {};\n var VERSION = '5.0.0';\n exports.VERSION = VERSION;\n var locales = {\n ar: {\n OK: 'موافق',\n CANCEL: 'الغاء',\n CONFIRM: 'تأكيد'\n },\n bg_BG: {\n OK: 'Ок',\n CANCEL: 'Отказ',\n CONFIRM: 'Потвърждавам'\n },\n br: {\n OK: 'OK',\n CANCEL: 'Cancelar',\n CONFIRM: 'Sim'\n },\n cs: {\n OK: 'OK',\n CANCEL: 'Zrušit',\n CONFIRM: 'Potvrdit'\n },\n da: {\n OK: 'OK',\n CANCEL: 'Annuller',\n CONFIRM: 'Accepter'\n },\n de: {\n OK: 'OK',\n CANCEL: 'Abbrechen',\n CONFIRM: 'Akzeptieren'\n },\n el: {\n OK: 'Εντάξει',\n CANCEL: 'Ακύρωση',\n CONFIRM: 'Επιβεβαίωση'\n },\n en: {\n OK: 'OK',\n CANCEL: 'Cancel',\n CONFIRM: 'OK'\n },\n es: {\n OK: 'OK',\n CANCEL: 'Cancelar',\n CONFIRM: 'Aceptar'\n },\n eu: {\n OK: 'OK',\n CANCEL: 'Ezeztatu',\n CONFIRM: 'Onartu'\n },\n et: {\n OK: 'OK',\n CANCEL: 'Katkesta',\n CONFIRM: 'OK'\n },\n fa: {\n OK: 'قبول',\n CANCEL: 'لغو',\n CONFIRM: 'تایید'\n },\n fi: {\n OK: 'OK',\n CANCEL: 'Peruuta',\n CONFIRM: 'OK'\n },\n fr: {\n OK: 'OK',\n CANCEL: 'Annuler',\n CONFIRM: 'Confirmer'\n },\n he: {\n OK: 'אישור',\n CANCEL: 'ביטול',\n CONFIRM: 'אישור'\n },\n hu: {\n OK: 'OK',\n CANCEL: 'Mégsem',\n CONFIRM: 'Megerősít'\n },\n hr: {\n OK: 'OK',\n CANCEL: 'Odustani',\n CONFIRM: 'Potvrdi'\n },\n id: {\n OK: 'OK',\n CANCEL: 'Batal',\n CONFIRM: 'OK'\n },\n it: {\n OK: 'OK',\n CANCEL: 'Annulla',\n CONFIRM: 'Conferma'\n },\n ja: {\n OK: 'OK',\n CANCEL: 'キャンセル',\n CONFIRM: '確認'\n },\n ka: {\n OK: 'OK',\n CANCEL: 'გაუქმება',\n CONFIRM: 'დადასტურება'\n },\n ko: {\n OK: 'OK',\n CANCEL: '취소',\n CONFIRM: '확인'\n },\n lt: {\n OK: 'Gerai',\n CANCEL: 'Atšaukti',\n CONFIRM: 'Patvirtinti'\n },\n lv: {\n OK: 'Labi',\n CANCEL: 'Atcelt',\n CONFIRM: 'Apstiprināt'\n },\n nl: {\n OK: 'OK',\n CANCEL: 'Annuleren',\n CONFIRM: 'Accepteren'\n },\n no: {\n OK: 'OK',\n CANCEL: 'Avbryt',\n CONFIRM: 'OK'\n },\n pl: {\n OK: 'OK',\n CANCEL: 'Anuluj',\n CONFIRM: 'Potwierdź'\n },\n pt: {\n OK: 'OK',\n CANCEL: 'Cancelar',\n CONFIRM: 'Confirmar'\n },\n ru: {\n OK: 'OK',\n CANCEL: 'Отмена',\n CONFIRM: 'Применить'\n },\n sk: {\n OK: 'OK',\n CANCEL: 'Zrušiť',\n CONFIRM: 'Potvrdiť'\n },\n sl: {\n OK: 'OK',\n CANCEL: 'Prekliči',\n CONFIRM: 'Potrdi'\n },\n sq: {\n OK: 'OK',\n CANCEL: 'Anulo',\n CONFIRM: 'Prano'\n },\n sv: {\n OK: 'OK',\n CANCEL: 'Avbryt',\n CONFIRM: 'OK'\n },\n sw: {\n OK: 'Sawa',\n CANCEL: 'Ghairi',\n CONFIRM: 'Thibitisha'\n },\n ta: {\n OK: 'சரி',\n CANCEL: 'ரத்து செய்',\n CONFIRM: 'உறுதி செய்'\n },\n th: {\n OK: 'ตกลง',\n CANCEL: 'ยกเลิก',\n CONFIRM: 'ยืนยัน'\n },\n tr: {\n OK: 'Tamam',\n CANCEL: 'İptal',\n CONFIRM: 'Onayla'\n },\n uk: {\n OK: 'OK',\n CANCEL: 'Відміна',\n CONFIRM: 'Прийняти'\n },\n zh_CN: {\n OK: 'OK',\n CANCEL: '取消',\n CONFIRM: '确认'\n },\n zh_TW: {\n OK: 'OK',\n CANCEL: '取消',\n CONFIRM: '確認'\n }\n };\n var templates = {\n dialog: '
' + '
' + '
' + '
' + '
' + '
' + '
',\n header: '
' + '
' + '
',\n footer: '
',\n closeButton: '',\n form: '
',\n button: '',\n option: '',\n promptMessage: '
',\n inputs: {\n text: '',\n textarea: '',\n email: '',\n select: '',\n checkbox: '
',\n radio: '
',\n date: '',\n time: '',\n number: '',\n password: '',\n range: ''\n }\n };\n var defaults = {\n // default language\n locale: 'en',\n // show backdrop or not. Default to static so user has to interact with dialog\n backdrop: 'static',\n // animate the modal in/out\n animate: true,\n // additional class string applied to the top level dialog\n className: null,\n // whether or not to include a close button\n closeButton: true,\n // show the dialog immediately by default\n show: true,\n // dialog container\n container: 'body',\n // default value (used by the prompt helper)\n value: '',\n // default input type (used by the prompt helper)\n inputType: 'text',\n // switch button order from cancel/confirm (default) to confirm/cancel\n swapButtonOrder: false,\n // center modal vertically in page\n centerVertical: false,\n // Append \"multiple\" property to the select when using the \"prompt\" helper\n multiple: false,\n // Automatically scroll modal content when height exceeds viewport height\n scrollable: false\n }; // PUBLIC FUNCTIONS\n // *************************************************************************************************************\n // Return all currently registered locales, or a specific locale if \"name\" is defined\n\n exports.locales = function (name) {\n return name ? locales[name] : locales;\n }; // Register localized strings for the OK, CONFIRM, and CANCEL buttons\n\n\n exports.addLocale = function (name, values) {\n $.each(['OK', 'CANCEL', 'CONFIRM'], function (_, v) {\n if (!values[v]) {\n throw new Error('Please supply a translation for \"' + v + '\"');\n }\n });\n locales[name] = {\n OK: values.OK,\n CANCEL: values.CANCEL,\n CONFIRM: values.CONFIRM\n };\n return exports;\n }; // Remove a previously-registered locale\n\n\n exports.removeLocale = function (name) {\n if (name !== 'en') {\n delete locales[name];\n } else {\n throw new Error('\"en\" is used as the default and fallback locale and cannot be removed.');\n }\n\n return exports;\n }; // Set the default locale\n\n\n exports.setLocale = function (name) {\n return exports.setDefaults('locale', name);\n }; // Override default value(s) of Bootbox.\n\n\n exports.setDefaults = function () {\n var values = {};\n\n if (arguments.length === 2) {\n // allow passing of single key/value...\n values[arguments[0]] = arguments[1];\n } else {\n // ... and as an object too\n values = arguments[0];\n }\n\n $.extend(defaults, values);\n return exports;\n }; // Hides all currently active Bootbox modals\n\n\n exports.hideAll = function () {\n $('.bootbox').modal('hide');\n return exports;\n }; // Allows the base init() function to be overridden\n\n\n exports.init = function (_$) {\n return init(_$ || $);\n }; // CORE HELPER FUNCTIONS\n // *************************************************************************************************************\n // Core dialog function\n\n\n exports.dialog = function (options) {\n if ($.fn.modal === undefined) {\n throw new Error('\"$.fn.modal\" is not defined; please double check you have included ' + 'the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ ' + 'for more details.');\n }\n\n options = sanitize(options);\n\n if ($.fn.modal.Constructor.VERSION) {\n options.fullBootstrapVersion = $.fn.modal.Constructor.VERSION;\n var i = options.fullBootstrapVersion.indexOf('.');\n options.bootstrap = options.fullBootstrapVersion.substring(0, i);\n } else {\n // Assuming version 2.3.2, as that was the last \"supported\" 2.x version\n options.bootstrap = '2';\n options.fullBootstrapVersion = '2.3.2';\n console.warn('Bootbox will *mostly* work with Bootstrap 2, but we do not officially support it. Please upgrade, if possible.');\n }\n\n var dialog = $(templates.dialog);\n var innerDialog = dialog.find('.modal-dialog');\n var body = dialog.find('.modal-body');\n var header = $(templates.header);\n var footer = $(templates.footer);\n var buttons = options.buttons;\n var callbacks = {\n onEscape: options.onEscape\n };\n body.find('.bootbox-body').html(options.message); // Only attempt to create buttons if at least one has \n // been defined in the options object\n\n if (getKeyLength(options.buttons) > 0) {\n each(buttons, function (key, b) {\n var button = $(templates.button);\n button.data('bb-handler', key);\n button.addClass(b.className);\n\n switch (key) {\n case 'ok':\n case 'confirm':\n button.addClass('bootbox-accept');\n break;\n\n case 'cancel':\n button.addClass('bootbox-cancel');\n break;\n }\n\n button.html(b.label);\n footer.append(button);\n callbacks[key] = b.callback;\n });\n body.after(footer);\n }\n\n if (options.animate === true) {\n dialog.addClass('fade');\n }\n\n if (options.className) {\n dialog.addClass(options.className);\n }\n\n if (options.size) {\n // Requires Bootstrap 3.1.0 or higher\n if (options.fullBootstrapVersion.substring(0, 3) < '3.1') {\n console.warn('\"size\" requires Bootstrap 3.1.0 or higher. You appear to be using ' + options.fullBootstrapVersion + '. Please upgrade to use this option.');\n }\n\n switch (options.size) {\n case 'small':\n case 'sm':\n innerDialog.addClass('modal-sm');\n break;\n\n case 'large':\n case 'lg':\n innerDialog.addClass('modal-lg');\n break;\n\n case 'extra-large':\n case 'xl':\n innerDialog.addClass('modal-xl'); // Requires Bootstrap 4.2.0 or higher\n\n if (options.fullBootstrapVersion.substring(0, 3) < '4.2') {\n console.warn('Using size \"xl\"/\"extra-large\" requires Bootstrap 4.2.0 or higher. You appear to be using ' + options.fullBootstrapVersion + '. Please upgrade to use this option.');\n }\n\n break;\n }\n }\n\n if (options.scrollable) {\n innerDialog.addClass('modal-dialog-scrollable'); // Requires Bootstrap 4.3.0 or higher\n\n if (options.fullBootstrapVersion.substring(0, 3) < '4.3') {\n console.warn('Using \"scrollable\" requires Bootstrap 4.3.0 or higher. You appear to be using ' + options.fullBootstrapVersion + '. Please upgrade to use this option.');\n }\n }\n\n if (options.title) {\n body.before(header);\n dialog.find('.modal-title').html(options.title);\n }\n\n if (options.closeButton) {\n var closeButton = $(templates.closeButton);\n\n if (options.title) {\n if (options.bootstrap > 3) {\n dialog.find('.modal-header').append(closeButton);\n } else {\n dialog.find('.modal-header').prepend(closeButton);\n }\n } else {\n closeButton.prependTo(body);\n }\n }\n\n if (options.centerVertical) {\n innerDialog.addClass('modal-dialog-centered'); // Requires Bootstrap 4.0.0-beta.3 or higher\n\n if (options.fullBootstrapVersion < '4.0.0') {\n console.warn('\"centerVertical\" requires Bootstrap 4.0.0-beta.3 or higher. You appear to be using ' + options.fullBootstrapVersion + '. Please upgrade to use this option.');\n }\n } // Bootstrap event listeners; these handle extra\n // setup & teardown required after the underlying\n // modal has performed certain actions.\n // make sure we unbind any listeners once the dialog has definitively been dismissed\n\n\n dialog.one('hide.bs.modal', {\n dialog: dialog\n }, unbindModal);\n\n if (options.onHide) {\n if ($.isFunction(options.onHide)) {\n dialog.on('hide.bs.modal', options.onHide);\n } else {\n throw new Error('Argument supplied to \"onHide\" must be a function');\n }\n }\n\n dialog.one('hidden.bs.modal', {\n dialog: dialog\n }, destroyModal);\n\n if (options.onHidden) {\n if ($.isFunction(options.onHidden)) {\n dialog.on('hidden.bs.modal', options.onHidden);\n } else {\n throw new Error('Argument supplied to \"onHidden\" must be a function');\n }\n }\n\n if (options.onShow) {\n if ($.isFunction(options.onShow)) {\n dialog.on('show.bs.modal', options.onShow);\n } else {\n throw new Error('Argument supplied to \"onShow\" must be a function');\n }\n }\n\n dialog.one('shown.bs.modal', {\n dialog: dialog\n }, focusPrimaryButton);\n\n if (options.onShown) {\n if ($.isFunction(options.onShown)) {\n dialog.on('shown.bs.modal', options.onShown);\n } else {\n throw new Error('Argument supplied to \"onShown\" must be a function');\n }\n } // Bootbox event listeners; used to decouple some\n // behaviours from their respective triggers\n\n\n if (options.backdrop !== 'static') {\n // A boolean true/false according to the Bootstrap docs\n // should show a dialog the user can dismiss by clicking on\n // the background.\n // We always only ever pass static/false to the actual\n // $.modal function because with \"true\" we can't trap\n // this event (the .modal-backdrop swallows it)\n // However, we still want to sort-of respect true\n // and invoke the escape mechanism instead\n dialog.on('click.dismiss.bs.modal', function (e) {\n // @NOTE: the target varies in >= 3.3.x releases since the modal backdrop\n // moved *inside* the outer dialog rather than *alongside* it\n if (dialog.children('.modal-backdrop').length) {\n e.currentTarget = dialog.children('.modal-backdrop').get(0);\n }\n\n if (e.target !== e.currentTarget) {\n return;\n }\n\n dialog.trigger('escape.close.bb');\n });\n }\n\n dialog.on('escape.close.bb', function (e) {\n // the if statement looks redundant but it isn't; without it\n // if we *didn't* have an onEscape handler then processCallback\n // would automatically dismiss the dialog\n if (callbacks.onEscape) {\n processCallback(e, dialog, callbacks.onEscape);\n }\n });\n dialog.on('click', '.modal-footer button:not(.disabled)', function (e) {\n var callbackKey = $(this).data('bb-handler');\n\n if (callbackKey !== undefined) {\n // Only process callbacks for buttons we recognize:\n processCallback(e, dialog, callbacks[callbackKey]);\n }\n });\n dialog.on('click', '.bootbox-close-button', function (e) {\n // onEscape might be falsy but that's fine; the fact is\n // if the user has managed to click the close button we\n // have to close the dialog, callback or not\n processCallback(e, dialog, callbacks.onEscape);\n });\n dialog.on('keyup', function (e) {\n if (e.which === 27) {\n dialog.trigger('escape.close.bb');\n }\n }); // the remainder of this method simply deals with adding our\n // dialog element to the DOM, augmenting it with Bootstrap's modal\n // functionality and then giving the resulting object back\n // to our caller\n\n $(options.container).append(dialog);\n dialog.modal({\n backdrop: options.backdrop ? 'static' : false,\n keyboard: false,\n show: false\n });\n\n if (options.show) {\n dialog.modal('show');\n }\n\n return dialog;\n }; // Helper function to simulate the native alert() behavior. **NOTE**: This is non-blocking, so any\n // code that must happen after the alert is dismissed should be placed within the callback function \n // for this alert.\n\n\n exports.alert = function () {\n var options;\n options = mergeDialogOptions('alert', ['ok'], ['message', 'callback'], arguments); // @TODO: can this move inside exports.dialog when we're iterating over each\n // button and checking its button.callback value instead?\n\n if (options.callback && !$.isFunction(options.callback)) {\n throw new Error('alert requires the \"callback\" property to be a function when provided');\n } // override the ok and escape callback to make sure they just invoke\n // the single user-supplied one (if provided)\n\n\n options.buttons.ok.callback = options.onEscape = function () {\n if ($.isFunction(options.callback)) {\n return options.callback.call(this);\n }\n\n return true;\n };\n\n return exports.dialog(options);\n }; // Helper function to simulate the native confirm() behavior. **NOTE**: This is non-blocking, so any\n // code that must happen after the confirm is dismissed should be placed within the callback function \n // for this confirm.\n\n\n exports.confirm = function () {\n var options;\n options = mergeDialogOptions('confirm', ['cancel', 'confirm'], ['message', 'callback'], arguments); // confirm specific validation; they don't make sense without a callback so make\n // sure it's present\n\n if (!$.isFunction(options.callback)) {\n throw new Error('confirm requires a callback');\n } // overrides; undo anything the user tried to set they shouldn't have\n\n\n options.buttons.cancel.callback = options.onEscape = function () {\n return options.callback.call(this, false);\n };\n\n options.buttons.confirm.callback = function () {\n return options.callback.call(this, true);\n };\n\n return exports.dialog(options);\n }; // Helper function to simulate the native prompt() behavior. **NOTE**: This is non-blocking, so any\n // code that must happen after the prompt is dismissed should be placed within the callback function \n // for this prompt.\n\n\n exports.prompt = function () {\n var options;\n var promptDialog;\n var form;\n var input;\n var shouldShow;\n var inputOptions; // we have to create our form first otherwise\n // its value is undefined when gearing up our options\n // @TODO this could be solved by allowing message to\n // be a function instead...\n\n form = $(templates.form); // prompt defaults are more complex than others in that\n // users can override more defaults\n\n options = mergeDialogOptions('prompt', ['cancel', 'confirm'], ['title', 'callback'], arguments);\n\n if (!options.value) {\n options.value = defaults.value;\n }\n\n if (!options.inputType) {\n options.inputType = defaults.inputType;\n } // capture the user's show value; we always set this to false before\n // spawning the dialog to give us a chance to attach some handlers to\n // it, but we need to make sure we respect a preference not to show it\n\n\n shouldShow = options.show === undefined ? defaults.show : options.show; // This is required prior to calling the dialog builder below - we need to \n // add an event handler just before the prompt is shown\n\n options.show = false; // Handles the 'cancel' action\n\n options.buttons.cancel.callback = options.onEscape = function () {\n return options.callback.call(this, null);\n }; // Prompt submitted - extract the prompt value. This requires a bit of work, \n // given the different input types available.\n\n\n options.buttons.confirm.callback = function () {\n var value;\n\n if (options.inputType === 'checkbox') {\n value = input.find('input:checked').map(function () {\n return $(this).val();\n }).get();\n } else if (options.inputType === 'radio') {\n value = input.find('input:checked').val();\n } else {\n if (input[0].checkValidity && !input[0].checkValidity()) {\n // prevents button callback from being called\n return false;\n } else {\n if (options.inputType === 'select' && options.multiple === true) {\n value = input.find('option:selected').map(function () {\n return $(this).val();\n }).get();\n } else {\n value = input.val();\n }\n }\n }\n\n return options.callback.call(this, value);\n }; // prompt-specific validation\n\n\n if (!options.title) {\n throw new Error('prompt requires a title');\n }\n\n if (!$.isFunction(options.callback)) {\n throw new Error('prompt requires a callback');\n }\n\n if (!templates.inputs[options.inputType]) {\n throw new Error('Invalid prompt type');\n } // create the input based on the supplied type\n\n\n input = $(templates.inputs[options.inputType]);\n\n switch (options.inputType) {\n case 'text':\n case 'textarea':\n case 'email':\n case 'password':\n input.val(options.value);\n\n if (options.placeholder) {\n input.attr('placeholder', options.placeholder);\n }\n\n if (options.pattern) {\n input.attr('pattern', options.pattern);\n }\n\n if (options.maxlength) {\n input.attr('maxlength', options.maxlength);\n }\n\n if (options.required) {\n input.prop({\n 'required': true\n });\n }\n\n if (options.rows && !isNaN(parseInt(options.rows))) {\n if (options.inputType === 'textarea') {\n input.attr({\n 'rows': options.rows\n });\n }\n }\n\n break;\n\n case 'date':\n case 'time':\n case 'number':\n case 'range':\n input.val(options.value);\n\n if (options.placeholder) {\n input.attr('placeholder', options.placeholder);\n }\n\n if (options.pattern) {\n input.attr('pattern', options.pattern);\n }\n\n if (options.required) {\n input.prop({\n 'required': true\n });\n } // These input types have extra attributes which affect their input validation.\n // Warning: For most browsers, date inputs are buggy in their implementation of 'step', so \n // this attribute will have no effect. Therefore, we don't set the attribute for date inputs.\n // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Setting_maximum_and_minimum_dates\n\n\n if (options.inputType !== 'date') {\n if (options.step) {\n if (options.step === 'any' || !isNaN(options.step) && parseFloat(options.step) > 0) {\n input.attr('step', options.step);\n } else {\n throw new Error('\"step\" must be a valid positive number or the value \"any\". See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-step for more information.');\n }\n }\n }\n\n if (minAndMaxAreValid(options.inputType, options.min, options.max)) {\n if (options.min !== undefined) {\n input.attr('min', options.min);\n }\n\n if (options.max !== undefined) {\n input.attr('max', options.max);\n }\n }\n\n break;\n\n case 'select':\n var groups = {};\n inputOptions = options.inputOptions || [];\n\n if (!$.isArray(inputOptions)) {\n throw new Error('Please pass an array of input options');\n }\n\n if (!inputOptions.length) {\n throw new Error('prompt with \"inputType\" set to \"select\" requires at least one option');\n } // placeholder is not actually a valid attribute for select,\n // but we'll allow it, assuming it might be used for a plugin\n\n\n if (options.placeholder) {\n input.attr('placeholder', options.placeholder);\n }\n\n if (options.required) {\n input.prop({\n 'required': true\n });\n }\n\n if (options.multiple) {\n input.prop({\n 'multiple': true\n });\n }\n\n each(inputOptions, function (_, option) {\n // assume the element to attach to is the input...\n var elem = input;\n\n if (option.value === undefined || option.text === undefined) {\n throw new Error('each option needs a \"value\" property and a \"text\" property');\n } // ... but override that element if this option sits in a group\n\n\n if (option.group) {\n // initialise group if necessary\n if (!groups[option.group]) {\n groups[option.group] = $('').attr('label', option.group);\n }\n\n elem = groups[option.group];\n }\n\n var o = $(templates.option);\n o.attr('value', option.value).text(option.text);\n elem.append(o);\n });\n each(groups, function (_, group) {\n input.append(group);\n }); // safe to set a select's value as per a normal input\n\n input.val(options.value);\n break;\n\n case 'checkbox':\n var checkboxValues = $.isArray(options.value) ? options.value : [options.value];\n inputOptions = options.inputOptions || [];\n\n if (!inputOptions.length) {\n throw new Error('prompt with \"inputType\" set to \"checkbox\" requires at least one option');\n } // checkboxes have to nest within a containing element, so\n // they break the rules a bit and we end up re-assigning\n // our 'input' element to this container instead\n\n\n input = $('
');\n each(inputOptions, function (_, option) {\n if (option.value === undefined || option.text === undefined) {\n throw new Error('each option needs a \"value\" property and a \"text\" property');\n }\n\n var checkbox = $(templates.inputs[options.inputType]);\n checkbox.find('input').attr('value', option.value);\n checkbox.find('label').append('\\n' + option.text); // we've ensured values is an array so we can always iterate over it\n\n each(checkboxValues, function (_, value) {\n if (value === option.value) {\n checkbox.find('input').prop('checked', true);\n }\n });\n input.append(checkbox);\n });\n break;\n\n case 'radio':\n // Make sure that value is not an array (only a single radio can ever be checked)\n if (options.value !== undefined && $.isArray(options.value)) {\n throw new Error('prompt with \"inputType\" set to \"radio\" requires a single, non-array value for \"value\"');\n }\n\n inputOptions = options.inputOptions || [];\n\n if (!inputOptions.length) {\n throw new Error('prompt with \"inputType\" set to \"radio\" requires at least one option');\n } // Radiobuttons have to nest within a containing element, so\n // they break the rules a bit and we end up re-assigning\n // our 'input' element to this container instead\n\n\n input = $('
'); // Radiobuttons should always have an initial checked input checked in a \"group\".\n // If value is undefined or doesn't match an input option, select the first radiobutton\n\n var checkFirstRadio = true;\n each(inputOptions, function (_, option) {\n if (option.value === undefined || option.text === undefined) {\n throw new Error('each option needs a \"value\" property and a \"text\" property');\n }\n\n var radio = $(templates.inputs[options.inputType]);\n radio.find('input').attr('value', option.value);\n radio.find('label').append('\\n' + option.text);\n\n if (options.value !== undefined) {\n if (option.value === options.value) {\n radio.find('input').prop('checked', true);\n checkFirstRadio = false;\n }\n }\n\n input.append(radio);\n });\n\n if (checkFirstRadio) {\n input.find('input[type=\"radio\"]').first().prop('checked', true);\n }\n\n break;\n } // now place it in our form\n\n\n form.append(input);\n form.on('submit', function (e) {\n e.preventDefault(); // Fix for SammyJS (or similar JS routing library) hijacking the form post.\n\n e.stopPropagation(); // @TODO can we actually click *the* button object instead?\n // e.g. buttons.confirm.click() or similar\n\n promptDialog.find('.bootbox-accept').trigger('click');\n });\n\n if ($.trim(options.message) !== '') {\n // Add the form to whatever content the user may have added.\n var message = $(templates.promptMessage).html(options.message);\n form.prepend(message);\n options.message = form;\n } else {\n options.message = form;\n } // Generate the dialog\n\n\n promptDialog = exports.dialog(options); // clear the existing handler focusing the submit button...\n\n promptDialog.off('shown.bs.modal', focusPrimaryButton); // ...and replace it with one focusing our input, if possible\n\n promptDialog.on('shown.bs.modal', function () {\n // need the closure here since input isn't\n // an object otherwise\n input.focus();\n });\n\n if (shouldShow === true) {\n promptDialog.modal('show');\n }\n\n return promptDialog;\n }; // INTERNAL FUNCTIONS\n // *************************************************************************************************************\n // Map a flexible set of arguments into a single returned object\n // If args.length is already one just return it, otherwise\n // use the properties argument to map the unnamed args to\n // object properties.\n // So in the latter case:\n // mapArguments([\"foo\", $.noop], [\"message\", \"callback\"])\n // -> { message: \"foo\", callback: $.noop }\n\n\n function mapArguments(args, properties) {\n var argn = args.length;\n var options = {};\n\n if (argn < 1 || argn > 2) {\n throw new Error('Invalid argument length');\n }\n\n if (argn === 2 || typeof args[0] === 'string') {\n options[properties[0]] = args[0];\n options[properties[1]] = args[1];\n } else {\n options = args[0];\n }\n\n return options;\n } // Merge a set of default dialog options with user supplied arguments\n\n\n function mergeArguments(defaults, args, properties) {\n return $.extend( // deep merge\n true, // ensure the target is an empty, unreferenced object\n {}, // the base options object for this type of dialog (often just buttons)\n defaults, // args could be an object or array; if it's an array properties will\n // map it to a proper options object\n mapArguments(args, properties));\n } // This entry-level method makes heavy use of composition to take a simple\n // range of inputs and return valid options suitable for passing to bootbox.dialog\n\n\n function mergeDialogOptions(className, labels, properties, args) {\n var locale;\n\n if (args && args[0]) {\n locale = args[0].locale || defaults.locale;\n var swapButtons = args[0].swapButtonOrder || defaults.swapButtonOrder;\n\n if (swapButtons) {\n labels = labels.reverse();\n }\n } // build up a base set of dialog properties\n\n\n var baseOptions = {\n className: 'bootbox-' + className,\n buttons: createLabels(labels, locale)\n }; // Ensure the buttons properties generated, *after* merging\n // with user args are still valid against the supplied labels\n\n return validateButtons( // merge the generated base properties with user supplied arguments\n mergeArguments(baseOptions, args, // if args.length > 1, properties specify how each arg maps to an object key\n properties), labels);\n } // Checks each button object to see if key is valid. \n // This function will only be called by the alert, confirm, and prompt helpers. \n\n\n function validateButtons(options, buttons) {\n var allowedButtons = {};\n each(buttons, function (key, value) {\n allowedButtons[value] = true;\n });\n each(options.buttons, function (key) {\n if (allowedButtons[key] === undefined) {\n throw new Error('button key \"' + key + '\" is not allowed (options are ' + buttons.join(' ') + ')');\n }\n });\n return options;\n } // From a given list of arguments, return a suitable object of button labels.\n // All this does is normalise the given labels and translate them where possible.\n // e.g. \"ok\", \"confirm\" -> { ok: \"OK\", cancel: \"Annuleren\" }\n\n\n function createLabels(labels, locale) {\n var buttons = {};\n\n for (var i = 0, j = labels.length; i < j; i++) {\n var argument = labels[i];\n var key = argument.toLowerCase();\n var value = argument.toUpperCase();\n buttons[key] = {\n label: getText(value, locale)\n };\n }\n\n return buttons;\n } // Get localized text from a locale. Defaults to 'en' locale if no locale \n // provided or a non-registered locale is requested\n\n\n function getText(key, locale) {\n var labels = locales[locale];\n return labels ? labels[key] : locales.en[key];\n } // Filter and tidy up any user supplied parameters to this dialog.\n // Also looks for any shorthands used and ensures that the options\n // which are returned are all normalized properly\n\n\n function sanitize(options) {\n var buttons;\n var total;\n\n if (_typeof(options) !== 'object') {\n throw new Error('Please supply an object of options');\n }\n\n if (!options.message) {\n throw new Error('\"message\" option must not be null or an empty string.');\n } // make sure any supplied options take precedence over defaults\n\n\n options = $.extend({}, defaults, options); // no buttons is still a valid dialog but it's cleaner to always have\n // a buttons object to iterate over, even if it's empty\n\n if (!options.buttons) {\n options.buttons = {};\n }\n\n buttons = options.buttons;\n total = getKeyLength(buttons);\n each(buttons, function (key, button, index) {\n if ($.isFunction(button)) {\n // short form, assume value is our callback. Since button\n // isn't an object it isn't a reference either so re-assign it\n button = buttons[key] = {\n callback: button\n };\n } // before any further checks make sure by now button is the correct type\n\n\n if ($.type(button) !== 'object') {\n throw new Error('button with key \"' + key + '\" must be an object');\n }\n\n if (!button.label) {\n // the lack of an explicit label means we'll assume the key is good enough\n button.label = key;\n }\n\n if (!button.className) {\n var isPrimary = false;\n\n if (options.swapButtonOrder) {\n isPrimary = index === 0;\n } else {\n isPrimary = index === total - 1;\n }\n\n if (total <= 2 && isPrimary) {\n // always add a primary to the main option in a one or two-button dialog\n button.className = 'btn-primary';\n } else {\n // adding both classes allows us to target both BS3 and BS4 without needing to check the version\n button.className = 'btn-secondary btn-default';\n }\n }\n });\n return options;\n } // Returns a count of the properties defined on the object\n\n\n function getKeyLength(obj) {\n return Object.keys(obj).length;\n } // Tiny wrapper function around jQuery.each; just adds index as the third parameter\n\n\n function each(collection, iterator) {\n var index = 0;\n $.each(collection, function (key, value) {\n iterator(key, value, index++);\n });\n }\n\n function focusPrimaryButton(e) {\n e.data.dialog.find('.bootbox-accept').first().trigger('focus');\n }\n\n function destroyModal(e) {\n // ensure we don't accidentally intercept hidden events triggered\n // by children of the current dialog. We shouldn't need to handle this anymore, \n // now that Bootstrap namespaces its events, but still worth doing.\n if (e.target === e.data.dialog[0]) {\n e.data.dialog.remove();\n }\n }\n\n function unbindModal(e) {\n if (e.target === e.data.dialog[0]) {\n e.data.dialog.off('escape.close.bb');\n e.data.dialog.off('click');\n }\n } // Handle the invoked dialog callback\n\n\n function processCallback(e, dialog, callback) {\n e.stopPropagation();\n e.preventDefault(); // by default we assume a callback will get rid of the dialog,\n // although it is given the opportunity to override this\n // so, if the callback can be invoked and it *explicitly returns false*\n // then we'll set a flag to keep the dialog active...\n\n var preserveDialog = $.isFunction(callback) && callback.call(dialog, e) === false; // ... otherwise we'll bin it\n\n if (!preserveDialog) {\n dialog.modal('hide');\n }\n } // Validate `min` and `max` values based on the current `inputType` value\n\n\n function minAndMaxAreValid(type, min, max) {\n var result = false;\n var minValid = true;\n var maxValid = true;\n\n if (type === 'date') {\n if (min !== undefined && !(minValid = dateIsValid(min))) {\n console.warn('Browsers which natively support the \"date\" input type expect date values to be of the form \"YYYY-MM-DD\" (see ISO-8601 https://www.iso.org/iso-8601-date-and-time-format.html). Bootbox does not enforce this rule, but your min value may not be enforced by this browser.');\n } else if (max !== undefined && !(maxValid = dateIsValid(max))) {\n console.warn('Browsers which natively support the \"date\" input type expect date values to be of the form \"YYYY-MM-DD\" (see ISO-8601 https://www.iso.org/iso-8601-date-and-time-format.html). Bootbox does not enforce this rule, but your max value may not be enforced by this browser.');\n }\n } else if (type === 'time') {\n if (min !== undefined && !(minValid = timeIsValid(min))) {\n throw new Error('\"min\" is not a valid time. See https://www.w3.org/TR/2012/WD-html-markup-20120315/datatypes.html#form.data.time for more information.');\n } else if (max !== undefined && !(maxValid = timeIsValid(max))) {\n throw new Error('\"max\" is not a valid time. See https://www.w3.org/TR/2012/WD-html-markup-20120315/datatypes.html#form.data.time for more information.');\n }\n } else {\n if (min !== undefined && isNaN(min)) {\n minValid = false;\n throw new Error('\"min\" must be a valid number. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-min for more information.');\n }\n\n if (max !== undefined && isNaN(max)) {\n maxValid = false;\n throw new Error('\"max\" must be a valid number. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-max for more information.');\n }\n }\n\n if (minValid && maxValid) {\n if (max <= min) {\n throw new Error('\"max\" must be greater than \"min\". See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-max for more information.');\n } else {\n result = true;\n }\n }\n\n return result;\n }\n\n function timeIsValid(value) {\n return /([01][0-9]|2[0-3]):[0-5][0-9]?:[0-5][0-9]/.test(value);\n }\n\n function dateIsValid(value) {\n return /(\\d{4})-(\\d{2})-(\\d{2})/.test(value);\n } // The Bootbox object\n\n\n return exports;\n});","import * as bootbox from 'bootbox/bootbox.all.js'\n\nexport { bootbox }\n"],"sourceRoot":""}