').addClass('terminal-output').attr('role', 'log')\n .appendTo(wrapper);\n self.addClass('terminal');\n // before login event\n if (settings.login && fire_event('onBeforeLogin') === false) {\n autologin = false;\n }\n // create json-rpc authentication function\n var base_interpreter;\n if (typeof init_interpreter === 'string') {\n base_interpreter = init_interpreter;\n } else if (init_interpreter instanceof Array) {\n // first JSON-RPC\n for (var i = 0, len = init_interpreter.length; i < len; ++i) {\n if (typeof init_interpreter[i] === 'string') {\n base_interpreter = init_interpreter[i];\n break;\n }\n }\n }\n var global_login_fn;\n if (is_function(settings.login)) {\n global_login_fn = settings.login;\n } else if (base_interpreter &&\n (typeof settings.login === 'string' || settings.login === true)) {\n global_login_fn = make_json_rpc_login(base_interpreter, settings.login);\n }\n terminals.append(self);\n function focus_terminal() {\n if (old_enabled) {\n self.focus();\n }\n }\n function blur_terminal() {\n old_enabled = enabled;\n self.disable().find('.cmd textarea').trigger('blur', [true]);\n }\n // paste event is not testable in node\n // istanbul ignore next\n function paste_event(e) {\n e = e.originalEvent;\n // we don't care about browser that don't support clipboard data\n // those browser simple will not have this feature normal paste\n // is cross-browser and it's handled by cmd plugin\n function is_type(item, type) {\n return item.type.indexOf(type) !== -1;\n }\n function echo_image(image) {\n self.echo('
![](\"')
', {raw: true});\n }\n function data_uri(blob) {\n var URL = window.URL || window.webkitURL;\n return URL.createObjectURL(blob);\n }\n function echo(object, ignoreEvents) {\n if (!ignoreEvents && is_function(settings.onPaste)) {\n var event = {\n target: self\n };\n if (typeof object === 'string') {\n event['text'] = object;\n } else if (object instanceof Blob) {\n event['image'] = data_uri(object);\n }\n var ret = fire_event('onPaste', [event]);\n if (ret && is_function(ret.then)) {\n return ret.then(function(ret) {\n echo(ret, true);\n });\n } else {\n echo(event.image || event.text, true);\n }\n } else if (object instanceof Blob) {\n echo_image(data_uri(object));\n } else if (typeof object === 'string') {\n if (object.match(/^data:/)) {\n echo_image(object);\n } else {\n self.insert(object);\n }\n }\n }\n if (e.clipboardData) {\n if (self.enabled()) {\n var items = e.clipboardData.items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (is_type(items[i], 'image') && settings.pasteImage) {\n var blob = items[i].getAsFile();\n echo(blob);\n } else if (is_type(items[i], 'text/plain')) {\n items[i].getAsString(echo);\n }\n }\n } else if (e.clipboardData.getData) {\n var text = e.clipboardData.getData('text/plain');\n echo(text);\n }\n return false;\n }\n }\n }\n $(document).on('paste.terminal_' + self.id(), paste_event);\n var new_keymap = $.extend(\n {},\n keymap,\n $.omap(settings.keymap || {}, function(key, fn) {\n if (!keymap[key]) {\n return fn.bind(self);\n }\n return function(e, original) {\n // new keymap function will get default as 2nd argument\n return fn.call(self, e, function() {\n return keymap[key](e, original);\n });\n };\n })\n );\n make_interpreter(init_interpreter, settings.login, function(itrp) {\n if (settings.completion && typeof settings.completion !== 'boolean' ||\n !settings.completion) {\n // overwrite interpreter completion by global setting #224\n // we use string to indicate that it need to be taken from settings\n // so we are able to change it using option API method\n itrp.completion = 'settings';\n }\n interpreters = new Stack($.extend({}, settings.extra, {\n name: settings.name,\n prompt: settings.prompt,\n keypress: settings.keypress,\n keydown: settings.keydown,\n resize: settings.onResize,\n greetings: settings.greetings,\n mousewheel: settings.mousewheel,\n history: settings.history,\n keymap: new_keymap\n }, itrp));\n // CREATE COMMAND LINE\n command_line = $('
').appendTo(wrapper).cmd({\n tabindex: settings.tabindex,\n prompt: settings.prompt,\n history: settings.memory ? 'memory' : settings.history,\n historyFilter: settings.historyFilter,\n historySize: settings.historySize,\n caseSensitiveSearch: settings.caseSensitiveSearch,\n onPaste: settings.onPaste,\n width: '100%',\n enabled: false,\n char_width: char_size.width,\n keydown: key_down,\n keymap: new_keymap,\n clickTimeout: settings.clickTimeout,\n holdTimeout: settings.holdTimeout,\n holdRepeatTimeout: settings.holdRepeatTimeout,\n repeatTimeoutKeys: settings.repeatTimeoutKeys,\n keypress: key_press,\n tabs: settings.tabs,\n onPositionChange: function() {\n var args = [].slice.call(arguments);\n move_cursor_visible();\n fire_event('onPositionChange', args);\n },\n onCommandChange: function(command) {\n // resize is not triggered when insert called just after init\n // and scrollbar appear\n if (old_width !== fill.width()) {\n // resizer handler will update old_width\n self.resizer();\n }\n fire_event('onCommandChange', [command]);\n if (!move_cursor_visible()) {\n self.scroll_to_bottom();\n }\n },\n commands: commands\n });\n function disable(e) {\n e = e.originalEvent;\n if (e) {\n // e.terget is body when click outside of context menu to close it\n // even if you click on terminal\n var node = document.elementFromPoint(e.clientX, e.clientY);\n if (!$(node).closest('.terminal').length && self.enabled()) {\n // we only need to disable when click outside of terminal\n // click on other terminal is handled by focus event\n self.disable();\n }\n }\n }\n self.oneTime(100, function() {\n $(document).bind('click.terminal_' + self.id(), disable).\n bind('contextmenu.terminal_' + self.id(), disable);\n });\n var $win = $(window);\n // cordova application, if keyboard was open and we resume it will be\n // closed so we need to disable terminal so you can enable it with tap\n document.addEventListener(\"resume\", function() {\n self.disable();\n });\n // istanbul ignore next\n if (is_mobile) {\n self.click(function() {\n if (!frozen) {\n if (!self.enabled()) {\n self.focus();\n command_line.enable();\n } else {\n self.disable();\n }\n }\n });\n } else {\n // work weird on mobile\n $win.on('focus.terminal_' + self.id(), focus_terminal).\n on('blur.terminal_' + self.id(), blur_terminal);\n // detect mouse drag\n (function() {\n var count = 0;\n var $target;\n var name = 'click_' + self.id();\n var textarea = self.find('.cmd textarea');\n function click() {\n if ($target.is('.terminal') ||\n $target.is('.terminal-wrapper')) {\n var len = self.get_command().length;\n self.set_position(len);\n } else if ($target.closest('.prompt').length) {\n self.set_position(0);\n }\n if (!textarea.is(':focus')) {\n textarea.focus();\n }\n reset();\n }\n function reset() {\n count = 0;\n $target = null;\n }\n var ignore_elements = '.terminal-output textarea,' +\n '.terminal-output input';\n // hack for weird jumping on Chrome/windows #402\n var scroll_top;\n self.find('.cmd textarea').on('focus', function() {\n if (typeof scroll_top !== 'undefined') {\n self.scrollTop(scroll_top);\n }\n }).on('blur', function() {\n scroll_top = self.scrollTop();\n });\n self.mousedown(function(e) {\n if (!scrollbar_event(e, fill)) {\n $target = $(e.target);\n }\n }).mouseup(function() {\n if ($target && $target.closest(ignore_elements).length) {\n if (enabled) {\n self.disable();\n }\n } else if (get_selected_text() === '' && $target) {\n if (++count === 1) {\n if (!frozen) {\n if (!enabled) {\n self.focus();\n } else {\n var timeout = settings.clickTimeout;\n self.oneTime(timeout, name, click);\n return;\n }\n }\n } else {\n self.stopTime(name);\n }\n }\n reset();\n }).dblclick(function() {\n reset();\n self.stopTime(name);\n });\n })();\n (function() {\n var clip = self.find('.cmd textarea');\n self.on('contextmenu.terminal', function(e) {\n if (get_selected_text() === '') {\n if (!$(e.target).is('img,value,audio,object,canvas,a')) {\n if (!self.enabled()) {\n self.enable();\n }\n var offset = command_line.offset();\n clip.css({\n left: e.pageX - offset.left - 20,\n top: e.pageY - offset.top - 20,\n width: '5em',\n height: '4em'\n });\n if (!clip.is(':focus')) {\n clip.focus();\n }\n self.stopTime('textarea');\n self.oneTime(100, 'textarea', function() {\n var props = {\n left: '',\n top: '',\n width: '',\n height: ''\n };\n if (!is_css_variables_supported) {\n var in_line = self.find('.cmd .cursor-line')\n .prevUntil('.prompt').length;\n props.top = in_line * 14 + 'px';\n }\n clip.css(props);\n });\n self.stopTime('selection');\n self.everyTime(20, 'selection', function() {\n if (clip[0].selection !== clip[0].value) {\n if (get_textarea_selection(clip[0])) {\n clear_textarea_selection(clip[0]);\n select(\n self.find('.terminal-output')[0],\n self.find('.cmd div:last-of-type')[0]\n );\n self.stopTime('selection');\n }\n }\n });\n }\n }\n });\n })();\n }\n self.on('click', 'a', function(e) {\n var $this = $(this);\n if ($this.closest('.exception').length) {\n var href = $this.attr('href');\n if (href.match(/:[0-9]+$/)) { // display line if specified\n e.preventDefault();\n print_line(href);\n }\n }\n // refocus because links have tabindex in case where user want\n // tab change urls, we can ignore this function on click\n if (enabled) {\n self.find('.cmd textarea').focus();\n }\n });\n function calculate_char_size() {\n var width = char_size.width;\n char_size = get_char_size(self);\n if (width !== char_size.width) {\n command_line.option('char_width', char_size.width).refresh();\n }\n }\n resize();\n function resize() {\n if (self.is(':visible')) {\n var width = fill.width();\n var height = fill.height();\n // prevent too many calculations in IE\n if (old_height !== height || old_width !== width) {\n self.resize();\n }\n old_height = height;\n old_width = width;\n }\n }\n function create_resizers() {\n self.resizer('unbind').resizer(resize);\n font_resizer.resizer('unbind').resizer(function() {\n calculate_char_size();\n self.resize();\n });\n }\n if (self.is(':visible')) {\n create_resizers();\n }\n function observe_visibility() {\n if (visibility_observer) {\n if (visibility_observer.unobserve) {\n visibility_observer.unobserve(self[0]);\n } else {\n clearInterval(visibility_observer);\n }\n }\n var was_enabled = self.enabled();\n var visible = self.is(':visible');\n if (visible) {\n create_resizers();\n }\n function visibility_checker() {\n if (self.is(':visible') && !visible) {\n visible = true;\n create_resizers();\n calculate_char_size();\n resize();\n if (was_enabled) {\n self.enable();\n }\n } else if (visible && !self.is(':visible')) {\n visible = false;\n was_enabled = $.terminal.active() === self && self.enabled();\n self.disable();\n }\n }\n if (window.IntersectionObserver) {\n visibility_observer = new IntersectionObserver(visibility_checker, {\n root: document.body\n });\n visibility_observer.observe(self[0]);\n } else {\n visibility_observer = setInterval(visibility_checker, 400);\n }\n }\n var in_dom = !!self.closest('body').length;\n var MutationObsrv = window.MutationObserver || window.WebKitMutationObserver;\n if (MutationObsrv) {\n mutation_observer = new MutationObsrv(function() {\n if (self.closest('body').length) {\n if (!in_dom) {\n self.scroll_to_bottom();\n if (window.IntersectionObserver) {\n observe_visibility();\n }\n resize();\n }\n in_dom = true;\n } else if (in_dom) {\n in_dom = false;\n }\n });\n mutation_observer.observe(document.body, {childList: true});\n }\n if (in_dom) {\n // check if element is in the DOM if not running IntersectionObserver\n // don't make sense\n observe_visibility();\n }\n command_queue.resolve();\n // touch devices need touch event to get virtual keyboard\n if (enabled && self.is(':visible') && !is_mobile) {\n self.focus(undefined, true);\n } else {\n self.disable();\n }\n // -------------------------------------------------------------\n // Run Login\n if (is_function(global_login_fn)) {\n self.login(global_login_fn, true, initialize);\n } else {\n initialize();\n }\n // -------------------------------------------------------------\n // :: helper\n function exec_spec(spec) {\n var terminal = terminals.get()[spec[0]];\n // execute if belong to this terminal\n if (terminal && terminal_id === terminal.id()) {\n if (!spec[2]) {\n defer.resolve();\n return defer.promise();\n } else if (paused) {\n var defer = $.Deferred();\n resume_callbacks.push(function() {\n return terminal.exec(spec[2]).done(function() {\n terminal.save_state(spec[2], true, spec[1]);\n defer.resolve();\n });\n });\n return defer.promise();\n } else {\n return terminal.exec(spec[2]).done(function() {\n terminal.save_state(spec[2], true, spec[1]);\n });\n }\n }\n }\n // exec from hash called in each terminal instance\n if (settings.execHash) {\n if (location.hash) {\n // wait until login is initialized\n setTimeout(function() {\n try {\n var hash = location.hash.replace(/^#/, '');\n // yes no var - local inside terminal\n hash_commands = JSON.parse(decodeURIComponent(hash));\n var i = 0;\n (function recur() {\n var spec = hash_commands[i++];\n if (spec) {\n exec_spec(spec).done(recur);\n } else {\n change_hash = true;\n }\n })();// */\n } catch (e) {\n // invalid json - ignore\n }\n });\n } else {\n change_hash = true;\n }\n } else {\n change_hash = true; // if enabled later\n }\n // change_hash = true; // exec can now change hash\n // -------------------------------------------------------------\n /* istanbul ignore next */\n (function() {\n var shift = false;\n $(document).bind('keydown.terminal_' + self.id(), function(e) {\n if (e.shiftKey) {\n shift = true;\n }\n }).bind('keyup.terminal_' + self.id(), function(e) {\n // in Google Chromium/Linux shiftKey is false\n if (e.shiftKey || e.which === 16) {\n shift = false;\n }\n });\n // this could work without calling scroll on wheel event but we\n // need it for cases where you have mouse wheel work differently\n // like with less command that scroll text\n function mousewheel(event, delta) {\n if (!shift) {\n var interpreter = interpreters.top();\n var ret;\n if (is_function(interpreter.mousewheel)) {\n ret = interpreter.mousewheel(event, delta, self);\n } else if (is_function(settings.mousewheel)) {\n ret = settings.mousewheel(event, delta, self);\n }\n if (ret === true) {\n return;\n }\n if (have_scrollbar() || ret === false) {\n event.stopPropagation();\n event.preventDefault();\n }\n if (ret === false) {\n return false;\n }\n if (delta > 0) {\n self.scroll(-40);\n } else {\n self.scroll(40);\n }\n }\n }\n if ($.event.special.mousewheel) {\n // we keep mousewheel plugin just in case\n self.on('mousewheel', mousewheel);\n } else {\n // detection take from:\n // https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n var event;\n var div = document.createElement(\"div\");\n if (\"onwheel\" in div) {\n event = \"wheel\"; // Modern browsers support \"wheel\"\n } else if (document.onmousewheel !== undefined) {\n // Webkit and IE support at least \"mousewheel\"\n event = \"mousewheel\";\n } else {\n // let's assume that remaining browsers are older Firefox\n event = \"DOMMouseScroll\";\n }\n div = null;\n self.on(event, function(e) {\n var delta;\n if (event === 'mousewheel') {\n delta = - 1 / 40 * e.originalEvent.wheelDelta;\n } else {\n delta = e.originalEvent.deltaY || e.originalEvent.detail;\n }\n mousewheel(e, -delta);\n });\n }\n })();\n }); // make_interpreter\n self.data('terminal', self);\n return self;\n }; // terminal plugin\n});\n"]}
\ No newline at end of file
+{"version":3,"sources":["js/jquery.terminal.js"],"names":["ctx","sprintf","cache","hasOwnProperty","arguments","parse","format","call","parse_tree","argv","cursor","tree_length","length","node_type","arg","output","i","k","match","pad","pad_character","pad_length","get_type","push","test","toString","String","fromCharCode","parseInt","toExponential","parseFloat","toFixed","slice","toUpperCase","charAt","str_repeat","join","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","vsprintf","_argv","splice","apply","variable","Object","prototype","toLowerCase","input","multiplier","global","window","factory","undefined","root","define","amd","module","exports","jQuery","wcwidth","require","$","debug","str","console","log","DelayQueue","callbacks","Callbacks","resolved","this","resolve","fire","add","fn","omap","o","result","each","v","text_length","map","text","get","reduce","a","b","Clone","clone_object","object","tmp","isArray","clone_array","key","array","is_function","Array","Error","item","bind","clone","localStorage","hasLS","testKey","storage","setItem","removeItem","error","hasCookies","document","cookie","split","e","isLS","wls","n","c","wc","dt","Date","setTime","getTime","toGMTString","rls","rc","nn","ca","indexOf","dls","dc","extend","Storage","set","remove","everyTime","interval","label","times","belay","timer","oneTime","stopTime","guid","regex","powers","ms","cs","ds","s","das","hs","ks","timeParse","value","trim","num","mult","element","counter","isFunction","isNaN","constructor","Number","$timers","$timerID","handler","inProgress","setInterval","timers","ret","lab","clearInterval","_fn","navigator","userAgent","one","els","undef","nativeSplit","compliantExecNpcg","self","separator","limit","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","separator2","lastIndex","lastLength","RegExp","source","index","replace","caret","pos","target","isContentEditable","contentEditable","getSelection","focus","range1","getRangeAt","range2","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","selectionStart","selection","createRange","body","createTextRange","moveToElementText","setEndPoint","range","duplicate","bookmark","getBookmark","moveToBookmark","moveStart","collapse","firstChild","setSelectionRange","select","is","resizer","callback","trigger","unbind","$this","iframe","resize_handler","data","has","removeData","ResizeObserver","observer","unobserve","find","contentWindow","off","first","observe","on","addClass","appendTo","isFullyInViewport","container","box","getBoundingClientRect","viewport","top","bottom","height","a11y_hide","attr","role","aria-hidden","excepctions","alert_exception","message","exception_message","setTimeout","scrollbar_event","node","left","offset","outerWidth","clientX","fileName","Cycle","rotate","skip","init","defined","filter","append","front","restart","Boolean","forEach","Stack","size","pop","concat","History","name","memory","enabled","storage_key","JSON","stringify","new_data","reset","last","end","position","current","next","old","previous","clear","purge","enable","disable","toggle","cmd_index","cmd","defaults","mask","caseSensitiveSearch","historySize","prompt","history","onPositionChange","noop","onCommandChange","inputStyle","onPaste","clickTimeout","holdTimeout","holdRepeatTimeout","repeatTimeoutKeys","tabindex","tabs","options","settings","maybe_data","id","clip","autocapitalize","spellcheck","is_mobile","val","width","num_chars","char_width","last_rendered_prompt","prompt_last_line","prompt_len","prompt_node","reverse_search","rev_search_str","reverse_search_position","backup_prompt","command","last_command","kill_text","formatted_position","animation","restart_animation","paste_count","get_char_pos","closest","parent","prevAll","prevUntil","nextUntil","key_mapping","SPACEBAR","UP","DOWN","LEFT","RIGHT","DEL","MULTIPLY","DIVIDE","SUBTRACT","ADD","get_key","combo","ctrlKey","metaKey","shiftKey","altKey","keycodes","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","reversed_keycodes","keys","which","keymap","default_keymap","ALT+D","delete_word","HOLD+DELETE","HOLD+SHIFT+DELETE","ENTER","historyFilter","prev_command","no_keydown","commands","draw_prompt","SHIFT+ENTER","insert","BACKSPACE","backspace_key","SHIFT+BACKSPACE","TAB","CTRL+D","DELETE","ARROWUP","prev_history","CTRL+P","ARROWDOWN","next_history","CTRL+N","ARROWLEFT","HOLD+ARROWLEFT","CTRL+B","CTRL+ARROWLEFT","len","CTRL+R","reverse_history_search","draw_reverse_prompt","redraw","CTRL+G","ARROWRIGHT","right","HOLD+ARROWRIGHT","CTRL+F","CTRL+ARROWRIGHT","re","F12","return_true","END","CTRL+E","HOME","home","CTRL+A","SHIFT+INSERT","paste_event","CTRL+SHIFT+T","CTRL+W","delete_word_backward","HOLD+BACKSPACE","HOLD+SHIFT+BACKSPACE","CTRL+H","CTRL+X","CTRL+C","CTRL+T","CTRL+Y","CTRL+V","META+V","CTRL+K","text_to_clipboard","CTRL+U","CTRL+TAB","META+`","META+R","META+L","clipboard","substring","m","isenabled","paste","fix_textarea","then","first_up_history","mobile_focus","fix_cursor","animation_supported","style","getComputedStyle","animationName","getPropertyValue","_class","className","position_only","is_android","removeClass","new_cursor","insertBefore","animating","blink","toggleClass","clear_reverse_state","history_data","save_string","j","terminal","escape_regex","get_char_width","$prompt","html","get_num_chars","Math","floor","get_splitted_command_line","string","split_equal","skip_empty","line","strip","escape_brackets","first_len","strlen","splitted","formatting","skip_formatted_position","escape_formatting","unixFormattingEscapeBrackets","formatted","apply_formatters","max","normalize","stack","before","encoded","encode","wrap","is_formatting","start","prev","after","cursor_line","draw_cursor_line","ch_unit_bug","before_str","c_before","cond","noselect","cursor_len","setProperty","div","lines_after","lines","last_ins","insertAfter","lines_before","css","original_string","from_last","last_len","new_pos","line_index","current_len","msg","strings","redrawError","in_line","is_css_variables_supported","find_position","cmp","search_pos","opts","guess","codepoint_len","binary_search","chars","split_characters","crlf","encoded_last_line","last_line","fire_change_command","clean","option","delete","stay","removed","silent","new_keymap","original","bare_command","destroy","doc","keypress_event","keydown_event","input_event","user_prompt","relative","refresh","display_position","command_len","new_formatted_pos","visible","show","resize","invoke_key","shortcut","ctrl","shift","alt","meta","Event","documentElement","keyCode","new_mask","prevent_keypress","dead_key","single_key","no_keypress","no_key","backspace","process","hold","hold_pause","skip_insert","is_backspace","is_single","clear_reverse_search_key","fake","exception","keydown","clear_hold","keypress","is_key_native","normalized","inArray","event","type","chr","keycode","charCodeAt","abs","was_down","count","$target","down","button","originalEvent","get_selected_text","KeyboardEvent","combine_chr_re","astral_symbols_re","emoji_re","mobile_re","tablet_re","format_split_re","format_parts_re","format_re","format_exist_re","format_full_re","color_hex_re","url_re","url_nf_re","email_re","command_re","extended_command_re","format_begin_re","format_start_re","format_end_re","format_exec_re","float_re","re_re","string_re","unclosed_strings_re","domPrefixes","elm","createElement","is_ch_unit_supported","agent","CSS","supports","proto","getOwnPropertyDescriptor","check","substr","vendor","opera","base","ch","space","bare_text","safe","get_next_character","match_emoji","match_combo","normalize_position","acc","char_width_prop","extra_css","bare","wide_characters","specs","arr","spec","sum","compare_fn","mid","$div","select_all","execCommand","get_textarea_selection","textarea","selectionEnd","clear_textarea_selection","common_string","matchCase","string_case","candidate","candidateLower","currentLower","trigger_terminal_change","terminals","term","onTerminalChange","setBaseAndExtent","setStart","childNodes","removeAllRanges","addRange","process_command","args","quotes","rest","args_quotes","version","date","color_names","valid_color","color","unclosed_strings","special","have_formatting","format_split","tracking_replace","rex","replacement","new_string","rep_string","new_position","last_index","c0","iterate_formatting","is_space","entity_re","match_entity","is_open_formatting","is_escape_bracket","is_text","not_formatting","opening","in_text","space_count","prev_space","braket","char","start_index","end_index","start_formatting","end_formatting","prev_index","_","semicolons","keep_words","prev_format","first_index","line_length","last_char","last_bracket","last_iteraction","can_break","stripped","text_len","new_index","closed_formatting","matched","amp","sp","nested_formatting","test_lengths","formatter","__no_warn__","warn","formatters","apply_function_formatter","__meta__","found_position","partials","this_len","length_before","loop","position_partial","partial","Exception","linksNoReferrer","linksNoFollow","anyLinks","background","data_text","style_str","text_decoration","extra","rel","unshift","unescape_brackets","columns","cols","no_formatting","lengths","column_limit","whole","bracket","active","last_id","parse_argument","strict","parse_string","quote","parse_arguments","split_arguments","parse_command","split_command","parse_options","boolean","token","single","extended_command","invokeMethods","change_hash","obj","eval","done","iterator","Symbol","replacer","search","new_formatter","Terminal_Exception","hidden","warnings","ids","jrpc","url","method","params","success","deferred","Deferred","isPlainObject","validJSONRPC","response","isNumeric","request","jsonrpc","ajax","beforeSend","jxhr","status","jqXHR","content_type","getResponseHeader","json","reject","contentType","dataType","async","promise","terminal_ready","get_char_size","rect","visiblity","temp","char_size","get_num_rows","all","same","same_case","version_set","copyright","version_string","reg","name_ver","signatures","exit","maskChar","checkArity","raw","exceptionHandler","pauseEvents","softPause","cancelableAjax","processArguments","processRPCResponse","completionEscape","convertLinks","scrollObject","historyState","importHistory","echoCommand","scrollOnEcho","login","outputLimit","onAjaxError","pasteImage","scrollBottomOffset","wordAutocomplete","caseSensitiveAutocomplete","describe","onRPCError","doubleTab","completion","onInit","onClear","onBlur","onFocus","onExit","onPush","onPop","onAfterRedraw","onEchoCommand","onFlush","comletionParameters","wrongPasswordTryAgain","wrongPassword","ajaxAbortError","wrongArity","commandNotFound","oneRPCWithIgnore","oneInterpreterFunction","loginFunctionMissing","noTokenError","serverResponse","wrongGreetings","notWhileLogin","loginIsNotAFunction","canExitError","invalidCompletion","invalidSelector","invalidTerminalId","password","recursiveCall","notAString","invalidStrings","defunctTerminal","requests","save_state","hash_commands","fire_hash_change","first_instance","init_interpreter","StorageHelper","get_processed_command","display_object","echo","print_line","url_spec","pause","file","code","resume","display_json_rpc_error","at","make_basic_json_rpc","auth","interpreter","display_exception","ajax_error","make_object_interpreter","arity","fallback","user_command","onCommandNotFound","xhr","responseText","make_json_rpc_object","jrpc_success","jrpc_request","jrpc_response","procs","field","interpreter_object","proc","args_len","help","names","found","make_interpreter","user_intrp","finalize","rpc_count","fn_interpreter","recur","interpreters","new_obj","ignoreSystemDescribe","make_json_rpc_login","user","passwd","output_buffer","NEW_LINE","buffer_line","format_options","words","keepWords","process_line","line_settings","is_fn","parseObject","parts","prev_cmd","update","scroll","command_line","detached_output","empty","detach","lines_to_show","rows","flush","fire_event","limit_lines","$lines","for_remove","parents","$self","show_greetings","greetings","signature","echo_command","get_command","have_scrollbar","innerWidth","clientWidth","fill","restore_state","command_idx","import_view","export_view","maybe_update_hash","location","hash","first_command","resume_callbacks","init_state","execHash","after_exec","saved_change_hash","invoke","when","paused","ghost","level","logout","in_login","get_token","set_token","global_logout","onBeforeLogout","clear_loging_storage","onAfterLogout","global_login_fn","initialize","prefix_name","maybe_append_name","interpreter_name","prepare_top_interpreter","login_name","fun","init_queue","onStart","move_cursor_visible","scrollTop","hashchange","decodeURIComponent","was_paused","onPause","user_key_down","get_position","set_command","CTRL+L","orignal","caseSensitive","complete","word","escape","before_cursor","scroll_to_bottom","PAGEDOWN","PAGEUP","key_down","tab_count","r","readyState","abort","key_press","ready","queue","selector","terminal_id","num_rows","logins","command_queue","when_ready","cmd_ready","old_width","old_height","delayed_commands","defunct","frozen","autologin","old_enabled","visibility_observer","mutation_observer","user_export","get_prompt","view","set_prompt","ignore_hash","state","d","infinite","login_callback","set_mask","pass","cmd_strings","double_quotes","single_quote","prev_string","sensitive","slash","matched_strings","pre","post","to_insert","set_position","reverse","common","set_interpreter","overwrite_interpreter","numChars","numRows","history_state","run","setImmediate","clear_history_state","x","animate","freeze","lenghts","is_bottom","get_output","new_num_chars","new_num_rows","wrapper","replaceWith","e1","e2","remove_line","locals","lineNumber","trace","amount","round","prop","local","local_name","intrp","read","cancel","defer","infiniteLogin","push_settings","object_or_name","prefix","font_resizer","blur_terminal","focus_terminal","disconnect","scrollHeight","scroll_height","scroll_top","outerHeight","base_interpreter","is_type","echo_image","image","data_uri","blob","URL","webkitURL","createObjectURL","ignoreEvents","Blob","clipboardData","items","getAsFile","getAsString","getData","itrp","onResize","mousewheel","elementFromPoint","clientY","$win","addEventListener","click","ignore_elements","mousedown","mouseup","timeout","dblclick","pageX","pageY","props","href","preventDefault","calculate_char_size","create_resizers","observe_visibility","was_enabled","visibility_checker","IntersectionObserver","in_dom","MutationObsrv","MutationObserver","WebKitMutationObserver","childList","exec_spec","delta","stopPropagation","onmousewheel","wheelDelta","deltaY","detail"],"mappings":"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","sourcesContent":["/**@license\n * __ _____ ________ __\n * / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /\n * __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ \\/ /\n * / / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // / /__\n * \\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/\n * \\/ /____/ version 2.1.0\n *\n * This file is part of jQuery Terminal. http://terminal.jcubic.pl\n *\n * Copyright (c) 2010-2019 Jakub T. Jankiewicz
\n * Released under the MIT license\n *\n * Contains:\n *\n * Storage plugin Distributed under the MIT License\n * modified to work from Data URIs that block storage and cookies in Chrome\n * Copyright (c) 2010 Dave Schindler\n *\n * jQuery Timers licenced with the WTFPL\n * \n *\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven Levithan \n * Available under the MIT License\n *\n * jQuery Caret\n * Copyright (c) 2009, Gideon Sireling\n * 3 clause BSD License\n *\n * sprintf.js\n * Copyright (c) 2007-2013 Alexandru Marasteanu \n * licensed under 3 clause BSD license\n *\n * emoji regex v7.0.1 by Mathias Bynens\n * MIT license\n *\n * Date: Sun, 20 Jan 2019 10:58:06 +0000\n */\n\n/* TODO:\n *\n * Debug interpreters names in LocalStorage\n *\n * TEST: login + promises/exec\n * json-rpc/object + promises\n *\n * NOTE: json-rpc don't need promises and delegate resume/pause because only\n * exec can call it and exec call interpreter that work with resume/pause\n */\n/* global location, jQuery, setTimeout, window, global, localStorage, sprintf,\n setImmediate, IntersectionObserver, MutationObserver, ResizeObserver,\n module, require, define, setInterval, clearInterval, Blob */\n/* eslint-disable */\n/* istanbul ignore next */\n(function(ctx) {\n var sprintf = function() {\n if (!sprintf.cache.hasOwnProperty(arguments[0])) {\n sprintf.cache[arguments[0]] = sprintf.parse(arguments[0]);\n }\n return sprintf.format.call(null, sprintf.cache[arguments[0]], arguments);\n };\n sprintf.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) !== 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.slice(0, match[7]) : arg); break;\n case 'u': arg = arg >>> 0; break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? ' +' + arg : arg);\n pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n sprintf.cache = {};\n\n sprintf.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.slice(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.slice(match[0].length);\n }\n return parse_tree;\n };\n\n var vsprintf = function(fmt, argv, _argv) {\n _argv = argv.slice(0);\n _argv.splice(0, 0, fmt);\n return sprintf.apply(null, _argv);\n };\n\n /**\n * helpers\n */\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n /**\n * export to either browser or node.js\n */\n ctx.sprintf = sprintf;\n ctx.vsprintf = vsprintf;\n})(typeof global !== \"undefined\" ? global : window);\n/* eslint-enable */\n// UMD taken from https://github.com/umdjs/umd\n(function(factory, undefined) {\n var root = typeof window !== 'undefined' ? window : global;\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n // istanbul ignore next\n define(['jquery', 'wcwidth'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function(root, jQuery, wcwidth) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (window !== undefined) {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n if (wcwidth === undefined) {\n wcwidth = require('wcwidth');\n }\n factory(jQuery, wcwidth);\n return jQuery;\n };\n } else {\n // Browser\n // istanbul ignore next\n factory(root.jQuery, root.wcwidth);\n }\n})(function($, wcwidth, undefined) {\n 'use strict';\n // -----------------------------------------------------------------------\n // :: debug functions\n // -----------------------------------------------------------------------\n /* eslint-disable */\n function debug(str) {\n if (false) {\n console.log(str);\n //$.terminal.active().echo(str);\n }\n }\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: Replacemenet for jQuery 2 deferred objects\n // -----------------------------------------------------------------------\n function DelayQueue() {\n var callbacks = $.Callbacks();\n var resolved = false;\n this.resolve = function() {\n callbacks.fire();\n resolved = true;\n };\n this.add = function(fn) {\n if (resolved) {\n fn();\n } else {\n callbacks.add(fn);\n }\n };\n }\n // -----------------------------------------------------------------------\n // :: map object to object\n // -----------------------------------------------------------------------\n $.omap = function(o, fn) {\n var result = {};\n $.each(o, function(k, v) {\n result[k] = fn.call(o, k, v);\n });\n return result;\n };\n $.fn.text_length = function() {\n return this.map(function() {\n return $(this).text().length;\n }).get().reduce(function(a, b) {\n return a + b;\n }, 0);\n };\n // -----------------------------------------------------------------------\n // :: Deep clone of objects and arrays\n // -----------------------------------------------------------------------\n var Clone = {\n clone_object: function(object) {\n var tmp = {};\n if (typeof object === 'object') {\n if ($.isArray(object)) {\n return this.clone_array(object);\n } else if (object === null) {\n return object;\n } else {\n for (var key in object) {\n if ($.isArray(object[key])) {\n tmp[key] = this.clone_array(object[key]);\n } else if (typeof object[key] === 'object') {\n tmp[key] = this.clone_object(object[key]);\n } else {\n tmp[key] = object[key];\n }\n }\n }\n }\n return tmp;\n },\n clone_array: function(array) {\n if (!is_function(Array.prototype.map)) {\n throw new Error(\"Your browser don't support ES5 array map \" +\n 'use es5-shim');\n }\n return array.slice(0).map(function(item) {\n if (typeof item === 'object') {\n return this.clone_object(item);\n } else {\n return item;\n }\n }.bind(this));\n }\n };\n var clone = function(object) {\n return Clone.clone_object(object);\n };\n\n /* eslint-disable */\n // -----------------------------------------------------------------------\n // :: Storage plugin\n // -----------------------------------------------------------------------\n var localStorage;\n /* istanbul ignore next */\n (function() {\n var hasLS = function() {\n try {\n var testKey = 'test', storage = window.localStorage;\n storage.setItem(testKey, '1');\n storage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n };\n var hasCookies = function() {\n try {\n document.cookie.split(';');\n return true;\n } catch (e) {\n return false;\n }\n };\n // Private data\n var isLS = hasLS();\n // Private functions\n function wls(n, v) {\n var c;\n if (typeof n === 'string' && typeof v === 'string') {\n localStorage[n] = v;\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n localStorage[c] = n[c];\n }\n }\n return true;\n }\n return false;\n }\n function wc(n, v) {\n var dt, e, c;\n dt = new Date();\n dt.setTime(dt.getTime() + 31536000000);\n e = '; expires=' + dt.toGMTString();\n if (typeof n === 'string' && typeof v === 'string') {\n document.cookie = n + '=' + v + e + '; path=/';\n return true;\n } else if (typeof n === 'object' && typeof v === 'undefined') {\n for (c in n) {\n if (n.hasOwnProperty(c)) {\n document.cookie = c + '=' + n[c] + e + '; path=/';\n }\n }\n return true;\n }\n return false;\n }\n function rls(n) {\n return localStorage[n];\n }\n function rc(n) {\n var nn, ca, i, c;\n nn = n + '=';\n ca = document.cookie.split(';');\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.slice(1, c.length);\n }\n if (c.indexOf(nn) === 0) {\n return c.slice(nn.length, c.length);\n }\n }\n return null;\n }\n function dls(n) {\n return delete localStorage[n];\n }\n function dc(n) {\n return wc(n, '', -1);\n }\n /**\n * Public API\n * $.Storage.set(\"name\", \"value\")\n * $.Storage.set({\"name1\":\"value1\", \"name2\":\"value2\", etc})\n * $.Storage.get(\"name\")\n * $.Storage.remove(\"name\")\n */\n if (!hasCookies() && !isLS) {\n localStorage = {};\n $.extend({\n Storage: {\n set: wls,\n get: rls,\n remove: dls\n }\n });\n } else {\n if (isLS) {\n localStorage = window.localStorage;\n }\n $.extend({\n Storage: {\n set: isLS ? wls : wc,\n get: isLS ? rls : rc,\n remove: isLS ? dls : dc\n }\n });\n }\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Timers\n // -----------------------------------------------------------------------\n var jQuery = $;\n /* istanbul ignore next */\n (function($) {\n jQuery.fn.extend({\n everyTime: function(interval, label, fn, times, belay) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, times, belay);\n });\n },\n oneTime: function(interval, label, fn) {\n return this.each(function() {\n jQuery.timer.add(this, interval, label, fn, 1);\n });\n },\n stopTime: function(label, fn) {\n return this.each(function() {\n jQuery.timer.remove(this, label, fn);\n });\n }\n });\n\n jQuery.extend({\n timer: {\n guid: 1,\n global: {},\n regex: /^([0-9]+)\\s*(.*s)?$/,\n powers: {\n // Yeah this is major overkill...\n 'ms': 1,\n 'cs': 10,\n 'ds': 100,\n 's': 1000,\n 'das': 10000,\n 'hs': 100000,\n 'ks': 1000000\n },\n timeParse: function(value) {\n if (value === undefined || value === null) {\n return null;\n }\n var result = this.regex.exec(jQuery.trim(value.toString()));\n if (result[2]) {\n var num = parseInt(result[1], 10);\n var mult = this.powers[result[2]] || 1;\n return num * mult;\n } else {\n return value;\n }\n },\n add: function(element, interval, label, fn, times, belay) {\n var counter = 0;\n\n if (jQuery.isFunction(label)) {\n if (!times) {\n times = fn;\n }\n fn = label;\n label = interval;\n }\n\n interval = jQuery.timer.timeParse(interval);\n\n if (typeof interval !== 'number' ||\n isNaN(interval) ||\n interval <= 0) {\n return;\n }\n if (times && times.constructor !== Number) {\n belay = !!times;\n times = 0;\n }\n\n times = times || 0;\n belay = belay || false;\n\n if (!element.$timers) {\n element.$timers = {};\n }\n if (!element.$timers[label]) {\n element.$timers[label] = {};\n }\n fn.$timerID = fn.$timerID || this.guid++;\n\n var handler = function() {\n if (belay && handler.inProgress) {\n return;\n }\n handler.inProgress = true;\n if ((++counter > times && times !== 0) ||\n fn.call(element, counter) === false) {\n jQuery.timer.remove(element, label, fn);\n }\n handler.inProgress = false;\n };\n\n handler.$timerID = fn.$timerID;\n\n if (!element.$timers[label][fn.$timerID]) {\n element.$timers[label][fn.$timerID] = window.setInterval(handler, interval);\n }\n\n if (!this.global[label]) {\n this.global[label] = [];\n }\n this.global[label].push(element);\n\n },\n remove: function(element, label, fn) {\n var timers = element.$timers, ret;\n\n if (timers) {\n\n if (!label) {\n for (var lab in timers) {\n if (timers.hasOwnProperty(lab)) {\n this.remove(element, lab, fn);\n }\n }\n } else if (timers[label]) {\n if (fn) {\n if (fn.$timerID) {\n window.clearInterval(timers[label][fn.$timerID]);\n delete timers[label][fn.$timerID];\n }\n } else {\n for (var _fn in timers[label]) {\n if (timers[label].hasOwnProperty(_fn)) {\n window.clearInterval(timers[label][_fn]);\n delete timers[label][_fn];\n }\n }\n }\n\n for (ret in timers[label]) {\n if (timers[label].hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n ret = null;\n delete timers[label];\n }\n }\n\n for (ret in timers) {\n if (timers.hasOwnProperty(ret)) {\n break;\n }\n }\n if (!ret) {\n element.$timers = null;\n }\n }\n }\n }\n });\n if (/(msie) ([\\w.]+)/.exec(navigator.userAgent.toLowerCase())) {\n $(window).one('unload', function() {\n var global = jQuery.timer.global;\n for (var label in global) {\n if (global.hasOwnProperty(label)) {\n var els = global[label], i = els.length;\n while (--i) {\n jQuery.timer.remove(els[i], label);\n }\n }\n }\n });\n }\n })(jQuery);\n // -----------------------------------------------------------------------\n // :: CROSS BROWSER SPLIT\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n (function(undef) {\n\n // prevent double include\n\n if (!String.prototype.split.toString().match(/\\[native/)) {\n return;\n }\n\n var nativeSplit = String.prototype.split,\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef, // NPCG: nonparticipating capturing group\n self;\n\n self = function(str, separator, limit) {\n // If `separator` is not a regex, use `nativeSplit`\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\n return nativeSplit.call(str, separator, limit);\n }\n var output = [],\n flags = (separator.ignoreCase ? \"i\" : \"\") +\n (separator.multiline ? \"m\" : \"\") +\n (separator.extended ? \"x\" : \"\") + // Proposed for ES6\n (separator.sticky ? \"y\" : \"\"), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + \"g\");\n str += \"\"; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n // ? Math.pow(2, 32) - 1 : ToUint32(limit)\n limit = limit === undef ? -1 >>> 0 : limit >>> 0;\n while (match = separator.exec(str)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(str.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function() {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undef) {\n match[i] = undef;\n }\n }\n });\n }\n if (match.length > 1 && match.index < str.length) {\n Array.prototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === str.length) {\n if (lastLength || !separator.test(\"\")) {\n output.push(\"\");\n }\n } else {\n output.push(str.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n\n // For convenience\n String.prototype.split = function(separator, limit) {\n return self(this, separator, limit);\n };\n\n return self;\n\n })();\n // -----------------------------------------------------------------------\n // :: jQuery Caret\n // -----------------------------------------------------------------------\n /* istanbul ignore next */\n $.fn.caret = function(pos) {\n var target = this[0];\n var isContentEditable = target.contentEditable === 'true';\n //get\n if (arguments.length === 0) {\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n target.focus();\n var range1 = window.getSelection().getRangeAt(0),\n range2 = range1.cloneRange();\n range2.selectNodeContents(target);\n range2.setEnd(range1.endContainer, range1.endOffset);\n return range2.toString().length;\n }\n //textarea\n return target.selectionStart;\n }\n //IE<9\n if (document.selection) {\n target.focus();\n //contenteditable\n if (isContentEditable) {\n var range1 = document.selection.createRange(),\n range2 = document.body.createTextRange();\n range2.moveToElementText(target);\n range2.setEndPoint('EndToEnd', range1);\n return range2.text.length;\n }\n //textarea\n var pos = 0,\n range = target.createTextRange(),\n range2 = document.selection.createRange().duplicate(),\n bookmark = range2.getBookmark();\n range.moveToBookmark(bookmark);\n while (range.moveStart('character', -1) !== 0) pos++;\n return pos;\n }\n //not supported\n return 0;\n }\n //set\n if (pos === -1)\n pos = this[isContentEditable? 'text' : 'val']().length;\n //HTML5\n if (window.getSelection) {\n //contenteditable\n if (isContentEditable) {\n target.focus();\n window.getSelection().collapse(target.firstChild, pos);\n }\n //textarea\n else\n target.setSelectionRange(pos, pos);\n }\n //IE<9\n else if (document.body.createTextRange) {\n var range = document.body.createTextRange();\n range.moveToElementText(target);\n range.moveStart('character', pos);\n range.collapse(true);\n range.select();\n }\n if (!isContentEditable && !this.is(':focus')) {\n target.focus();\n }\n return pos;\n };\n /* eslint-enable */\n // -----------------------------------------------------------------------\n // :: Cross-browser resize element plugin using sentinel iframe or\n // :: resizeObserver\n // -----------------------------------------------------------------------\n $.fn.resizer = function(callback) {\n var trigger = arguments.length === 0;\n var unbind = arguments[0] === \"unbind\";\n if (!trigger && !unbind && !is_function(callback)) {\n throw new Error('Invalid argument, it need to a function or string ' +\n '\"unbind\" or no arguments.');\n }\n if (unbind) {\n callback = is_function(arguments[1]) ? arguments[1] : null;\n }\n return this.each(function() {\n var $this = $(this);\n var iframe;\n var callbacks;\n function resize_handler() {\n callbacks.fire();\n }\n if (trigger || unbind) {\n callbacks = $this.data('callbacks');\n if (trigger) {\n callbacks && callbacks.fire();\n } else {\n if (callback && callbacks) {\n callbacks.remove(callback);\n if (!callbacks.has()) {\n callbacks = null;\n }\n } else {\n callbacks = null;\n }\n if (!callbacks) {\n $this.removeData('callbacks');\n if (window.ResizeObserver) {\n var observer = $this.data('observer');\n if (observer) {\n observer.unobserve(this);\n $this.removeData('observer');\n }\n } else {\n iframe = $this.find('> iframe');\n if (iframe.length) {\n // just in case of memory leaks in IE\n $(iframe[0].contentWindow).off('resize').remove();\n iframe.remove();\n } else if ($this.is('body')) {\n $(window).off('resize.resizer');\n }\n }\n }\n }\n } else if ($this.data('callbacks')) {\n $(this).data('callbacks').add(callback);\n } else {\n callbacks = $.Callbacks();\n callbacks.add(callback);\n $this.data('callbacks', callbacks);\n var resizer;\n var first = true;\n if (window.ResizeObserver) {\n resizer = new ResizeObserver(function() {\n if (!first) {\n resize_handler();\n }\n first = false;\n });\n resizer.observe(this);\n $this.data('observer', resizer);\n } else if ($this.is('body')) {\n $(window).on('resize.resizer', resize_handler);\n } else {\n iframe = $('').addClass('resizer').appendTo(this)[0];\n\n $(iframe.contentWindow).on('resize', resize_handler);\n }\n }\n });\n };\n // -----------------------------------------------------------------------\n // :: based on https://github.com/zeusdeux/isInViewport\n // :: work only vertically and on dom elements\n // -----------------------------------------------------------------------\n $.fn.isFullyInViewport = function(container) {\n var box = this[0].getBoundingClientRect();\n var viewport = container[0].getBoundingClientRect();\n var top = box.top - viewport.top;\n var bottom = box.bottom - viewport.top;\n var height = container.height();\n return bottom > 0 && top <= height;\n };\n // -----------------------------------------------------------------------\n // :: hide elements from screen readers\n // -----------------------------------------------------------------------\n function a11y_hide(element) {\n element.attr({\n role: 'presentation',\n 'aria-hidden': 'true'\n });\n }\n // ---------------------------------------------------------------------\n // :: alert only first exception of type\n // ---------------------------------------------------------------------\n var excepctions = [];\n function alert_exception(label, e) {\n var message = (label ? label + ': ' : '') + exception_message(e);\n if (excepctions.indexOf(message) === -1) {\n excepctions.push(message);\n setTimeout(function() {\n throw e;\n }, 0);\n //alert(message + (e.stack ? '\\n' + e.stack : ''));\n }\n }\n // ---------------------------------------------------------------------\n // :; detect if mouse event happen on scrollbar\n // ---------------------------------------------------------------------\n function scrollbar_event(e, node) {\n var left = node.offset().left;\n return node.outerWidth() <= e.clientX - left;\n }\n // ---------------------------------------------------------------------\n // :: Return exception message as string\n // ---------------------------------------------------------------------\n function exception_message(e) {\n if (typeof e === 'string') {\n return e;\n } else if (typeof e.fileName === 'string') {\n return e.fileName + ': ' + e.message;\n } else {\n return e.message;\n }\n }\n // -----------------------------------------------------------------------\n // :: CYCLE DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Cycle() {\n var data = [].slice.call(arguments);\n var pos = 0;\n $.extend(this, {\n get: function() {\n return data;\n },\n index: function() {\n return pos;\n },\n rotate: function(skip, init) {\n if (init === undefined) {\n init = pos;\n } else if (init === pos) {\n return;\n }\n if (!skip) {\n var defined = data.filter(function(item) {\n return typeof item !== 'undefined';\n });\n if (!defined.length) {\n return;\n }\n }\n if (!data.length) {\n return;\n }\n if (data.length === 1) {\n return data[0];\n } else {\n if (pos === data.length - 1) {\n pos = 0;\n } else {\n ++pos;\n }\n if (typeof data[pos] !== 'undefined') {\n return data[pos];\n } else {\n return this.rotate(true, init);\n }\n }\n },\n length: function() {\n return data.length;\n },\n remove: function(index) {\n delete data[index];\n },\n set: function(item) {\n for (var i = data.length; i--;) {\n if (data[i] === item) {\n pos = i;\n return;\n }\n }\n this.append(item);\n pos = data.length - 1;\n },\n front: function() {\n if (data.length) {\n var index = pos;\n var restart = false;\n while (!data[index]) {\n index++;\n if (index > data.length) {\n if (restart) {\n break;\n }\n index = 0;\n restart = true;\n }\n }\n return data[index];\n }\n },\n map: function(fn) {\n return data.map(function(item, i) {\n if (typeof item !== 'undefined') {\n return fn(item, i);\n }\n return null;\n }).filter(Boolean);\n },\n forEach: function(fn) {\n return data.forEach(function(item, i) {\n if (typeof item !== 'undefined') {\n fn(item, i);\n }\n });\n },\n append: function(item) {\n data.push(item);\n }\n });\n }\n // -----------------------------------------------------------------------\n // :: STACK DATA STRUCTURE\n // -----------------------------------------------------------------------\n function Stack(init) {\n var data = init instanceof Array ? init : init ? [init] : [];\n $.extend(this, {\n data: function() {\n return data;\n },\n map: function(fn) {\n return $.map(data, fn);\n },\n size: function() {\n return data.length;\n },\n pop: function() {\n if (data.length === 0) {\n return null;\n } else {\n var value = data[data.length - 1];\n data = data.slice(0, data.length - 1);\n return value;\n }\n },\n push: function(value) {\n data = data.concat([value]);\n return value;\n },\n top: function() {\n return data.length > 0 ? data[data.length - 1] : null;\n },\n clone: function() {\n return new Stack(data.slice(0));\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: HISTORY CLASS\n // -------------------------------------------------------------------------\n function History(name, size, memory) {\n var enabled = true;\n var storage_key = '';\n if (typeof name === 'string' && name !== '') {\n storage_key = name + '_';\n }\n storage_key += 'commands';\n var data;\n if (memory) {\n data = [];\n } else {\n data = $.Storage.get(storage_key);\n data = data ? JSON.parse(data) : [];\n }\n var pos = data.length - 1;\n $.extend(this, {\n append: function(item) {\n if (enabled) {\n if (data[data.length - 1] !== item) {\n data.push(item);\n if (size && data.length > size) {\n data = data.slice(-size);\n }\n pos = data.length - 1;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n }\n },\n set: function(new_data) {\n if (new_data instanceof Array) {\n data = new_data;\n if (!memory) {\n $.Storage.set(storage_key, JSON.stringify(data));\n }\n }\n },\n data: function() {\n return data;\n },\n reset: function() {\n pos = data.length - 1;\n },\n last: function() {\n return data[data.length - 1];\n },\n end: function() {\n return pos === data.length - 1;\n },\n position: function() {\n return pos;\n },\n current: function() {\n return data[pos];\n },\n next: function() {\n var old = pos;\n if (pos < data.length - 1) {\n ++pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n previous: function() {\n var old = pos;\n if (pos > 0) {\n --pos;\n }\n if (old !== pos) {\n return data[pos];\n }\n },\n clear: function() {\n data = [];\n this.purge();\n },\n enabled: function() {\n return enabled;\n },\n enable: function() {\n enabled = true;\n },\n purge: function() {\n if (!memory) {\n $.Storage.remove(storage_key);\n }\n },\n disable: function() {\n enabled = false;\n },\n toggle: function(value) {\n if (typeof value === 'undefined') {\n enabled = !enabled;\n } else {\n enabled = value;\n }\n }\n });\n }\n // -------------------------------------------------------------------------\n // :: COMMAND LINE PLUGIN\n // -------------------------------------------------------------------------\n var cmd_index = 0;\n $.cmd = {\n defaults: {\n mask: false,\n caseSensitiveSearch: true,\n historySize: 60,\n prompt: '> ',\n enabled: true,\n history: true,\n onPositionChange: $.noop,\n onCommandChange: $.noop,\n inputStyle: 'textarea',\n onPaste: $.noop,\n clickTimeout: 200,\n holdTimeout: 400,\n holdRepeatTimeout: 200,\n repeatTimeoutKeys: ['HOLD+BACKSPACE'],\n tabindex: 1,\n tabs: 4\n }\n };\n $.fn.cmd = function(options) {\n var settings = $.extend({}, $.cmd.defaults, options);\n var self = this;\n var maybe_data = self.data('cmd');\n if (maybe_data) {\n return maybe_data;\n }\n var id = cmd_index++;\n self.addClass('cmd');\n self.append('');\n self.append('' +\n '' +\n ' ' +\n '' +\n '
');\n // a11y: don't read command it's in textarea that's in focus\n a11y_hide(self.find('.cursor-line'));\n // on mobile the only way to hide textarea on desktop it's needed because\n // textarea show up after focus\n //self.append('');\n var clip = $('