{"version":3,"file":"5327.33e3ea9d7052661bd659.js","mappings":"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","sources":["webpack://shipley-du-lib/./node_modules/bootstrap3-dialog/dist/js/bootstrap-dialog.js"],"sourcesContent":["/* global define */\n\n/* ================================================\n * Make use of Bootstrap's modal more monkey-friendly.\n *\n * For Bootstrap 3.\n *\n * javanoob@hotmail.com\n *\n * https://github.com/nakupanda/bootstrap3-dialog\n *\n * Licensed under The MIT License.\n * ================================================ */\n(function (root, factory) {\n\n    \"use strict\";\n\n    // CommonJS module is defined\n    if (typeof module !== 'undefined' && module.exports) {\n        module.exports = factory(require('jquery'), require('bootstrap'));\n    }\n    // AMD module is defined\n    else if (typeof define === \"function\" && define.amd) {\n        define(\"bootstrap-dialog\", [\"jquery\", \"bootstrap\"], function ($) {\n            return factory($);\n        });\n    } else {\n        // planted over the root!\n        root.BootstrapDialog = factory(root.jQuery);\n    }\n\n}(this, function ($) {\n\n    \"use strict\";\n\n    /* ================================================\n     * Definition of BootstrapDialogModal.\n     * Extend Bootstrap Modal and override some functions.\n     * BootstrapDialogModal === Modified Modal.\n     * ================================================ */\n    var Modal = $.fn.modal.Constructor;\n    var BootstrapDialogModal = function (element, options) {\n        Modal.call(this, element, options);\n    };\n    BootstrapDialogModal.getModalVersion = function () {\n        var version = null;\n        if (typeof $.fn.modal.Constructor.VERSION === 'undefined') {\n            version = 'v3.1';\n        } else if (/3\\.2\\.\\d+/.test($.fn.modal.Constructor.VERSION)) {\n            version = 'v3.2';\n        } else if (/3\\.3\\.[1,2]/.test($.fn.modal.Constructor.VERSION)) {\n            version = 'v3.3';  // v3.3.1, v3.3.2\n        } else {\n            version = 'v3.3.4';\n        }\n\n        return version;\n    };\n    BootstrapDialogModal.ORIGINAL_BODY_PADDING = parseInt(($('body').css('padding-right') || 0), 10);\n    BootstrapDialogModal.METHODS_TO_OVERRIDE = {};\n    BootstrapDialogModal.METHODS_TO_OVERRIDE['v3.1'] = {};\n    BootstrapDialogModal.METHODS_TO_OVERRIDE['v3.2'] = {\n        hide: function (e) {\n            if (e) {\n                e.preventDefault();\n            }\n            e = $.Event('hide.bs.modal');\n\n            this.$element.trigger(e);\n\n            if (!this.isShown || e.isDefaultPrevented()) {\n                return;\n            }\n\n            this.isShown = false;\n\n            // Remove css class 'modal-open' when the last opened dialog is closing.\n            var openedDialogs = this.getGlobalOpenedDialogs();\n            if (openedDialogs.length === 0) {\n                this.$body.removeClass('modal-open');\n            }\n\n            this.resetScrollbar();\n            this.escape();\n\n            $(document).off('focusin.bs.modal');\n\n            this.$element\n            .removeClass('in')\n            .attr('aria-hidden', true)\n            .off('click.dismiss.bs.modal');\n\n            $.support.transition && this.$element.hasClass('fade') ?\n            this.$element\n            .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n            .emulateTransitionEnd(300) :\n            this.hideModal();\n        }\n    };\n    BootstrapDialogModal.METHODS_TO_OVERRIDE['v3.3'] = {\n        /**\n         * Overrided.\n         * \n         * @returns {undefined}\n         */\n        setScrollbar: function () {\n            var bodyPad = BootstrapDialogModal.ORIGINAL_BODY_PADDING;\n            if (this.bodyIsOverflowing) {\n                this.$body.css('padding-right', bodyPad + this.scrollbarWidth);\n            }\n        },\n        /**\n         * Overrided.\n         * \n         * @returns {undefined}\n         */\n        resetScrollbar: function () {\n            var openedDialogs = this.getGlobalOpenedDialogs();\n            if (openedDialogs.length === 0) {\n                this.$body.css('padding-right', BootstrapDialogModal.ORIGINAL_BODY_PADDING);\n            }\n        },\n        /**\n         * Overrided.\n         * \n         * @returns {undefined}\n         */\n        hideModal: function () {\n            this.$element.hide();\n            this.backdrop($.proxy(function () {\n                var openedDialogs = this.getGlobalOpenedDialogs();\n                if (openedDialogs.length === 0) {\n                    this.$body.removeClass('modal-open');\n                }\n                this.resetAdjustments();\n                this.resetScrollbar();\n                this.$element.trigger('hidden.bs.modal');\n            }, this));\n        }\n    };\n    BootstrapDialogModal.METHODS_TO_OVERRIDE['v3.3.4'] = $.extend({}, BootstrapDialogModal.METHODS_TO_OVERRIDE['v3.3']);\n    BootstrapDialogModal.prototype = {\n        constructor: BootstrapDialogModal,\n        /**\n         * New function, to get the dialogs that opened by BootstrapDialog.\n         * \n         * @returns {undefined}\n         */\n        getGlobalOpenedDialogs: function () {\n            var openedDialogs = [];\n            $.each(BootstrapDialog.dialogs, function (id, dialogInstance) {\n                if (dialogInstance.isRealized() && dialogInstance.isOpened()) {\n                    openedDialogs.push(dialogInstance);\n                }\n            });\n\n            return openedDialogs;\n        }\n    };\n\n    // Add compatible methods.\n    BootstrapDialogModal.prototype = $.extend(BootstrapDialogModal.prototype, Modal.prototype, BootstrapDialogModal.METHODS_TO_OVERRIDE[BootstrapDialogModal.getModalVersion()]);\n\n    /* ================================================\n     * Definition of BootstrapDialog.\n     * ================================================ */\n    var BootstrapDialog = function (options) {\n        this.defaultOptions = $.extend(true, {\n            id: BootstrapDialog.newGuid(),\n            buttons: [],\n            data: {},\n            onshow: null,\n            onshown: null,\n            onhide: null,\n            onhidden: null\n        }, BootstrapDialog.defaultOptions);\n        this.indexedButtons = {};\n        this.registeredButtonHotkeys = {};\n        this.draggableData = {\n            isMouseDown: false,\n            mouseOffset: {}\n        };\n        this.realized = false;\n        this.opened = false;\n        this.initOptions(options);\n        this.holdThisInstance();\n    };\n\n    BootstrapDialog.BootstrapDialogModal = BootstrapDialogModal;\n\n    /**\n     *  Some constants.\n     */\n    BootstrapDialog.NAMESPACE = 'bootstrap-dialog';\n    BootstrapDialog.TYPE_DEFAULT = 'type-default';\n    BootstrapDialog.TYPE_INFO = 'type-info';\n    BootstrapDialog.TYPE_PRIMARY = 'type-primary';\n    BootstrapDialog.TYPE_SUCCESS = 'type-success';\n    BootstrapDialog.TYPE_WARNING = 'type-warning';\n    BootstrapDialog.TYPE_DANGER = 'type-danger';\n    BootstrapDialog.DEFAULT_TEXTS = {};\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_DEFAULT] = 'Information';\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_INFO] = 'Information';\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_PRIMARY] = 'Information';\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_SUCCESS] = 'Success';\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_WARNING] = 'Warning';\n    BootstrapDialog.DEFAULT_TEXTS[BootstrapDialog.TYPE_DANGER] = 'Danger';\n    BootstrapDialog.DEFAULT_TEXTS['OK'] = 'OK';\n    BootstrapDialog.DEFAULT_TEXTS['CANCEL'] = 'Cancel';\n    BootstrapDialog.DEFAULT_TEXTS['CONFIRM'] = 'Confirmation';\n    BootstrapDialog.SIZE_NORMAL = 'size-normal';\n    BootstrapDialog.SIZE_SMALL = 'size-small';\n    BootstrapDialog.SIZE_WIDE = 'size-wide';    // size-wide is equal to modal-lg\n    BootstrapDialog.SIZE_LARGE = 'size-large';\n    BootstrapDialog.BUTTON_SIZES = {};\n    BootstrapDialog.BUTTON_SIZES[BootstrapDialog.SIZE_NORMAL] = '';\n    BootstrapDialog.BUTTON_SIZES[BootstrapDialog.SIZE_SMALL] = '';\n    BootstrapDialog.BUTTON_SIZES[BootstrapDialog.SIZE_WIDE] = '';\n    BootstrapDialog.BUTTON_SIZES[BootstrapDialog.SIZE_LARGE] = 'btn-lg';\n    BootstrapDialog.ICON_SPINNER = 'glyphicon glyphicon-asterisk';\n    BootstrapDialog.BUTTONS_ORDER_CANCEL_OK = 'btns-order-cancel-ok';\n    BootstrapDialog.BUTTONS_ORDER_OK_CANCEL = 'btns-order-ok-cancel';\n\n    /**\n     * Default options.\n     */\n    BootstrapDialog.defaultOptions = {\n        type: BootstrapDialog.TYPE_PRIMARY,\n        size: BootstrapDialog.SIZE_NORMAL,\n        cssClass: '',\n        title: null,\n        message: null,\n        nl2br: true,\n        closable: true,\n        closeByBackdrop: true,\n        closeByKeyboard: true,\n        closeIcon: '&#215;',\n        spinicon: BootstrapDialog.ICON_SPINNER,\n        autodestroy: true,\n        draggable: false,\n        animate: true,\n        description: '',\n        tabindex: -1,\n        btnsOrder: BootstrapDialog.BUTTONS_ORDER_CANCEL_OK\n    };\n\n    /**\n     * Config default options.\n     */\n    BootstrapDialog.configDefaultOptions = function (options) {\n        BootstrapDialog.defaultOptions = $.extend(true, BootstrapDialog.defaultOptions, options);\n    };\n\n    /**\n     * Open / Close all created dialogs all at once.\n     */\n    BootstrapDialog.dialogs = {};\n    BootstrapDialog.openAll = function () {\n        $.each(BootstrapDialog.dialogs, function (id, dialogInstance) {\n            dialogInstance.open();\n        });\n    };\n    BootstrapDialog.closeAll = function () {\n        $.each(BootstrapDialog.dialogs, function (id, dialogInstance) {\n            dialogInstance.close();\n        });\n    };\n\n    /**\n     * Get dialog instance by given id.\n     * \n     * @returns dialog instance\n     */\n    BootstrapDialog.getDialog = function (id) {\n        var dialog = null;\n        if (typeof BootstrapDialog.dialogs[id] !== 'undefined') {\n            dialog = BootstrapDialog.dialogs[id];\n        }\n\n        return dialog;\n    };\n\n    /**\n     * Set a dialog.\n     * \n     * @returns the dialog that has just been set.\n     */\n    BootstrapDialog.setDialog = function (dialog) {\n        BootstrapDialog.dialogs[dialog.getId()] = dialog;\n\n        return dialog;\n    };\n\n    /**\n     * Alias of BootstrapDialog.setDialog(dialog)\n     * \n     * @param {type} dialog\n     * @returns {unresolved}\n     */\n    BootstrapDialog.addDialog = function (dialog) {\n        return BootstrapDialog.setDialog(dialog);\n    };\n\n    /**\n     * Move focus to next visible dialog.\n     */\n    BootstrapDialog.moveFocus = function () {\n        var lastDialogInstance = null;\n        $.each(BootstrapDialog.dialogs, function (id, dialogInstance) {\n            if (dialogInstance.isRealized() && dialogInstance.isOpened()) {\n                lastDialogInstance = dialogInstance;\n            }\n        });\n        if (lastDialogInstance !== null) {\n            lastDialogInstance.getModal().focus();\n        }\n    };\n\n    BootstrapDialog.METHODS_TO_OVERRIDE = {};\n    BootstrapDialog.METHODS_TO_OVERRIDE['v3.1'] = {\n        handleModalBackdropEvent: function () {\n            this.getModal().on('click', {dialog: this}, function (event) {\n                event.target === this && event.data.dialog.isClosable() && event.data.dialog.canCloseByBackdrop() && event.data.dialog.close();\n            });\n\n            return this;\n        },\n        /**\n         * To make multiple opened dialogs look better.\n         * \n         * Will be removed in later version, after Bootstrap Modal >= 3.3.0, updating z-index is unnecessary.\n         */\n        updateZIndex: function () {\n            if (this.isOpened()) {\n                var zIndexBackdrop = 1040;\n                var zIndexModal = 1050;\n                var dialogCount = 0;\n                $.each(BootstrapDialog.dialogs, function (dialogId, dialogInstance) {\n                    if (dialogInstance.isRealized() && dialogInstance.isOpened()) {\n                        dialogCount++;\n                    }\n                });\n                var $modal = this.getModal();\n                var $backdrop = $modal.data('bs.modal').$backdrop;\n                $modal.css('z-index', zIndexModal + (dialogCount - 1) * 20);\n                $backdrop.css('z-index', zIndexBackdrop + (dialogCount - 1) * 20);\n            }\n\n            return this;\n        },\n        open: function () {\n            !this.isRealized() && this.realize();\n            this.getModal().modal('show');\n            this.updateZIndex();\n\n            return this;\n        }\n    };\n    BootstrapDialog.METHODS_TO_OVERRIDE['v3.2'] = {\n        handleModalBackdropEvent: BootstrapDialog.METHODS_TO_OVERRIDE['v3.1']['handleModalBackdropEvent'],\n        updateZIndex: BootstrapDialog.METHODS_TO_OVERRIDE['v3.1']['updateZIndex'],\n        open: BootstrapDialog.METHODS_TO_OVERRIDE['v3.1']['open']\n    };\n    BootstrapDialog.METHODS_TO_OVERRIDE['v3.3'] = {};\n    BootstrapDialog.METHODS_TO_OVERRIDE['v3.3.4'] = $.extend({}, BootstrapDialog.METHODS_TO_OVERRIDE['v3.1']);\n    BootstrapDialog.prototype = {\n        constructor: BootstrapDialog,\n        initOptions: function (options) {\n            this.options = $.extend(true, this.defaultOptions, options);\n\n            return this;\n        },\n        holdThisInstance: function () {\n            BootstrapDialog.addDialog(this);\n\n            return this;\n        },\n        initModalStuff: function () {\n            this.setModal(this.createModal())\n            .setModalDialog(this.createModalDialog())\n            .setModalContent(this.createModalContent())\n            .setModalHeader(this.createModalHeader())\n            .setModalBody(this.createModalBody())\n            .setModalFooter(this.createModalFooter());\n\n            this.getModal().append(this.getModalDialog());\n            this.getModalDialog().append(this.getModalContent());\n            this.getModalContent()\n            .append(this.getModalHeader())\n            .append(this.getModalBody())\n            .append(this.getModalFooter());\n\n            return this;\n        },\n        createModal: function () {\n            var $modal = $('<div class=\"modal\" role=\"dialog\" aria-hidden=\"true\"></div>');\n            $modal.prop('id', this.getId());\n            $modal.attr('aria-labelledby', this.getId() + '_title');\n\n            return $modal;\n        },\n        getModal: function () {\n            return this.$modal;\n        },\n        setModal: function ($modal) {\n            this.$modal = $modal;\n\n            return this;\n        },\n        createModalDialog: function () {\n            return $('<div class=\"modal-dialog\"></div>');\n        },\n        getModalDialog: function () {\n            return this.$modalDialog;\n        },\n        setModalDialog: function ($modalDialog) {\n            this.$modalDialog = $modalDialog;\n\n            return this;\n        },\n        createModalContent: function () {\n            return $('<div class=\"modal-content\"></div>');\n        },\n        getModalContent: function () {\n            return this.$modalContent;\n        },\n        setModalContent: function ($modalContent) {\n            this.$modalContent = $modalContent;\n\n            return this;\n        },\n        createModalHeader: function () {\n            return $('<div class=\"modal-header\"></div>');\n        },\n        getModalHeader: function () {\n            return this.$modalHeader;\n        },\n        setModalHeader: function ($modalHeader) {\n            this.$modalHeader = $modalHeader;\n\n            return this;\n        },\n        createModalBody: function () {\n            return $('<div class=\"modal-body\"></div>');\n        },\n        getModalBody: function () {\n            return this.$modalBody;\n        },\n        setModalBody: function ($modalBody) {\n            this.$modalBody = $modalBody;\n\n            return this;\n        },\n        createModalFooter: function () {\n            return $('<div class=\"modal-footer\"></div>');\n        },\n        getModalFooter: function () {\n            return this.$modalFooter;\n        },\n        setModalFooter: function ($modalFooter) {\n            this.$modalFooter = $modalFooter;\n\n            return this;\n        },\n        createDynamicContent: function (rawContent) {\n            var content = null;\n            if (typeof rawContent === 'function') {\n                content = rawContent.call(rawContent, this);\n            } else {\n                content = rawContent;\n            }\n            if (typeof content === 'string') {\n                content = this.formatStringContent(content);\n            }\n\n            return content;\n        },\n        formatStringContent: function (content) {\n            if (this.options.nl2br) {\n                return content.replace(/\\r\\n/g, '<br />').replace(/[\\r\\n]/g, '<br />');\n            }\n\n            return content;\n        },\n        setData: function (key, value) {\n            this.options.data[key] = value;\n\n            return this;\n        },\n        getData: function (key) {\n            return this.options.data[key];\n        },\n        setId: function (id) {\n            this.options.id = id;\n\n            return this;\n        },\n        getId: function () {\n            return this.options.id;\n        },\n        getType: function () {\n            return this.options.type;\n        },\n        setType: function (type) {\n            this.options.type = type;\n            this.updateType();\n\n            return this;\n        },\n        updateType: function () {\n            if (this.isRealized()) {\n                var types = [BootstrapDialog.TYPE_DEFAULT,\n                    BootstrapDialog.TYPE_INFO,\n                    BootstrapDialog.TYPE_PRIMARY,\n                    BootstrapDialog.TYPE_SUCCESS,\n                    BootstrapDialog.TYPE_WARNING,\n                    BootstrapDialog.TYPE_DANGER];\n\n                this.getModal().removeClass(types.join(' ')).addClass(this.getType());\n            }\n\n            return this;\n        },\n        getSize: function () {\n            return this.options.size;\n        },\n        setSize: function (size) {\n            this.options.size = size;\n            this.updateSize();\n\n            return this;\n        },\n        updateSize: function () {\n            if (this.isRealized()) {\n                var dialog = this;\n\n                // Dialog size\n                this.getModal().removeClass(BootstrapDialog.SIZE_NORMAL)\n                .removeClass(BootstrapDialog.SIZE_SMALL)\n                .removeClass(BootstrapDialog.SIZE_WIDE)\n                .removeClass(BootstrapDialog.SIZE_LARGE);\n                this.getModal().addClass(this.getSize());\n\n                // Smaller dialog.\n                this.getModalDialog().removeClass('modal-sm');\n                if (this.getSize() === BootstrapDialog.SIZE_SMALL) {\n                    this.getModalDialog().addClass('modal-sm');\n                }\n\n                // Wider dialog.\n                this.getModalDialog().removeClass('modal-lg');\n                if (this.getSize() === BootstrapDialog.SIZE_WIDE) {\n                    this.getModalDialog().addClass('modal-lg');\n                }\n\n                // Button size\n                $.each(this.options.buttons, function (index, button) {\n                    var $button = dialog.getButton(button.id);\n                    var buttonSizes = ['btn-lg', 'btn-sm', 'btn-xs'];\n                    var sizeClassSpecified = false;\n                    if (typeof button['cssClass'] === 'string') {\n                        var btnClasses = button['cssClass'].split(' ');\n                        $.each(btnClasses, function (index, btnClass) {\n                            if ($.inArray(btnClass, buttonSizes) !== -1) {\n                                sizeClassSpecified = true;\n                            }\n                        });\n                    }\n                    if (!sizeClassSpecified) {\n                        $button.removeClass(buttonSizes.join(' '));\n                        $button.addClass(dialog.getButtonSize());\n                    }\n                });\n            }\n\n            return this;\n        },\n        getCssClass: function () {\n            return this.options.cssClass;\n        },\n        setCssClass: function (cssClass) {\n            this.options.cssClass = cssClass;\n\n            return this;\n        },\n        getTitle: function () {\n            return this.options.title;\n        },\n        setTitle: function (title) {\n            this.options.title = title;\n            this.updateTitle();\n\n            return this;\n        },\n        updateTitle: function () {\n            if (this.isRealized()) {\n                var title = this.getTitle() !== null ? this.createDynamicContent(this.getTitle()) : this.getDefaultText();\n                this.getModalHeader().find('.' + this.getNamespace('title')).html('').append(title).prop('id', this.getId() + '_title');\n            }\n\n            return this;\n        },\n        getMessage: function () {\n            return this.options.message;\n        },\n        setMessage: function (message) {\n            this.options.message = message;\n            this.updateMessage();\n\n            return this;\n        },\n        updateMessage: function () {\n            if (this.isRealized()) {\n                var message = this.createDynamicContent(this.getMessage());\n                this.getModalBody().find('.' + this.getNamespace('message')).html('').append(message);\n            }\n\n            return this;\n        },\n        isClosable: function () {\n            return this.options.closable;\n        },\n        setClosable: function (closable) {\n            this.options.closable = closable;\n            this.updateClosable();\n\n            return this;\n        },\n        setCloseByBackdrop: function (closeByBackdrop) {\n            this.options.closeByBackdrop = closeByBackdrop;\n\n            return this;\n        },\n        canCloseByBackdrop: function () {\n            return this.options.closeByBackdrop;\n        },\n        setCloseByKeyboard: function (closeByKeyboard) {\n            this.options.closeByKeyboard = closeByKeyboard;\n\n            return this;\n        },\n        canCloseByKeyboard: function () {\n            return this.options.closeByKeyboard;\n        },\n        isAnimate: function () {\n            return this.options.animate;\n        },\n        setAnimate: function (animate) {\n            this.options.animate = animate;\n\n            return this;\n        },\n        updateAnimate: function () {\n            if (this.isRealized()) {\n                this.getModal().toggleClass('fade', this.isAnimate());\n            }\n\n            return this;\n        },\n        getSpinicon: function () {\n            return this.options.spinicon;\n        },\n        setSpinicon: function (spinicon) {\n            this.options.spinicon = spinicon;\n\n            return this;\n        },\n        addButton: function (button) {\n            this.options.buttons.push(button);\n\n            return this;\n        },\n        addButtons: function (buttons) {\n            var that = this;\n            $.each(buttons, function (index, button) {\n                that.addButton(button);\n            });\n\n            return this;\n        },\n        getButtons: function () {\n            return this.options.buttons;\n        },\n        setButtons: function (buttons) {\n            this.options.buttons = buttons;\n            this.updateButtons();\n\n            return this;\n        },\n        /**\n         * If there is id provided for a button option, it will be in dialog.indexedButtons list.\n         *\n         * In that case you can use dialog.getButton(id) to find the button.\n         *\n         * @param {type} id\n         * @returns {undefined}\n         */\n        getButton: function (id) {\n            if (typeof this.indexedButtons[id] !== 'undefined') {\n                return this.indexedButtons[id];\n            }\n\n            return null;\n        },\n        getButtonSize: function () {\n            if (typeof BootstrapDialog.BUTTON_SIZES[this.getSize()] !== 'undefined') {\n                return BootstrapDialog.BUTTON_SIZES[this.getSize()];\n            }\n\n            return '';\n        },\n        updateButtons: function () {\n            if (this.isRealized()) {\n                if (this.getButtons().length === 0) {\n                    this.getModalFooter().hide();\n                } else {\n                    this.getModalFooter().show().find('.' + this.getNamespace('footer')).html('').append(this.createFooterButtons());\n                }\n            }\n\n            return this;\n        },\n        isAutodestroy: function () {\n            return this.options.autodestroy;\n        },\n        setAutodestroy: function (autodestroy) {\n            this.options.autodestroy = autodestroy;\n        },\n        getDescription: function () {\n            return this.options.description;\n        },\n        setDescription: function (description) {\n            this.options.description = description;\n\n            return this;\n        },\n        setTabindex: function (tabindex) {\n            this.options.tabindex = tabindex;\n\n            return this;\n        },\n        getTabindex: function () {\n            return this.options.tabindex;\n        },\n        updateTabindex: function () {\n            if (this.isRealized()) {\n                this.getModal().attr('tabindex', this.getTabindex());\n            }\n\n            return this;\n        },\n        getDefaultText: function () {\n            return BootstrapDialog.DEFAULT_TEXTS[this.getType()];\n        },\n        getNamespace: function (name) {\n            return BootstrapDialog.NAMESPACE + '-' + name;\n        },\n        createHeaderContent: function () {\n            var $container = $('<div></div>');\n            $container.addClass(this.getNamespace('header'));\n\n            // title\n            $container.append(this.createTitleContent());\n\n            // Close button\n            $container.prepend(this.createCloseButton());\n\n            return $container;\n        },\n        createTitleContent: function () {\n            var $title = $('<div></div>');\n            $title.addClass(this.getNamespace('title'));\n\n            return $title;\n        },\n        createCloseButton: function () {\n            var $container = $('<div></div>');\n            $container.addClass(this.getNamespace('close-button'));\n            var $icon = $('<button class=\"close\" aria-label=\"close\"></button>');\n            $icon.append(this.options.closeIcon);\n            $container.append($icon);\n            $container.on('click', {dialog: this}, function (event) {\n                event.data.dialog.close();\n            });\n\n            return $container;\n        },\n        createBodyContent: function () {\n            var $container = $('<div></div>');\n            $container.addClass(this.getNamespace('body'));\n\n            // Message\n            $container.append(this.createMessageContent());\n\n            return $container;\n        },\n        createMessageContent: function () {\n            var $message = $('<div></div>');\n            $message.addClass(this.getNamespace('message'));\n\n            return $message;\n        },\n        createFooterContent: function () {\n            var $container = $('<div></div>');\n            $container.addClass(this.getNamespace('footer'));\n\n            return $container;\n        },\n        createFooterButtons: function () {\n            var that = this;\n            var $container = $('<div></div>');\n            $container.addClass(this.getNamespace('footer-buttons'));\n            this.indexedButtons = {};\n            $.each(this.options.buttons, function (index, button) {\n                if (!button.id) {\n                    button.id = BootstrapDialog.newGuid();\n                }\n                var $button = that.createButton(button);\n                that.indexedButtons[button.id] = $button;\n                $container.append($button);\n            });\n\n            return $container;\n        },\n        createButton: function (button) {\n            var $button = $('<button class=\"btn\"></button>');\n            $button.prop('id', button.id);\n            $button.data('button', button);\n\n            // Icon\n            if (typeof button.icon !== 'undefined' && $.trim(button.icon) !== '') {\n                $button.append(this.createButtonIcon(button.icon));\n            }\n\n            // Label\n            if (typeof button.label !== 'undefined') {\n                $button.append(button.label);\n            }\n\n            // title\n            if (typeof button.title !== 'undefined') {\n                $button.attr('title',  button.title);\n            }\n\n            // Css class\n            if (typeof button.cssClass !== 'undefined' && $.trim(button.cssClass) !== '') {\n                $button.addClass(button.cssClass);\n            } else {\n                $button.addClass('btn-default');\n            }\n\n            // Data attributes\n            if (typeof button.data === 'object' && button.data.constructor === {}.constructor) {\n                $.each(button.data, function (key, value) {\n                    $button.attr('data-' + key, value);\n                });\n            }\n\n            // Hotkey\n            if (typeof button.hotkey !== 'undefined') {\n                this.registeredButtonHotkeys[button.hotkey] = $button;\n            }\n\n            // Button on click\n            $button.on('click', {dialog: this, $button: $button, button: button}, function (event) {\n                var dialog = event.data.dialog;\n                var $button = event.data.$button;\n                var button = $button.data('button');\n                if (button.autospin) {\n                    $button.toggleSpin(true);\n                }\n                if (typeof button.action === 'function') {\n                    return button.action.call($button, dialog, event);\n                }\n            });\n\n            // Dynamically add extra functions to $button\n            this.enhanceButton($button);\n\n            //Initialize enabled or not\n            if (typeof button.enabled !== 'undefined') {\n                $button.toggleEnable(button.enabled);\n            }\n\n            return $button;\n        },\n        /**\n         * Dynamically add extra functions to $button\n         *\n         * Using '$this' to reference 'this' is just for better readability.\n         *\n         * @param {type} $button\n         * @returns {_L13.BootstrapDialog.prototype}\n         */\n        enhanceButton: function ($button) {\n            $button.dialog = this;\n\n            // Enable / Disable\n            $button.toggleEnable = function (enable) {\n                var $this = this;\n                if (typeof enable !== 'undefined') {\n                    $this.prop(\"disabled\", !enable).toggleClass('disabled', !enable);\n                } else {\n                    $this.prop(\"disabled\", !$this.prop(\"disabled\"));\n                }\n\n                return $this;\n            };\n            $button.enable = function () {\n                var $this = this;\n                $this.toggleEnable(true);\n\n                return $this;\n            };\n            $button.disable = function () {\n                var $this = this;\n                $this.toggleEnable(false);\n\n                return $this;\n            };\n\n            // Icon spinning, helpful for indicating ajax loading status.\n            $button.toggleSpin = function (spin) {\n                var $this = this;\n                var dialog = $this.dialog;\n                var $icon = $this.find('.' + dialog.getNamespace('button-icon'));\n                if (typeof spin === 'undefined') {\n                    spin = !($button.find('.icon-spin').length > 0);\n                }\n                if (spin) {\n                    $icon.hide();\n                    $button.prepend(dialog.createButtonIcon(dialog.getSpinicon()).addClass('icon-spin'));\n                } else {\n                    $icon.show();\n                    $button.find('.icon-spin').remove();\n                }\n\n                return $this;\n            };\n            $button.spin = function () {\n                var $this = this;\n                $this.toggleSpin(true);\n\n                return $this;\n            };\n            $button.stopSpin = function () {\n                var $this = this;\n                $this.toggleSpin(false);\n\n                return $this;\n            };\n\n            return this;\n        },\n        createButtonIcon: function (icon) {\n            var $icon = $('<span></span>');\n            $icon.addClass(this.getNamespace('button-icon')).addClass(icon);\n\n            return $icon;\n        },\n        /**\n         * Invoke this only after the dialog is realized.\n         *\n         * @param {type} enable\n         * @returns {undefined}\n         */\n        enableButtons: function (enable) {\n            $.each(this.indexedButtons, function (id, $button) {\n                $button.toggleEnable(enable);\n            });\n\n            return this;\n        },\n        /**\n         * Invoke this only after the dialog is realized.\n         *\n         * @returns {undefined}\n         */\n        updateClosable: function () {\n            if (this.isRealized()) {\n                // Close button\n                this.getModalHeader().find('.' + this.getNamespace('close-button')).toggle(this.isClosable());\n            }\n\n            return this;\n        },\n        /**\n         * Set handler for modal event 'show.bs.modal'.\n         * This is a setter!\n         */\n        onShow: function (onshow) {\n            this.options.onshow = onshow;\n\n            return this;\n        },\n        /**\n         * Set handler for modal event 'shown.bs.modal'.\n         * This is a setter!\n         */\n        onShown: function (onshown) {\n            this.options.onshown = onshown;\n\n            return this;\n        },\n        /**\n         * Set handler for modal event 'hide.bs.modal'.\n         * This is a setter!\n         */\n        onHide: function (onhide) {\n            this.options.onhide = onhide;\n\n            return this;\n        },\n        /**\n         * Set handler for modal event 'hidden.bs.modal'.\n         * This is a setter!\n         */\n        onHidden: function (onhidden) {\n            this.options.onhidden = onhidden;\n\n            return this;\n        },\n        isRealized: function () {\n            return this.realized;\n        },\n        setRealized: function (realized) {\n            this.realized = realized;\n\n            return this;\n        },\n        isOpened: function () {\n            return this.opened;\n        },\n        setOpened: function (opened) {\n            this.opened = opened;\n\n            return this;\n        },\n        handleModalEvents: function () {\n            this.getModal().on('show.bs.modal', {dialog: this}, function (event) {\n                var dialog = event.data.dialog;\n                dialog.setOpened(true);\n                if (dialog.isModalEvent(event) && typeof dialog.options.onshow === 'function') {\n                    var openIt = dialog.options.onshow(dialog);\n                    if (openIt === false) {\n                        dialog.setOpened(false);\n                    }\n\n                    return openIt;\n                }\n            });\n            this.getModal().on('shown.bs.modal', {dialog: this}, function (event) {\n                var dialog = event.data.dialog;\n                dialog.isModalEvent(event) && typeof dialog.options.onshown === 'function' && dialog.options.onshown(dialog);\n            });\n            this.getModal().on('hide.bs.modal', {dialog: this}, function (event) {\n                var dialog = event.data.dialog;\n                dialog.setOpened(false);\n                if (dialog.isModalEvent(event) && typeof dialog.options.onhide === 'function') {\n                    var hideIt = dialog.options.onhide(dialog);\n                    if (hideIt === false) {\n                        dialog.setOpened(true);\n                    }\n\n                    return hideIt;\n                }\n            });\n            this.getModal().on('hidden.bs.modal', {dialog: this}, function (event) {\n                var dialog = event.data.dialog;\n                dialog.isModalEvent(event) && typeof dialog.options.onhidden === 'function' && dialog.options.onhidden(dialog);\n                if (dialog.isAutodestroy()) {\n                    dialog.setRealized(false);\n                    delete BootstrapDialog.dialogs[dialog.getId()];\n                    $(this).remove();\n                }\n                BootstrapDialog.moveFocus();\n                if ($('.modal').hasClass('in')) {\n                  $('body').addClass('modal-open');\n                }\n            });\n\n            // Backdrop, I did't find a way to change bs3 backdrop option after the dialog is popped up, so here's a new wheel.\n            this.handleModalBackdropEvent();\n\n            // ESC key support\n            this.getModal().on('keyup', {dialog: this}, function (event) {\n                event.which === 27 && event.data.dialog.isClosable() && event.data.dialog.canCloseByKeyboard() && event.data.dialog.close();\n            });\n\n            // Button hotkey\n            this.getModal().on('keyup', {dialog: this}, function (event) {\n                var dialog = event.data.dialog;\n                if (typeof dialog.registeredButtonHotkeys[event.which] !== 'undefined') {\n                    var $button = $(dialog.registeredButtonHotkeys[event.which]);\n                    !$button.prop('disabled') && $button.focus().trigger('click');\n                }\n            });\n\n            return this;\n        },\n        handleModalBackdropEvent: function () {\n            this.getModal().on('click', {dialog: this}, function (event) {\n                $(event.target).hasClass('modal-backdrop') && event.data.dialog.isClosable() && event.data.dialog.canCloseByBackdrop() && event.data.dialog.close();\n            });\n\n            return this;\n        },\n        isModalEvent: function (event) {\n            return typeof event.namespace !== 'undefined' && event.namespace === 'bs.modal';\n        },\n        makeModalDraggable: function () {\n            if (this.options.draggable) {\n                this.getModalHeader().addClass(this.getNamespace('draggable')).on('mousedown', {dialog: this}, function (event) {\n                    var dialog = event.data.dialog;\n                    dialog.draggableData.isMouseDown = true;\n                    var dialogOffset = dialog.getModalDialog().offset();\n                    dialog.draggableData.mouseOffset = {\n                        top: event.clientY - dialogOffset.top,\n                        left: event.clientX - dialogOffset.left\n                    };\n                });\n                this.getModal().on('mouseup mouseleave', {dialog: this}, function (event) {\n                    event.data.dialog.draggableData.isMouseDown = false;\n                });\n                $('body').on('mousemove', {dialog: this}, function (event) {\n                    var dialog = event.data.dialog;\n                    if (!dialog.draggableData.isMouseDown) {\n                        return;\n                    }\n                    dialog.getModalDialog().offset({\n                        top: event.clientY - dialog.draggableData.mouseOffset.top,\n                        left: event.clientX - dialog.draggableData.mouseOffset.left\n                    });\n                });\n            }\n\n            return this;\n        },\n        realize: function () {\n            this.initModalStuff();\n            this.getModal().addClass(BootstrapDialog.NAMESPACE)\n            .addClass(this.getCssClass());\n            this.updateSize();\n            if (this.getDescription()) {\n                this.getModal().attr('aria-describedby', this.getDescription());\n            }\n            this.getModalFooter().append(this.createFooterContent());\n            this.getModalHeader().append(this.createHeaderContent());\n            this.getModalBody().append(this.createBodyContent());\n            this.getModal().data('bs.modal', new BootstrapDialogModal(this.getModal(), {\n                backdrop: 'static',\n                keyboard: false,\n                show: false\n            }));\n            this.makeModalDraggable();\n            this.handleModalEvents();\n            this.setRealized(true);\n            this.updateButtons();\n            this.updateType();\n            this.updateTitle();\n            this.updateMessage();\n            this.updateClosable();\n            this.updateAnimate();\n            this.updateSize();\n            this.updateTabindex();\n\n            return this;\n        },\n        open: function () {\n            !this.isRealized() && this.realize();\n            this.getModal().modal('show');\n\n            return this;\n        },\n        close: function () {\n            !this.isRealized() && this.realize();\n            this.getModal().modal('hide');\n\n            return this;\n        }\n    };\n\n    // Add compatible methods.\n    BootstrapDialog.prototype = $.extend(BootstrapDialog.prototype, BootstrapDialog.METHODS_TO_OVERRIDE[BootstrapDialogModal.getModalVersion()]);\n\n    /**\n     * RFC4122 version 4 compliant unique id creator.\n     *\n     * Added by https://github.com/tufanbarisyildirim/\n     *\n     *  @returns {String}\n     */\n    BootstrapDialog.newGuid = function () {\n        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n            var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\n            return v.toString(16);\n        });\n    };\n\n    /* ================================================\n     * For lazy people\n     * ================================================ */\n\n    /**\n     * Shortcut function: show\n     *\n     * @param {type} options\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.show = function (options) {\n        return new BootstrapDialog(options).open();\n    };\n\n    /**\n     * Alert window\n     *\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.alert = function () {\n        var alertOptions = {};\n        var defaultAlertOptions = {\n            type: BootstrapDialog.TYPE_PRIMARY,\n            title: null,\n            message: null,\n            closable: false,\n            draggable: false,\n            buttonLabel: BootstrapDialog.DEFAULT_TEXTS.OK,\n            buttonHotkey: null,\n            callback: null\n        };\n\n        if (typeof arguments[0] === 'object' && arguments[0].constructor === {}.constructor) {\n            alertOptions = $.extend(true, defaultAlertOptions, arguments[0]);\n        } else {\n            alertOptions = $.extend(true, defaultAlertOptions, {\n                message: arguments[0],\n                callback: typeof arguments[1] !== 'undefined' ? arguments[1] : null\n            });\n        }\n\n        var dialog = new BootstrapDialog(alertOptions);\n        dialog.setData('callback', alertOptions.callback);\n        dialog.addButton({\n            label: alertOptions.buttonLabel,\n            hotkey: alertOptions.buttonHotkey,\n            action: function (dialog) {\n                if (typeof dialog.getData('callback') === 'function' && dialog.getData('callback').call(this, true) === false) {\n                    return false;\n                }\n                dialog.setData('btnClicked', true);\n\n                return dialog.close();\n            }\n        });\n        if (typeof dialog.options.onhide === 'function') {\n            dialog.onHide(function (dialog) {\n                var hideIt = true;\n                if (!dialog.getData('btnClicked') && dialog.isClosable() && typeof dialog.getData('callback') === 'function') {\n                    hideIt = dialog.getData('callback')(false);\n                }\n                if (hideIt === false) {\n                    return false;\n                }\n                hideIt = this.onhide(dialog);\n\n                return hideIt;\n            }.bind({\n                onhide: dialog.options.onhide\n            }));\n        } else {\n            dialog.onHide(function (dialog) {\n                var hideIt = true;\n                if (!dialog.getData('btnClicked') && dialog.isClosable() && typeof dialog.getData('callback') === 'function') {\n                    hideIt = dialog.getData('callback')(false);\n                }\n\n                return hideIt;\n            });\n        }\n\n        return dialog.open();\n    };\n\n    /**\n     * Confirm window\n     *\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.confirm = function () {\n        var confirmOptions = {};\n        var defaultConfirmOptions = {\n            type: BootstrapDialog.TYPE_PRIMARY,\n            title: null,\n            message: null,\n            closable: false,\n            draggable: false,\n            btnCancelLabel: BootstrapDialog.DEFAULT_TEXTS.CANCEL,\n            btnCancelClass: null,\n            btnCancelHotkey: null,\n            btnOKLabel: BootstrapDialog.DEFAULT_TEXTS.OK,\n            btnOKClass: null,\n            btnOKHotkey: null,\n            btnsOrder: BootstrapDialog.defaultOptions.btnsOrder,\n            callback: null\n        };\n        if (typeof arguments[0] === 'object' && arguments[0].constructor === {}.constructor) {\n            confirmOptions = $.extend(true, defaultConfirmOptions, arguments[0]);\n        } else {\n            confirmOptions = $.extend(true, defaultConfirmOptions, {\n                message: arguments[0],\n                callback: typeof arguments[1] !== 'undefined' ? arguments[1] : null\n            });\n        }\n        if (confirmOptions.btnOKClass === null) {\n            confirmOptions.btnOKClass = ['btn', confirmOptions.type.split('-')[1]].join('-');\n        }\n\n        var dialog = new BootstrapDialog(confirmOptions);\n        dialog.setData('callback', confirmOptions.callback);\n\n        var buttons = [{\n                label: confirmOptions.btnCancelLabel,\n                cssClass: confirmOptions.btnCancelClass,\n                hotkey: confirmOptions.btnCancelHotkey,\n                action: function (dialog) {\n                    if (typeof dialog.getData('callback') === 'function' && dialog.getData('callback').call(this, false) === false) {\n                        return false;\n                    }\n\n                    return dialog.close();\n                }\n            }, {\n                label: confirmOptions.btnOKLabel,\n                cssClass: confirmOptions.btnOKClass,\n                hotkey: confirmOptions.btnOKHotkey,\n                action: function (dialog) {\n                    if (typeof dialog.getData('callback') === 'function' && dialog.getData('callback').call(this, true) === false) {\n                        return false;\n                    }\n\n                    return dialog.close();\n                }\n            }];\n        if (confirmOptions.btnsOrder === BootstrapDialog.BUTTONS_ORDER_OK_CANCEL) {\n            buttons.reverse();\n        }\n        dialog.addButtons(buttons);\n\n        return dialog.open();\n\n    };\n\n    /**\n     * Warning window\n     *\n     * @param {type} message\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.warning = function (message, callback) {\n        return new BootstrapDialog({\n            type: BootstrapDialog.TYPE_WARNING,\n            message: message\n        }).open();\n    };\n\n    /**\n     * Danger window\n     *\n     * @param {type} message\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.danger = function (message, callback) {\n        return new BootstrapDialog({\n            type: BootstrapDialog.TYPE_DANGER,\n            message: message\n        }).open();\n    };\n\n    /**\n     * Success window\n     *\n     * @param {type} message\n     * @returns the created dialog instance\n     */\n    BootstrapDialog.success = function (message, callback) {\n        return new BootstrapDialog({\n            type: BootstrapDialog.TYPE_SUCCESS,\n            message: message\n        }).open();\n    };\n\n    return BootstrapDialog;\n\n}));\n"],"names":["root","factory","module","exports","$","this","Modal","fn","modal","Constructor","BootstrapDialogModal","element","options","call","getModalVersion","VERSION","test","ORIGINAL_BODY_PADDING","parseInt","css","METHODS_TO_OVERRIDE","hide","e","preventDefault","Event","$element","trigger","isShown","isDefaultPrevented","getGlobalOpenedDialogs","length","$body","removeClass","resetScrollbar","escape","document","off","attr","support","transition","hasClass","one","proxy","hideModal","emulateTransitionEnd","setScrollbar","bodyPad","bodyIsOverflowing","scrollbarWidth","backdrop","resetAdjustments","extend","prototype","constructor","openedDialogs","each","BootstrapDialog","dialogs","id","dialogInstance","isRealized","isOpened","push","defaultOptions","newGuid","buttons","data","onshow","onshown","onhide","onhidden","indexedButtons","registeredButtonHotkeys","draggableData","isMouseDown","mouseOffset","realized","opened","initOptions","holdThisInstance","NAMESPACE","TYPE_DEFAULT","TYPE_INFO","TYPE_PRIMARY","TYPE_SUCCESS","TYPE_WARNING","TYPE_DANGER","DEFAULT_TEXTS","SIZE_NORMAL","SIZE_SMALL","SIZE_WIDE","SIZE_LARGE","BUTTON_SIZES","ICON_SPINNER","BUTTONS_ORDER_CANCEL_OK","BUTTONS_ORDER_OK_CANCEL","type","size","cssClass","title","message","nl2br","closable","closeByBackdrop","closeByKeyboard","closeIcon","spinicon","autodestroy","draggable","animate","description","tabindex","btnsOrder","configDefaultOptions","openAll","open","closeAll","close","getDialog","dialog","setDialog","getId","addDialog","moveFocus","lastDialogInstance","getModal","focus","handleModalBackdropEvent","on","event","target","isClosable","canCloseByBackdrop","updateZIndex","dialogCount","dialogId","$modal","$backdrop","realize","initModalStuff","setModal","createModal","setModalDialog","createModalDialog","setModalContent","createModalContent","setModalHeader","createModalHeader","setModalBody","createModalBody","setModalFooter","createModalFooter","append","getModalDialog","getModalContent","getModalHeader","getModalBody","getModalFooter","prop","$modalDialog","$modalContent","$modalHeader","$modalBody","$modalFooter","createDynamicContent","rawContent","content","formatStringContent","replace","setData","key","value","getData","setId","getType","setType","updateType","types","join","addClass","getSize","setSize","updateSize","index","button","$button","getButton","buttonSizes","sizeClassSpecified","btnClasses","split","btnClass","inArray","getButtonSize","getCssClass","setCssClass","getTitle","setTitle","updateTitle","getDefaultText","find","getNamespace","html","getMessage","setMessage","updateMessage","setClosable","updateClosable","setCloseByBackdrop","setCloseByKeyboard","canCloseByKeyboard","isAnimate","setAnimate","updateAnimate","toggleClass","getSpinicon","setSpinicon","addButton","addButtons","that","getButtons","setButtons","updateButtons","show","createFooterButtons","isAutodestroy","setAutodestroy","getDescription","setDescription","setTabindex","getTabindex","updateTabindex","name","createHeaderContent","$container","createTitleContent","prepend","createCloseButton","$title","$icon","createBodyContent","createMessageContent","$message","createFooterContent","createButton","icon","trim","createButtonIcon","label","hotkey","autospin","toggleSpin","action","enhanceButton","enabled","toggleEnable","enable","$this","disable","spin","remove","stopSpin","enableButtons","toggle","onShow","onShown","onHide","onHidden","setRealized","setOpened","handleModalEvents","isModalEvent","openIt","hideIt","which","namespace","makeModalDraggable","dialogOffset","offset","top","clientY","left","clientX","keyboard","c","r","Math","random","toString","alert","alertOptions","defaultAlertOptions","buttonLabel","OK","buttonHotkey","callback","arguments","bind","confirm","confirmOptions","defaultConfirmOptions","btnCancelLabel","CANCEL","btnCancelClass","btnCancelHotkey","btnOKLabel","btnOKClass","btnOKHotkey","reverse","warning","danger","success"],"sourceRoot":""}