{"version":3,"file":"scripts.1e0979db42fc2147.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,gDAAgD,SAAS;AACzD,wGAAwG,IAAI;AAC5G,wFAAwF,IAAI;AAC5F,gGAAgG,QAAQ;AACxG,IAAI;AACJ;AACA,8CAA8C,SAAS;AACvD,6CAA6C,OAAO,KAAK,SAAS;AAClE;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0FAA0F;AAC3G;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAuD;AACnF;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAsD,cAAc;AACpH,gDAAgD,wDAAwD,cAAc;AACtH;AACA;AACA,8CAA8C,oCAAoC,cAAc;AAChG,6DAA6D,gEAAgE,cAAc;AAC3I,wCAAwC,yCAAyC,cAAc;AAC/F,wCAAwC,uCAAuC,cAAc;AAC7F,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD,GAAG;AACH;AACA;AACA;AACA,CAAC","sources":["src\\app\\assets\\alertify\\alertify.js"],"sourcesContent":["/*global define*/\r\n(function (global, undefined) {\r\n\t\"use strict\";\r\n\r\n\tvar document = global.document,\r\n\t Alertify;\r\n\r\n\tAlertify = function () {\r\n\r\n\t\tvar _alertify = {},\r\n\t\t dialogs = {},\r\n\t\t isopen = false,\r\n\t\t keys = { ENTER: 13, ESC: 27, SPACE: 32 },\r\n\t\t queue = [],\r\n\t\t $, btnCancel, btnOK, btnReset, btnResetBack, btnFocus, elCallee, elCover, elDialog, elLog, form, input, getTransitionEvent;\r\n\r\n\t\t/**\r\n\t\t * Markup pieces\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\tdialogs = {\r\n\t\t\tbuttons : {\r\n\t\t\t\tholder : \"\",\r\n\t\t\t\tsubmit : \"\",\r\n\t\t\t\tok : \"\",\r\n\t\t\t\tcancel : \"\"\r\n\t\t\t},\r\n\t\t\tinput : \"
\",\r\n\t\t\tmessage : \"

{{message}}

\",\r\n\t\t\tlog : \"
{{message}}
\"\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Return the proper transitionend event\r\n\t\t * @return {String} Transition type string\r\n\t\t */\r\n\t\tgetTransitionEvent = function () {\r\n\t\t\tvar t,\r\n\t\t\t type,\r\n\t\t\t supported = false,\r\n\t\t\t el = document.createElement(\"fakeelement\"),\r\n\t\t\t transitions = {\r\n\t\t\t\t \"WebkitTransition\" : \"webkitTransitionEnd\",\r\n\t\t\t\t \"MozTransition\" : \"transitionend\",\r\n\t\t\t\t \"OTransition\" : \"otransitionend\",\r\n\t\t\t\t \"transition\" : \"transitionend\"\r\n\t\t\t };\r\n\r\n\t\t\tfor (t in transitions) {\r\n\t\t\t\tif (el.style[t] !== undefined) {\r\n\t\t\t\t\ttype = transitions[t];\r\n\t\t\t\t\tsupported = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype : type,\r\n\t\t\t\tsupported : supported\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Shorthand for document.getElementById()\r\n\t\t *\r\n\t\t * @param {String} id A specific element ID\r\n\t\t * @return {Object} HTML element\r\n\t\t */\r\n\t\t$ = function (id) {\r\n\t\t\treturn document.getElementById(id);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Alertify private object\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\t_alertify = {\r\n\r\n\t\t\t/**\r\n\t\t\t * Labels object\r\n\t\t\t * @type {Object}\r\n\t\t\t */\r\n\t\t\tlabels : {\r\n\t\t\t\tok : \"OK\",\r\n\t\t\t\tcancel : \"Cancel\"\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Delay number\r\n\t\t\t * @type {Number}\r\n\t\t\t */\r\n\t\t\tdelay : 5000,\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether buttons are reversed (default is secondary/primary)\r\n\t\t\t * @type {Boolean}\r\n\t\t\t */\r\n\t\t\tbuttonReverse : false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Which button should be focused by default\r\n\t\t\t * @type {String}\t\"ok\" (default), \"cancel\", or \"none\"\r\n\t\t\t */\r\n\t\t\tbuttonFocus : \"ok\",\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the transition event on load\r\n\t\t\t * @type {[type]}\r\n\t\t\t */\r\n\t\t\ttransition : undefined,\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the proper button click events\r\n\t\t\t *\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\taddListeners : function (fn) {\r\n\t\t\t\tvar hasOK = (typeof btnOK !== \"undefined\"),\r\n\t\t\t\t hasCancel = (typeof btnCancel !== \"undefined\"),\r\n\t\t\t\t hasInput = (typeof input !== \"undefined\"),\r\n\t\t\t\t val = \"\",\r\n\t\t\t\t self = this,\r\n\t\t\t\t ok, cancel, common, key, reset;\r\n\r\n\t\t\t\t// ok event handler\r\n\t\t\t\tok = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof input !== \"undefined\") val = input.value;\r\n\t\t\t\t\tif (typeof fn === \"function\") {\r\n\t\t\t\t\t\tif (typeof input !== \"undefined\") {\r\n\t\t\t\t\t\t\tfn(true, val);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse fn(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// cancel event handler\r\n\t\t\t\tcancel = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof fn === \"function\") fn(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// common event handler (keyup, ok and cancel)\r\n\t\t\t\tcommon = function (event) {\r\n\t\t\t\t\tself.hide();\r\n\t\t\t\t\tself.unbind(document.body, \"keyup\", key);\r\n\t\t\t\t\tself.unbind(btnReset, \"focus\", reset);\r\n\t\t\t\t\tif (hasOK) self.unbind(btnOK, \"click\", ok);\r\n\t\t\t\t\tif (hasCancel) self.unbind(btnCancel, \"click\", cancel);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// keyup handler\r\n\t\t\t\tkey = function (event) {\r\n\t\t\t\t\tvar keyCode = event.keyCode;\r\n\t\t\t\t\tif ((keyCode === keys.SPACE && !hasInput) || (hasInput && keyCode === keys.ENTER)) ok(event);\r\n\t\t\t\t\tif (keyCode === keys.ESC && hasCancel) cancel(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// reset focus to first item in the dialog\r\n\t\t\t\treset = function (event) {\r\n\t\t\t\t\tif (hasInput) input.focus();\r\n\t\t\t\t\telse if (!hasCancel || self.buttonReverse) btnOK.focus();\r\n\t\t\t\t\telse btnCancel.focus();\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// handle reset focus link\r\n\t\t\t\t// this ensures that the keyboard focus does not\r\n\t\t\t\t// ever leave the dialog box until an action has\r\n\t\t\t\t// been taken\r\n\t\t\t\tthis.bind(btnReset, \"focus\", reset);\r\n\t\t\t\tthis.bind(btnResetBack, \"focus\", reset);\r\n\t\t\t\t// handle OK click\r\n\t\t\t\tif (hasOK) this.bind(btnOK, \"click\", ok);\r\n\t\t\t\t// handle Cancel click\r\n\t\t\t\tif (hasCancel) this.bind(btnCancel, \"click\", cancel);\r\n\t\t\t\t// listen for keys, Cancel => ESC\r\n\t\t\t\tthis.bind(document.body, \"keyup\", key);\r\n\t\t\t\tif (!this.transition.supported) {\r\n\t\t\t\t\tthis.setFocus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Bind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to attach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.addEventListener === \"function\") {\r\n\t\t\t\t\tel.addEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.attachEvent) {\r\n\t\t\t\t\tel.attachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Use alertify as the global error handler (using window.onerror)\r\n\t\t\t *\r\n\t\t\t * @return {boolean} success\r\n\t\t\t */\r\n\t\t\thandleErrors : function () {\r\n\t\t\t\tif (typeof global.onerror !== \"undefined\") {\r\n\t\t\t\t\tvar self = this;\r\n\t\t\t\t\tglobal.onerror = function (msg, url, line) {\r\n\t\t\t\t\t\tself.error(\"[\" + msg + \" on line \" + line + \" of \" + url + \"]\", 0);\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Append button HTML strings\r\n\t\t\t *\r\n\t\t\t * @param {String} secondary The secondary button HTML string\r\n\t\t\t * @param {String} primary The primary button HTML string\r\n\t\t\t *\r\n\t\t\t * @return {String} The appended button HTML strings\r\n\t\t\t */\r\n\t\t\tappendButtons : function (secondary, primary) {\r\n\t\t\t\treturn this.buttonReverse ? primary + secondary : secondary + primary;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Build the proper message box\r\n\t\t\t *\r\n\t\t\t * @param {Object} item Current object in the queue\r\n\t\t\t *\r\n\t\t\t * @return {String} An HTML string of the message box\r\n\t\t\t */\r\n\t\t\tbuild : function (item) {\r\n\t\t\t\tvar html = \"\",\r\n\t\t\t\t type = item.type,\r\n\t\t\t\t message = item.message,\r\n\t\t\t\t css = item.cssClass || \"\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\r\n\t\t\t\tif (_alertify.buttonFocus === \"none\") html += \"\";\r\n\r\n\t\t\t\t// doens't require an actual form\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += dialogs.message.replace(\"{{message}}\", message);\r\n\r\n\t\t\t\tif (type === \"prompt\") html += dialogs.input;\r\n\r\n\t\t\t\thtml += dialogs.buttons.holder;\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tswitch (type) {\r\n\t\t\t\tcase \"confirm\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.ok));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"prompt\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.submit));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"alert\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", dialogs.buttons.ok);\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telDialog.className = \"alertify alertify-\" + type + \" \" + css;\r\n\t\t\t\telCover.className = \"alertify-cover\";\r\n\t\t\t\treturn html;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Close the log messages\r\n\t\t\t *\r\n\t\t\t * @param {Object} elem HTML Element of log message to close\r\n\t\t\t * @param {Number} wait [optional] Time (in ms) to wait before automatically hiding the message, if 0 never hide\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tclose : function (elem, wait) {\r\n\t\t\t\t// Unary Plus: +\"2\" === 2\r\n\t\t\t\tvar timer = (wait && !isNaN(wait)) ? +wait : this.delay,\r\n\t\t\t\t self = this,\r\n\t\t\t\t hideElement, transitionDone;\r\n\r\n\t\t\t\t// set click event on log messages\r\n\t\t\t\tthis.bind(elem, \"click\", function () {\r\n\t\t\t\t\thideElement(elem);\r\n\t\t\t\t});\r\n\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(this, self.transition.type, transitionDone);\r\n\t\t\t\t\t// remove log message\r\n\t\t\t\t\telLog.removeChild(this);\r\n\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t};\r\n\t\t\t\t// this sets the hide class to transition out\r\n\t\t\t\t// or removes the child if css transitions aren't supported\r\n\t\t\t\thideElement = function (el) {\r\n\t\t\t\t\t// ensure element exists\r\n\t\t\t\t\tif (typeof el !== \"undefined\" && el.parentNode === elLog) {\r\n\t\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\t\tif (self.transition.supported) {\r\n\t\t\t\t\t\t\tself.bind(el, self.transition.type, transitionDone);\r\n\t\t\t\t\t\t\tel.className += \" alertify-log-hide\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telLog.removeChild(el);\r\n\t\t\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// never close (until click) if wait is set to 0\r\n\t\t\t\tif (wait === 0) return;\r\n\t\t\t\t// set timeout to auto close the log message\r\n\t\t\t\tsetTimeout(function () { hideElement(elem); }, timer);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Create a dialog box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type Type of dialog to create\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t * @param {String} placeholder [Optional] Default value for prompt input field\r\n\t\t\t * @param {String} cssClass [Optional] Class(es) to append to dialog box\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tdialog : function (message, type, fn, placeholder, cssClass) {\r\n\t\t\t\t// set the current active element\r\n\t\t\t\t// this allows the keyboard focus to be resetted\r\n\t\t\t\t// after the dialog box is closed\r\n\t\t\t\telCallee = document.activeElement;\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif ((elLog && elLog.scrollTop !== null) && (elCover && elCover.scrollTop !== null)) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof message !== \"string\") throw new Error(\"message must be a string\");\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"type must be a string\");\r\n\t\t\t\tif (typeof fn !== \"undefined\" && typeof fn !== \"function\") throw new Error(\"fn must be a function\");\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\tqueue.push({ type: type, message: message, callback: fn, placeholder: placeholder, cssClass: cssClass });\r\n\t\t\t\tif (!isopen) this.setup();\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Extend the log method to create custom methods\r\n\t\t\t *\r\n\t\t\t * @param {String} type Custom method name\r\n\t\t\t *\r\n\t\t\t * @return {Function}\r\n\t\t\t */\r\n\t\t\textend : function (type) {\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"extend method must have exactly one paramter\");\r\n\t\t\t\treturn function (message, wait) {\r\n\t\t\t\t\tthis.log(message, type, wait);\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Hide the dialog and rest to defaults\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\thide : function () {\r\n\t\t\t\tvar transitionDone,\r\n\t\t\t\t self = this;\r\n\t\t\t\t// remove reference from queue\r\n\t\t\t\tqueue.splice(0,1);\r\n\t\t\t\t// if items remaining in the queue\r\n\t\t\t\tif (queue.length > 0) this.setup(true);\r\n\t\t\t\telse {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\tif (this.transition.supported) {\r\n\t\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden alertify-isHidden\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\t// set focus to the last element or body\r\n\t\t\t\t\t// after the dialog is closed\r\n\t\t\t\t\telCallee.focus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initialize Alertify\r\n\t\t\t * Create the 2 main elements\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tinit : function () {\r\n\t\t\t\t// ensure legacy browsers support html5 tags\r\n\t\t\t\tdocument.createElement(\"nav\");\r\n\t\t\t\tdocument.createElement(\"article\");\r\n\t\t\t\tdocument.createElement(\"section\");\r\n\t\t\t\t// cover\r\n\t\t\t\tif ($(\"alertify-cover\") == null) {\r\n\t\t\t\t\telCover = document.createElement(\"div\");\r\n\t\t\t\t\telCover.setAttribute(\"id\", \"alertify-cover\");\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elCover);\r\n\t\t\t\t}\r\n\t\t\t\t// main element\r\n\t\t\t\tif ($(\"alertify\") == null) {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\tqueue = [];\r\n\t\t\t\t\telDialog = document.createElement(\"section\");\r\n\t\t\t\t\telDialog.setAttribute(\"id\", \"alertify\");\r\n\t\t\t\t\telDialog.className = \"alertify alertify-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elDialog);\r\n\t\t\t\t}\r\n\t\t\t\t// log element\r\n\t\t\t\tif ($(\"alertify-logs\") == null) {\r\n\t\t\t\t\telLog = document.createElement(\"section\");\r\n\t\t\t\t\telLog.setAttribute(\"id\", \"alertify-logs\");\r\n\t\t\t\t\telLog.className = \"alertify-logs alertify-logs-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elLog);\r\n\t\t\t\t}\r\n\t\t\t\t// set tabindex attribute on body element\r\n\t\t\t\t// this allows script to give it focus\r\n\t\t\t\t// after the dialog is closed\r\n\t\t\t\tdocument.body.setAttribute(\"tabindex\", \"0\");\r\n\t\t\t\t// set transition type\r\n\t\t\t\tthis.transition = getTransitionEvent();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Show a new log message box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Optional type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding the log\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tlog : function (message, type, wait) {\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif (elLog && elLog.scrollTop !== null) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\telLog.className = \"alertify-logs\";\r\n\t\t\t\tthis.notify(message, type, wait);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Add new log message\r\n\t\t\t * If a type is passed, a class name \"alertify-log-{type}\" will get added.\r\n\t\t\t * This allows for custom look and feel for various types of notifications.\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tnotify : function (message, type, wait) {\r\n\t\t\t\tvar log = document.createElement(\"article\");\r\n\t\t\t\tlog.className = \"alertify-log\" + ((typeof type === \"string\" && type !== \"\") ? \" alertify-log-\" + type : \"\");\r\n\t\t\t\tlog.innerHTML = message;\r\n\t\t\t\t// append child\r\n\t\t\t\telLog.appendChild(log);\r\n\t\t\t\t// triggers the CSS animation\r\n\t\t\t\tsetTimeout(function() { log.className = log.className + \" alertify-log-show\"; }, 50);\r\n\t\t\t\tthis.close(log, wait);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Set properties\r\n\t\t\t *\r\n\t\t\t * @param {Object} args Passing parameters\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tset : function (args) {\r\n\t\t\t\tvar k;\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof args !== \"object\" && args instanceof Array) throw new Error(\"args must be an object\");\r\n\t\t\t\t// set parameters\r\n\t\t\t\tfor (k in args) {\r\n\t\t\t\t\tif (args.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tthis[k] = args[k];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Common place to set focus to proper element\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetFocus : function () {\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\tinput.focus();\r\n\t\t\t\t\tinput.select();\r\n\t\t\t\t}\r\n\t\t\t\telse btnFocus.focus();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initiate all the required pieces for the dialog box\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetup : function (fromQueue) {\r\n\t\t\t\tvar item = queue[0],\r\n\t\t\t\t self = this,\r\n\t\t\t\t transitionDone;\r\n\r\n\t\t\t\t// dialog is open\r\n\t\t\t\tisopen = true;\r\n\t\t\t\t// Set button focus after transition\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\tself.setFocus();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t};\r\n\t\t\t\t// whether CSS transition exists\r\n\t\t\t\tif (this.transition.supported && !fromQueue) {\r\n\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t}\r\n\t\t\t\t// build the proper dialog HTML\r\n\t\t\t\telDialog.innerHTML = this.build(item);\r\n\t\t\t\t// assign all the common elements\r\n\t\t\t\tbtnReset = $(\"alertify-resetFocus\");\r\n\t\t\t\tbtnResetBack = $(\"alertify-resetFocusBack\");\r\n\t\t\t\tbtnOK = $(\"alertify-ok\") || undefined;\r\n\t\t\t\tbtnCancel = $(\"alertify-cancel\") || undefined;\r\n\t\t\t\tbtnFocus = (_alertify.buttonFocus === \"cancel\") ? btnCancel : ((_alertify.buttonFocus === \"none\") ? $(\"alertify-noneFocus\") : btnOK),\r\n\t\t\t\tinput = $(\"alertify-text\") || undefined;\r\n\t\t\t\tform = $(\"alertify-form\") || undefined;\r\n\t\t\t\t// add placeholder value to the input field\r\n\t\t\t\tif (typeof item.placeholder === \"string\" && item.placeholder !== \"\") input.value = item.placeholder;\r\n\t\t\t\tif (fromQueue) this.setFocus();\r\n\t\t\t\tthis.addListeners(item.callback);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Unbind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to detach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tunbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.removeEventListener === \"function\") {\r\n\t\t\t\t\tel.removeEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.detachEvent) {\r\n\t\t\t\t\tel.detachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\talert : function (message, fn, cssClass) { _alertify.dialog(message, \"alert\", fn, \"\", cssClass); return this; },\r\n\t\t\tconfirm : function (message, fn, cssClass) { _alertify.dialog(message, \"confirm\", fn, \"\", cssClass); return this; },\r\n\t\t\textend : _alertify.extend,\r\n\t\t\tinit : _alertify.init,\r\n\t\t\tlog : function (message, type, wait) { _alertify.log(message, type, wait); return this; },\r\n\t\t\tprompt : function (message, fn, placeholder, cssClass) { _alertify.dialog(message, \"prompt\", fn, placeholder, cssClass); return this; },\r\n\t\t\tsuccess : function (message, wait) { _alertify.log(message, \"success\", wait); return this; },\r\n\t\t\terror : function (message, wait) { _alertify.log(message, \"error\", wait); return this; },\r\n\t\t\tset : function (args) { _alertify.set(args); },\r\n\t\t\tlabels : _alertify.labels,\r\n\t\t\tdebug : _alertify.handleErrors\r\n\t\t};\r\n\t};\r\n\r\n\t// AMD and window support\r\n\tif (typeof define === \"function\") {\r\n\t\tdefine([], function () { return new Alertify(); });\r\n\t} else if (typeof global.alertify === \"undefined\") {\r\n\t\tglobal.alertify = new Alertify();\r\n\t}\r\n\r\n}(this));\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}