{"version":3,"sources":["jsdelivr-header.js","/npm/jquery.splitter@0.30.0/js/jquery.splitter.js"],"names":[],"mappings":"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","file":"/npm/jquery.splitter@0.30.0/js/jquery.splitter.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/jquery.splitter@0.30.0/js/jquery.splitter.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n * jQuery Spliter Plugin version 0.29.1\n * Copyright (C) 2010-2020 Jakub T. Jankiewicz <https://jcubic.pl/me>\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n */\n/* global module, define, global, require, setTimeout */\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'], factory);\n    } else if (typeof module === 'object' && module.exports) {\n        // Node/CommonJS\n        module.exports = function(root, jQuery) {\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            factory(jQuery);\n            return jQuery;\n        };\n    } else {\n        // Browser\n        // istanbul ignore next\n        factory(root.jQuery);\n    }\n})(function($, undefined) {\n    if (typeof String.prototype.trim === 'undefined') {\n        var sp_re = /(^\\s+)|(\\s+)$/g;\n        String.prototype.trim = function() {\n            return this.replace(sp_re, '');\n        };\n    }\n    var count = 0;\n    var splitter_id = null;\n    var splitters = [];\n    var current_splitter = null;\n    var current_splitter_index = null;\n    $.fn.split = function(options) {\n        var data = this.data('splitter');\n        if (data) {\n            return data;\n        }\n        var panels = [];\n        var $splitters = [];\n        var panel_1;\n        var panel_2;\n        var settings = $.extend({\n            limit: 100,\n            orientation: 'horizontal',\n            ignoreTags: 'script,style,link',\n            position: '50%',\n            invisible: false,\n            onDragStart: $.noop,\n            onDragEnd: $.noop,\n            onDrag: $.noop,\n            percent: false\n        }, options || {});\n        this.settings = settings;\n        function unset(prop) {\n            return options && typeof options[prop] === 'undefined' || !options;\n        }\n        var children = this.children().not(settings.ignoreTags);\n        var len = children.length;\n        if (len > 2) {\n            if (unset('position')) {\n                var w = 100 / len;\n                settings.position = new Array(len - 1).fill(0).map(function() {\n                    return w + '%';\n                });\n            }\n            if (unset('percent')) {\n                settings.percent = true;\n            }\n        }\n        var cls;\n        if (children.length === 2) {\n            if (settings.orientation == 'vertical') {\n                panel_1 = children.first().addClass('left_panel');\n                panel_2 = panel_1.next().addClass('right_panel');\n                cls = 'vsplitter';\n            } else if (settings.orientation == 'horizontal') {\n                panel_1 = children.first().addClass('top_panel');\n                panel_2 = panel_1.next().addClass('bottom_panel');\n                cls = 'hsplitter';\n            }\n            panels = [panel_1, panel_2];\n        } else {\n            children.each(function() {\n                var panel = $(this);\n                if (settings.orientation == 'vertical') {\n                    panel.addClass('vertical_panel');\n                    cls = 'vsplitter';\n                } else {\n                    panel.addClass('horizontal_panel');\n                    cls = 'hsplitter';\n                }\n                panels.push(panel);\n            });\n        }\n        if (settings.invisible) {\n            cls += ' splitter-invisible';\n        }\n        var width = this.width();\n        var height = this.height();\n        this.addClass('splitter_panel');\n        var id = count++;\n        panels.slice(0, -1).forEach(function(panel, i) {\n            var splitter = $('<div/>').addClass(cls).on('mouseenter touchstart', function() {\n                splitter_id = id;\n                current_splitter_index = splitter.index() - i - 1;\n            }).on('mouseleave touchend', function() {\n                splitter_id = null;\n                current_splitter_index = null;\n            }).insertAfter(panel);\n            $splitters.push(splitter);\n        });\n        var position;\n\n        function get_position(position) {\n            if (position instanceof Array) {\n                return position.map(get_position);\n            }\n            if (typeof position === 'number') {\n                return position;\n            }\n            if (typeof position === 'string') {\n                var match = position.match(/^([0-9\\.]+)(px|%)$/);\n                if (match) {\n                    if (match[2] == 'px') {\n                        return +match[1];\n                    } else {\n                        if (settings.orientation == 'vertical') {\n                            return (width * +match[1]) / 100;\n                        } else if (settings.orientation == 'horizontal') {\n                            return (height * +match[1]) / 100;\n                        }\n                    }\n                } else {\n                    //throw position + ' is invalid value';\n                }\n            } else {\n                //throw 'position have invalid type';\n            }\n        }\n\n        function set_limit(limit) {\n            if(!isNaN(parseFloat(limit)) && isFinite(limit)){\n                return {\n                    leftUpper: limit,\n                    rightBottom: limit\n                };\n            }\n            return limit;\n        }\n\n        var self = $.extend(this, {\n            refresh: function() {\n                var new_width = this.width();\n                var new_height = this.height();\n                if (width != new_width || height != new_height) {\n                    width = this.width();\n                    height = this.height();\n                    self.position(position);\n                }\n            },\n            option: function(name, value) {\n                if (name === 'position') {\n                    return self.position(value);\n                } else if (typeof value === 'undefined') {\n                    return settings[name];\n                } else {\n                    settings[name] = value;\n                }\n                return self;\n            },\n            position: (function() {\n                function make_sizer(dim_name, pos_name) {\n                    return function(n, silent) {\n                        if (n === undefined) {\n                            return position;\n                        } else {\n                            position = get_position(n);\n                            if (!(position instanceof Array)) {\n                                position = [position];\n                            }\n                            if (position.length !== panels.length - 1) {\n                                throw new Error('position array need to equal splitters length');\n                            }\n                            var outer_name = 'outer';\n                            outer_name += dim_name[0].toUpperCase() + dim_name.substring(1);\n                            var dim_px = self.css('visiblity', 'hidden')[dim_name]();\n                            var pw = 0;\n                            var sw_sum = 0;\n                            for (var i = 0; i < position.length; ++i) {\n                                var splitter = $splitters[i];\n                                var panel = panels[i];\n                                var pos = position[i];\n                                var splitter_dim = splitter[dim_name]();\n                                var sw2 = splitter_dim/2;\n                                if (settings.invisible) {\n                                    pw += panel[dim_name](pos)[outer_name]();\n                                    splitter.css(pos_name, pw - (sw2 * (i + 1)));\n                                } else if (settings.percent) {\n                                    var w1 = (pos - sw2) / dim_px * 100;\n                                    var l1 = (pw + sw_sum) / dim_px * 100;\n                                    panel.css(pos_name, l1 + '%');\n                                    pw += panel.css(dim_name, w1 + '%')[outer_name]();\n                                    splitter.css(pos_name, (pw + sw_sum) / dim_px * 100 + '%');\n                                } else {\n                                    panel.css(pos_name, pw + sw_sum);\n                                    pw += panel.css(dim_name, pos - sw2)[outer_name]();\n                                    splitter.css(pos_name, pw + sw_sum);\n                                }\n                                sw_sum += splitter_dim;\n                            }\n                            var panel_last = panels[i];\n                            if (settings.invisible) {\n                                panel_last.height(height - pw);\n                            } else {\n                                var s_sum = splitter_dim * i;\n                                var props = {};\n                                if (settings.percent) {\n                                    props[dim_name] = (dim_px - pw - sw_sum) / dim_px * 100 + '%';\n                                    props[pos_name] = (pw + sw_sum) / dim_px * 100 + '%';\n                                } else {\n                                    props[dim_name] = dim_px - pw - sw_sum;\n                                    props[pos_name] = pw + sw_sum;\n                                }\n                                panel_last.css(props);\n                            }\n                            self.css('visiblity', '');\n                        }\n                        if (!silent) {\n                            self.trigger('splitter.resize');\n                            self.find('.splitter_panel').trigger('splitter.resize');\n                        }\n                        return self;\n                    };\n                }\n                if (settings.orientation == 'vertical') {\n                    return make_sizer('width', 'left');\n                } else if (settings.orientation == 'horizontal') {\n                    return make_sizer('height', 'top');\n                } else {\n                    return $.noop;\n                }\n            })(),\n            _splitters: $splitters,\n            _panels: panels,\n            orientation: settings.orientation,\n            limit: set_limit(settings.limit),\n            isActive: function() {\n                return splitter_id === id;\n            },\n            destroy: function() {\n                self.removeClass('splitter_panel');\n                clear_attr(self, 'class');\n                function clear_attr(item, attr) {\n                    var val = item.attr(attr);\n                    if (typeof val === 'string' && !val.trim()) {\n                        item.removeAttr(attr);\n                    }\n                }\n                panels.forEach(function($panel) {\n                    $panel.css({\n                        height: '',\n                        width: '',\n                        left: '',\n                        top: ''\n                    });\n                    var cls = $panel.attr('class').replace(/\\w+_panel/g, '').trim();\n                    $panel.attr('class', cls);\n                    clear_attr($panel, 'class');\n                    clear_attr($panel, 'style');\n                });\n                self.off('splitter.resize');\n                self.trigger('splitter.resize');\n                self.find('.splitter_panel').trigger('splitter.resize');\n                splitters[id] = null;\n                count--;\n                $splitters.forEach(function($splitter) {\n                    var splitter = $(this);\n                    $splitter.off('mouseenter');\n                    $splitter.off('mouseleave');\n                    $splitter.off('touchstart');\n                    $splitter.off('touchmove');\n                    $splitter.off('touchend');\n                    $splitter.off('touchleave');\n                    $splitter.off('touchcancel');\n                    $splitter.remove();\n                });\n                self.removeData('splitter');\n                var not_null = false;\n                for (var i=splitters.length; i--;) {\n                    if (splitters[i] !== null) {\n                        not_null = true;\n                        break;\n                    }\n                }\n                //remove document events when no splitters\n                if (!not_null) {\n                    $(document.documentElement).off('.splitter');\n                    $(window).off('resize.splitter');\n                    splitters = [];\n                    count = 0;\n                }\n            }\n        });\n        self.on('splitter.resize', function(e) {\n            var pos = self.position();\n            if (self.orientation == 'vertical' &&\n                pos > self.width()) {\n                pos = self.width() - self.limit.rightBottom-1;\n            } else if (self.orientation == 'horizontal' &&\n                       pos > self.height()) {\n                pos = self.height() - self.limit.rightBottom-1;\n            }\n            if (pos < self.limit.leftUpper) {\n                pos = self.limit.leftUpper + 1;\n            }\n            e.stopPropagation();\n            self.position(pos, true);\n        });\n        //inital position of splitter\n        var pos;\n        if (settings.orientation == 'vertical') {\n            if (pos > width-settings.limit.rightBottom) {\n                pos = width-settings.limit.rightBottom;\n            } else {\n                pos = get_position(settings.position);\n            }\n        } else if (settings.orientation == 'horizontal') {\n            //position = height/2;\n            if (pos > height-settings.limit.rightBottom) {\n                pos = height-settings.limit.rightBottom;\n            } else {\n                pos = get_position(settings.position);\n            }\n        }\n        if (pos < settings.limit.leftUpper) {\n            pos = settings.limit.leftUpper;\n        }\n        if (panels.length > 2 && !(pos instanceof Array && pos.length == $splitters.length)) {\n            throw new Error('position need to be array equal to $splitters length');\n        }\n        self.position(pos, true);\n        /*\n        // disable this is not needed, if higher in tree there is splitter\n        // the parets need to have height: 100%\n        var parent = this.closest('.splitter_panel');\n        if (parent.length) {\n            this.height(parent.height());\n        }\n        */\n        function calc_pos(pos, x) {\n            var new_pos = pos.slice(0, current_splitter.index);\n            var p;\n            if (new_pos.length) {\n                p = x - new_pos.reduce(function(a, b) {\n                    return a + b;\n                });\n            } else {\n                p = x;\n            }\n            var diff = pos[current_splitter.index] - p;\n            new_pos.push(p);\n            if (current_splitter.index < pos.length - 1) {\n                var rest = pos.slice(current_splitter.index + 1);\n                rest[0] += diff;\n                new_pos = new_pos.concat(rest);\n            }\n            return new_pos;\n        }\n        // ------------------------------------------------------------------------------------\n        // bind events to document if no splitters\n        if (splitters.filter(Boolean).length === 0) {\n            $(window).on('resize.splitter', function() {\n                $.each(splitters, function(i, splitter) {\n                    if (splitter) {\n                        splitter.refresh();\n                    }\n                });\n            });\n            $(document.documentElement).on('mousedown.splitter touchstart.splitter', function(e) {\n                if (splitter_id !== null) {\n                    e.preventDefault();\n                    current_splitter = {\n                        node: splitters[splitter_id],\n                        index: current_splitter_index\n                    };\n                    // ignore right click\n                    if (e.originalEvent.button !== 2) {\n                        setTimeout(function() {\n                            if (!current_splitter) {\n                                return;\n                            }\n                            $('<div class=\"splitterMask\"></div>').\n                                css('cursor', current_splitter.node.children().eq(1).css('cursor')).\n                                insertAfter(current_splitter.node);\n                        });\n                    }\n                    current_splitter.node.settings.onDragStart(e);\n                }\n            }).on('mouseup.splitter touchend.splitter touchleave.splitter touchcancel.splitter', function(e) {\n                if (current_splitter) {\n                    setTimeout(function() {\n                        $('.splitterMask').remove();\n                    });\n                    current_splitter.node.settings.onDragEnd(e);\n                    current_splitter = null;\n                }\n            }).on('mousemove.splitter touchmove.splitter', function(e) {\n                var pos;\n                if (current_splitter !== null) {\n                    var node = current_splitter.node;\n                    var leftUpperLimit = node.limit.leftUpper;\n                    var rightBottomLimit = node.limit.rightBottom;\n                    var offset = node.offset();\n                    if (node.orientation == 'vertical') {\n                        var pageX = e.pageX;\n                        if(e.originalEvent && e.originalEvent.changedTouches){\n                          pageX = e.originalEvent.changedTouches[0].pageX;\n                        }\n                        var x = pageX - offset.left;\n                        if (x <= node.limit.leftUpper) {\n                            x = node.limit.leftUpper + 1;\n                        } else if (x >= node.width() - rightBottomLimit) {\n                            x = node.width() - rightBottomLimit - 1;\n                        }\n                        pos = node.position();\n                        if (pos.length > 1) {\n                            node.position(calc_pos(pos, x), true);\n                        } else if (x > node.limit.leftUpper &&\n                            x < node.width()-rightBottomLimit) {\n                            node.position(x, true);\n                            node.trigger('splitter.resize');\n                            node.find('.splitter_panel').\n                                trigger('splitter.resize');\n                            //e.preventDefault();\n                        }\n                    } else if (node.orientation == 'horizontal') {\n                        var pageY = e.pageY;\n                        if(e.originalEvent && e.originalEvent.changedTouches){\n                          pageY = e.originalEvent.changedTouches[0].pageY;\n                        }\n                        var y = pageY-offset.top;\n                        if (y <= node.limit.leftUpper) {\n                            y = node.limit.leftUpper + 1;\n                        } else if (y >= node.height() - rightBottomLimit) {\n                            y = node.height() - rightBottomLimit - 1;\n                        }\n                        pos = node.position();\n                        if (pos.length > 1) {\n                            node.position(calc_pos(pos, y), true);\n                        } else if (y > node.limit.leftUpper &&\n                            y < node.height()-rightBottomLimit) {\n                            node.position(y, true);\n                            node.trigger('splitter.resize');\n                            node.find('.splitter_panel').\n                                trigger('splitter.resize');\n                            //e.preventDefault();\n                        }\n                    }\n                    node.settings.onDrag(e);\n                }\n            });//*/\n        }\n        splitters[id] = self;\n        self.data('splitter', self);\n        return self;\n    };\n});\n"]}