/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../../../Common/assets/admin/Factory.ts":
/*!***********************************************!*\
  !*** ../../../Common/assets/admin/Factory.ts ***!
  \***********************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./components/Factory */ "../../../Common/assets/admin/components/Factory.ts"), __webpack_require__(/*! ./bus/Factory */ "../../../Common/assets/admin/bus/Factory.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Factory_1, Factory_2) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.componentsFactoryInstance = null;
            this.busFactory = null;
        }
        Factory.prototype.getComponentsFactory = function () {
            if (this.componentsFactoryInstance === null) {
                this.componentsFactoryInstance = new Factory_1.Factory();
                this.componentsFactoryInstance.setAdminPanelFactory(this);
            }
            return this.componentsFactoryInstance;
        };
        Factory.prototype.getBusFactory = function () {
            if (this.busFactory === null) {
                this.busFactory = new Factory_2.Factory();
                this.busFactory.setAdminPanelFactory(this);
            }
            return this.busFactory;
        };
        Factory.prototype.initAdminPanel = function () {
            this.getComponentsFactory().initAdminPanel();
            if (document.querySelector('body').clientWidth < 550) {
                this.getBusFactory().getAdminPanelBus().collapseSidebar();
            }
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/Helpers.ts":
/*!***********************************************!*\
  !*** ../../../Common/assets/admin/Helpers.ts ***!
  \***********************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Helpers = void 0;
    var Helpers = /** @class */ (function () {
        function Helpers() {
        }
        Helpers.objectReplaceRecursive = function (firstObj, twoObj) {
            for (var field in twoObj) {
                if (firstObj[field] && typeof firstObj[field] == 'object' && firstObj[field].constructor.name == 'Object') {
                    this.objectReplaceRecursive(firstObj[field], twoObj[field]);
                }
                if (!firstObj[field] || typeof firstObj[field] != 'object' || firstObj[field].constructor.name != 'Object') {
                    firstObj[field] = twoObj[field];
                }
            }
        };
        return Helpers;
    }());
    exports.Helpers = Helpers;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/bus/AdminPanelBus.ts":
/*!*********************************************************!*\
  !*** ../../../Common/assets/admin/bus/AdminPanelBus.ts ***!
  \*********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../types/EEvents */ "../../../Common/assets/admin/types/EEvents.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, EEvents_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.AdminPanelBus = void 0;
    var AdminPanelBus = /** @class */ (function () {
        function AdminPanelBus() {
            this.eventsListeners = {};
        }
        AdminPanelBus.prototype.addEventsListener = function (event, callback) {
            if (!this.eventsListeners[event]) {
                this.eventsListeners[event] = [];
            }
            this.eventsListeners[event].push(callback);
        };
        AdminPanelBus.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        AdminPanelBus.prototype.toggleSidebar = function () {
            var isCollapsed = this.componentsFactory.getAdminPanel().toggleSidebar();
            for (var i in this.eventsListeners[EEvents_1.EEvents.onSidebarToggle] || []) {
                this.eventsListeners[EEvents_1.EEvents.onSidebarToggle][i](isCollapsed);
            }
        };
        AdminPanelBus.prototype.collapseSidebar = function () {
            this.componentsFactory.getAdminPanel().collapseSidebar();
        };
        AdminPanelBus.prototype.execMessageModal = function (header, message) {
            var modal = this.componentsFactory.getMessageModal();
            modal.show(header, message);
        };
        AdminPanelBus.prototype.execConfirmModal = function (header, message) {
            var modal = this.componentsFactory.getConfirmModal();
            return modal.show(header, message);
        };
        AdminPanelBus.prototype.fullscreen = function (box) {
            this.componentsFactory.getAdminPanel().getFullScreenContainer().style.height = '100vh';
            box.element.style.height = '100vh';
            this.componentsFactory.getAdminPanel().getFullScreenContainer().append(box.element);
            for (var i in this.eventsListeners[EEvents_1.EEvents.onBoxFullScreen] || []) {
                this.eventsListeners[EEvents_1.EEvents.onBoxFullScreen][i](box);
            }
        };
        AdminPanelBus.prototype.collapsescreen = function (box) {
            box.element.removeAttribute('style');
            this.componentsFactory.getAdminPanel().getFullScreenContainer().removeAttribute('style');
            for (var i in this.eventsListeners[EEvents_1.EEvents.onBoxCollapsedScreen] || []) {
                this.eventsListeners[EEvents_1.EEvents.onBoxCollapsedScreen][i](box);
            }
        };
        return AdminPanelBus;
    }());
    exports.AdminPanelBus = AdminPanelBus;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/bus/Factory.ts":
/*!***************************************************!*\
  !*** ../../../Common/assets/admin/bus/Factory.ts ***!
  \***************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./AdminPanelBus */ "../../../Common/assets/admin/bus/AdminPanelBus.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, AdminPanelBus_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.adminPanelBus = null;
        }
        Factory.prototype.setAdminPanelFactory = function (factory) {
            this.adminPanelFactory = factory;
        };
        Factory.prototype.getAdminPanelBus = function () {
            if (this.adminPanelBus === null) {
                this.adminPanelBus = new AdminPanelBus_1.AdminPanelBus();
                var componentsFactory = this.adminPanelFactory.getComponentsFactory();
                this.adminPanelBus.setComponentsFactory(componentsFactory);
            }
            return this.adminPanelBus;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/AdminPanel.ts":
/*!*************************************************************!*\
  !*** ../../../Common/assets/admin/components/AdminPanel.ts ***!
  \*************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.AdminPanel = void 0;
    var AdminPanel = /** @class */ (function () {
        function AdminPanel() {
            this.isSidebarClosed = false;
        }
        AdminPanel.prototype.setSidebar = function (sidebar) {
            this._sidebar = sidebar;
        };
        AdminPanel.prototype.setHeader = function (header) {
            this._header = header;
        };
        AdminPanel.prototype.setContent = function (content) {
            this._content = content;
        };
        AdminPanel.prototype.init = function (container) {
            this.container = container;
            this.fullscreenContainer = this.container.querySelector('.js-fullscreen-container');
            var headerElement = document.querySelector('.js-main-header');
            this._header.init(headerElement);
            var sidebarElement = document.querySelector('.js-main-sidebar');
            this._sidebar.init(sidebarElement);
            var contentElement = document.querySelector('.js-content');
            this._content.init(contentElement);
        };
        Object.defineProperty(AdminPanel.prototype, "header", {
            get: function () {
                return this._header;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AdminPanel.prototype, "sidebar", {
            get: function () {
                return this._sidebar;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AdminPanel.prototype, "content", {
            get: function () {
                return this._content;
            },
            enumerable: false,
            configurable: true
        });
        AdminPanel.prototype.toggleSidebar = function () {
            if (this.isSidebarClosed) {
                this.container.classList.remove('closed-sidebar');
                this.container.classList.add('openned-sidebar');
            }
            else {
                this.container.classList.add('closed-sidebar');
                this.container.classList.remove('openned-sidebar');
            }
            this.isSidebarClosed = !this.isSidebarClosed;
            return this.isSidebarClosed;
        };
        AdminPanel.prototype.collapseSidebar = function () {
            this.isSidebarClosed = true;
            this.container.classList.add('closed-sidebar');
            this.container.classList.remove('openned-sidebar');
        };
        AdminPanel.prototype.getFullScreenContainer = function () {
            return this.fullscreenContainer;
        };
        return AdminPanel;
    }());
    exports.AdminPanel = AdminPanel;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/Box.ts":
/*!******************************************************!*\
  !*** ../../../Common/assets/admin/components/Box.ts ***!
  \******************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Box = void 0;
    var Box = /** @class */ (function () {
        function Box() {
            this.isCollapsed = false;
            this.isFullscreen = false;
        }
        Object.defineProperty(Box.prototype, "element", {
            get: function () {
                return this.container;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(Box.prototype, "width", {
            get: function () {
                return this.container.clientWidth;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(Box.prototype, "height", {
            get: function () {
                return this.container.clientHeight;
            },
            enumerable: false,
            configurable: true
        });
        Box.prototype.setAdminPanelBus = function (bus) {
            this.adminPanelBus = bus;
        };
        Box.prototype.init = function (container) {
            this.container = container;
            this.parent = this.container.parentElement;
            this.title = this.container.querySelector('.js-box-title');
            this.collapseButton = this.container.querySelector('.js-collapse-button');
            this.fullScreenButton = this.container.querySelector('.js-fullscreen-button');
            this.removeButton = this.container.querySelector('.js-remove-button');
            this.body = this.container.querySelector('.js-box-body');
            var collapse = this.container.getAttribute('collapse');
            if (collapse == 'true') {
                this.isCollapsed = true;
            }
            this.eventListen();
        };
        Box.prototype.eventListen = function () {
            if (this.removeButton) {
                this.removeButton.onclick = this.onRemoveButtonClick.bind(this);
            }
            if (this.collapseButton) {
                this.collapseButton.onclick = this.onCollapseButtonClick.bind(this);
            }
            if (this.fullScreenButton) {
                this.fullScreenButton.onclick = this.onFullscreenClick.bind(this);
            }
        };
        Box.prototype.onRemoveButtonClick = function (event) {
            this.container.remove();
        };
        Box.prototype.onCollapseButtonClick = function (event) {
            var icon = this.collapseButton.querySelector('i');
            if (this.isCollapsed) {
                this.isCollapsed = false;
                this.slideDown(this.body, 500);
                icon.classList.remove('fa-plus');
                icon.classList.add('fa-minus');
            }
            else {
                this.isCollapsed = true;
                this.slideUp(this.body, 500);
                icon.classList.remove('fa-minus');
                icon.classList.add('fa-plus');
            }
        };
        Box.prototype.slideUp = function (element, duration) {
            element.style.transitionProperty = 'height, margin, padding';
            element.style.transitionDuration = duration + 'ms';
            element.style.boxSizing = 'border-box';
            element.style.height = element.offsetHeight + 'px'; // сохраняем текущую высоту элемента
            element.offsetHeight; // принудительная перерисовка
            element.style.overflow = 'hidden';
            element.style.height = '0'; // устанавливаем высоту 0 для анимации скрытия
            element.style.paddingTop = '0'; // также можно устанавливать padding и margin равные 0
            element.style.paddingBottom = '0';
            element.style.marginTop = '0';
            element.style.marginBottom = '0';
            setTimeout(function () {
                element.style.display = 'none';
            }, duration); // после завершения анимации скрываем элемент
        };
        Box.prototype.slideDown = function (element, duration) {
            element.style.removeProperty('display'); // убираем display: none, чтобы элемент стал видимым
            element.style.transitionProperty = 'height, margin, padding';
            element.style.transitionDuration = duration + 'ms';
            element.style.boxSizing = 'border-box';
            element.style.display = 'block'; // убеждаемся, что элемент видим
            element.style.overflow = 'hidden';
            element.style.height = '0'; // устанавливаем высоту 0 для анимации появления
            element.style.paddingTop = '0'; // также можно устанавливать padding и margin равные 0
            element.style.paddingBottom = '0';
            element.style.marginTop = '0';
            element.style.marginBottom = '0';
            element.offsetHeight; // принудительная перерисовка
            element.style.height = element.scrollHeight + 'px'; // устанавливаем полную высоту элемента
        };
        Box.prototype.onFullscreenClick = function (event) {
            var icon = this.fullScreenButton.querySelector('i');
            if (this.isFullscreen) {
                icon.classList.remove('fa-compress');
                icon.classList.add('fa-arrows-alt');
                this.parent.append(this.container);
                this.adminPanelBus.collapsescreen(this);
                this.eventListen();
            }
            else {
                icon.classList.remove('fa-arrows-alt');
                icon.classList.add('fa-compress');
                this.adminPanelBus.fullscreen(this);
                this.eventListen();
            }
            this.isFullscreen = !this.isFullscreen;
        };
        Box.prototype.setTitle = function (title) {
            this.title.innerText = title;
        };
        return Box;
    }());
    exports.Box = Box;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/ConfirmModal.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/admin/components/ConfirmModal.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ConfirmModal = void 0;
    var ConfirmModal = /** @class */ (function () {
        function ConfirmModal() {
            this.html = "\n        <div class=\"modal fade bd-example-modal-sm\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"mySmallModalLabel\" aria-hidden=\"true\">\n            <div class=\"modal-dialog modal-sm\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header\">\n                        <h5 class=\"modal-title js-title\" id=\"exampleModalLabel\">New message</h5>\n                        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                            <span aria-hidden=\"true\">&times;</span>\n                        </button>\n                    </div>\n                    <div class=\"modal-body js-body\">\n\n                    </div>\n                    <div class=\"modal-footer\">\n                        <button type=\"button\" class=\"btn btn-primary js-yes-button\">\u0414\u0430</button>\n                        <button type=\"button\" class=\"btn btn-primary js-no-button\">\u041D\u0435\u0442</button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.title = this._template.querySelector('.js-title');
            this.body = this._template.querySelector('.js-body');
            this.yesButton = this._template.querySelector('.js-yes-button');
            this.noButton = this._template.querySelector('.js-no-button');
        }
        Object.defineProperty(ConfirmModal.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        ConfirmModal.prototype.eventListen = function () {
            var _this = this;
            this.yesButton.onclick = function () {
                _this._template.classList.remove('show');
                _this._template.style.display = 'none';
                _this.resolve();
            };
            this.noButton.onclick = function () {
                _this._template.classList.remove('show');
                _this._template.style.display = 'none';
                _this.reject();
            };
        };
        ConfirmModal.prototype.show = function (header, message) {
            var _this = this;
            this._template.classList.add('show');
            this._template.style.display = 'block';
            this.title.innerText = header;
            this.body.innerText = message;
            return new Promise(function (resolve, reject) {
                _this.reject = reject;
                _this.resolve = resolve;
            });
        };
        return ConfirmModal;
    }());
    exports.ConfirmModal = ConfirmModal;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/Content.ts":
/*!**********************************************************!*\
  !*** ../../../Common/assets/admin/components/Content.ts ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Content = void 0;
    var Content = /** @class */ (function () {
        function Content() {
        }
        Content.prototype.setBoxCreator = function (callback) {
            this.boxCreator = callback;
        };
        Content.prototype.init = function (container) {
            var _this = this;
            this.container = container;
            this.boxes = [];
            var boxElements = this.container.querySelectorAll('.js-box');
            boxElements.forEach(function (el, i) {
                var boxComponent = _this.boxCreator();
                boxComponent.init(el);
                _this.boxes.push(boxComponent);
            });
        };
        return Content;
    }());
    exports.Content = Content;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/Factory.ts":
/*!**********************************************************!*\
  !*** ../../../Common/assets/admin/components/Factory.ts ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./AdminPanel */ "../../../Common/assets/admin/components/AdminPanel.ts"), __webpack_require__(/*! ./Sidebar */ "../../../Common/assets/admin/components/Sidebar.ts"), __webpack_require__(/*! ./SidebarMenu */ "../../../Common/assets/admin/components/SidebarMenu.ts"), __webpack_require__(/*! ./SidebarMenuItem */ "../../../Common/assets/admin/components/SidebarMenuItem.ts"), __webpack_require__(/*! ./Header */ "../../../Common/assets/admin/components/Header.ts"), __webpack_require__(/*! ./Box */ "../../../Common/assets/admin/components/Box.ts"), __webpack_require__(/*! ../components/Content */ "../../../Common/assets/admin/components/Content.ts"), __webpack_require__(/*! ../components/ConfirmModal */ "../../../Common/assets/admin/components/ConfirmModal.ts"), __webpack_require__(/*! ../components/MessageModal */ "../../../Common/assets/admin/components/MessageModal.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, AdminPanel_1, Sidebar_1, SidebarMenu_1, SidebarMenuItem_1, Header_1, Box_1, Content_1, ConfirmModal_1, MessageModal_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.adminPanel = null;
            this.confirmModal = null;
            this.messageModal = null;
        }
        Factory.prototype.setAdminPanelFactory = function (factory) {
            this.adminPanelFactory = factory;
        };
        Factory.prototype.getAdminPanel = function () {
            return this.adminPanel;
        };
        Factory.prototype.initAdminPanel = function () {
            var element = document.querySelector('.js-wrapper');
            this.adminPanel = new AdminPanel_1.AdminPanel();
            var sidebar = this.createSidebar();
            this.adminPanel.setSidebar(sidebar);
            var header = this.createHeader();
            this.adminPanel.setHeader(header);
            var content = this.createContent();
            this.adminPanel.setContent(content);
            this.adminPanel.init(element);
        };
        Factory.prototype.createSidebar = function () {
            var sidebar = new Sidebar_1.Sidebar();
            var menu = this.createSidebarMenu();
            sidebar.setMenu(menu);
            return sidebar;
        };
        Factory.prototype.createSidebarMenu = function () {
            var _this = this;
            var menu = new SidebarMenu_1.SidebarMenu();
            menu.setItemCreator(function () {
                return _this.createSidebarMenuItem();
            });
            return menu;
        };
        Factory.prototype.createSidebarMenuItem = function () {
            return new SidebarMenuItem_1.SidebarMenuItem();
        };
        Factory.prototype.createHeader = function () {
            var headerComponent = new Header_1.Header();
            var adminPanelBus = this.adminPanelFactory.getBusFactory().getAdminPanelBus();
            headerComponent.setAdminPanelBus(adminPanelBus);
            return headerComponent;
        };
        Factory.prototype.createBox = function () {
            var boxComponent = new Box_1.Box();
            var adminPanelBus = this.adminPanelFactory.getBusFactory().getAdminPanelBus();
            boxComponent.setAdminPanelBus(adminPanelBus);
            return boxComponent;
        };
        Factory.prototype.createContent = function () {
            var _this = this;
            var contentComponent = new Content_1.Content();
            contentComponent.setBoxCreator(function () {
                return _this.createBox();
            });
            return contentComponent;
        };
        Factory.prototype.getConfirmModal = function () {
            if (this.confirmModal === null) {
                this.confirmModal = new ConfirmModal_1.ConfirmModal();
                document.querySelector('body').append(this.confirmModal.template);
                this.confirmModal.eventListen();
            }
            return this.confirmModal;
        };
        Factory.prototype.getMessageModal = function () {
            if (this.messageModal === null) {
                this.messageModal = new MessageModal_1.MessageModal();
                document.querySelector('body').append(this.messageModal.template);
                this.messageModal.eventListen();
            }
            return this.messageModal;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/Header.ts":
/*!*********************************************************!*\
  !*** ../../../Common/assets/admin/components/Header.ts ***!
  \*********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Header = void 0;
    var Header = /** @class */ (function () {
        function Header() {
        }
        Header.prototype.init = function (container) {
            this.container = container;
            this.sidebarToggleButton = this.container.querySelector('.js-sidebar-toggle-button');
            this.eventListen();
        };
        Header.prototype.setAdminPanelBus = function (bus) {
            this.adminPanelBus = bus;
        };
        Header.prototype.eventListen = function () {
            this.sidebarToggleButton.onclick = this.onToggleButtonClick.bind(this);
        };
        Header.prototype.onToggleButtonClick = function (event) {
            event.preventDefault();
            this.adminPanelBus.toggleSidebar();
        };
        return Header;
    }());
    exports.Header = Header;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/MessageModal.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/admin/components/MessageModal.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.MessageModal = void 0;
    var MessageModal = /** @class */ (function () {
        function MessageModal() {
            this.html = "\n        <div class=\"modal fade bd-example-modal-sm\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"mySmallModalLabel\" aria-hidden=\"true\">\n            <div class=\"modal-dialog modal-sm\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header\">\n                        <h5 class=\"modal-title js-title\" id=\"exampleModalLabel\">New message</h5>\n                        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                            <span aria-hidden=\"true\">&times;</span>\n                        </button>\n                    </div>\n                    <div class=\"modal-body js-body\">\n\n                    </div>\n                    <div class=\"modal-footer\">\n                        <button type=\"button\" class=\"btn btn-primary js-ok-button\">OK</button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.title = this._template.querySelector('.js-title');
            this.body = this._template.querySelector('.js-body');
            this.okButton = this._template.querySelector('.js-ok-button');
        }
        Object.defineProperty(MessageModal.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        MessageModal.prototype.eventListen = function () {
            var _this = this;
            this.okButton.onclick = function () {
                _this._template.classList.remove('show');
                _this._template.style.display = 'none';
            };
        };
        MessageModal.prototype.show = function (header, message) {
            this._template.classList.add('show');
            this._template.style.display = 'block';
            this.title.innerText = header;
            this.body.innerText = message;
        };
        return MessageModal;
    }());
    exports.MessageModal = MessageModal;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/Sidebar.ts":
/*!**********************************************************!*\
  !*** ../../../Common/assets/admin/components/Sidebar.ts ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Sidebar = void 0;
    var Sidebar = /** @class */ (function () {
        function Sidebar() {
        }
        Sidebar.prototype.setMenu = function (menu) {
            this.menu = menu;
        };
        Sidebar.prototype.init = function (container) {
            this.container = container;
            var menuElement = this.container.querySelector('.js-sidebar-menu');
            this.menu.init(menuElement);
        };
        return Sidebar;
    }());
    exports.Sidebar = Sidebar;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/SidebarMenu.ts":
/*!**************************************************************!*\
  !*** ../../../Common/assets/admin/components/SidebarMenu.ts ***!
  \**************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.SidebarMenu = void 0;
    var SidebarMenu = /** @class */ (function () {
        function SidebarMenu() {
        }
        SidebarMenu.prototype.setItemCreator = function (callback) {
            this.itemCreator = callback;
        };
        SidebarMenu.prototype.init = function (container) {
            var _this = this;
            this.container = container;
            var items = this.container.querySelectorAll('.js-sidebar-menu-item-container');
            this.items = [];
            items.forEach(function (el, i) {
                var menuItem = _this.itemCreator();
                menuItem.init(el);
                _this.items.push(menuItem);
            });
        };
        return SidebarMenu;
    }());
    exports.SidebarMenu = SidebarMenu;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/components/SidebarMenuItem.ts":
/*!******************************************************************!*\
  !*** ../../../Common/assets/admin/components/SidebarMenuItem.ts ***!
  \******************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.SidebarMenuItem = void 0;
    var SidebarMenuItem = /** @class */ (function () {
        function SidebarMenuItem() {
            this.isSubItemsCollapsed = true;
        }
        SidebarMenuItem.prototype.init = function (container) {
            this.container = container;
            this.subItems = this.container.querySelector('.js-sub-items');
            this.subItemsToggleButton = this.container.querySelector('.js-sub-items-toggle-button');
            this.itemName = this.container.querySelector('.js-item-name');
            this.itemButton = this.container.querySelector('.js-sidebar-menu-item-button');
            this.eventListen();
        };
        SidebarMenuItem.prototype.eventListen = function () {
            if (this.itemButton) {
                this.itemButton.onclick = this.onClick.bind(this);
            }
        };
        SidebarMenuItem.prototype.onClick = function (event) {
            this.subItemsToggle();
        };
        SidebarMenuItem.prototype.subItemsToggle = function () {
            if (this.isSubItemsCollapsed) {
                this.showSubItems();
            }
            else {
                this.hideSubItems();
            }
        };
        SidebarMenuItem.prototype.hideSubItems = function () {
            this.isSubItemsCollapsed = true;
            this.container.classList.remove('menu-open');
        };
        SidebarMenuItem.prototype.showSubItems = function () {
            this.isSubItemsCollapsed = false;
            this.container.classList.add('menu-open');
        };
        return SidebarMenuItem;
    }());
    exports.SidebarMenuItem = SidebarMenuItem;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/admin/types/EEvents.ts":
/*!*****************************************************!*\
  !*** ../../../Common/assets/admin/types/EEvents.ts ***!
  \*****************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.EEvents = void 0;
    var EEvents;
    (function (EEvents) {
        EEvents[EEvents["onSidebarToggle"] = 10] = "onSidebarToggle";
        EEvents[EEvents["onBoxFullScreen"] = 20] = "onBoxFullScreen";
        EEvents[EEvents["onBoxCollapsedScreen"] = 30] = "onBoxCollapsedScreen";
    })(EEvents || (exports.EEvents = EEvents = {}));
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/node_modules/axios/dist/browser/axios.cjs":
/*!************************************************************************!*\
  !*** ../../../Common/assets/node_modules/axios/dist/browser/axios.cjs ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// Axios v1.6.7 Copyright (c) 2024 Matt Zabriskie and contributors


function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// utils is a library of generic helper functions non-specific to axios

const {toString} = Object.prototype;
const {getPrototypeOf} = Object;

const kindOf = (cache => thing => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(Object.create(null));

const kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type
};

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is an Array
 *
 * @param {Object} val The value to test
 *
 * @returns {boolean} True if value is an Array, otherwise false
 */
const {isArray} = Array;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

/**
 * Determine if a value is a Buffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Buffer, otherwise false
 */
function isBuffer(val) {
  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}

/**
 * Determine if a value is an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
 */
const isArrayBuffer = kindOfTest('ArrayBuffer');


/**
 * Determine if a value is a view on an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
 */
function isArrayBufferView(val) {
  let result;
  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
    result = ArrayBuffer.isView(val);
  } else {
    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
  }
  return result;
}

/**
 * Determine if a value is a String
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a String, otherwise false
 */
const isString = typeOfTest('string');

/**
 * Determine if a value is a Function
 *
 * @param {*} val The value to test
 * @returns {boolean} True if value is a Function, otherwise false
 */
const isFunction = typeOfTest('function');

/**
 * Determine if a value is a Number
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Number, otherwise false
 */
const isNumber = typeOfTest('number');

/**
 * Determine if a value is an Object
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an Object, otherwise false
 */
const isObject = (thing) => thing !== null && typeof thing === 'object';

/**
 * Determine if a value is a Boolean
 *
 * @param {*} thing The value to test
 * @returns {boolean} True if value is a Boolean, otherwise false
 */
const isBoolean = thing => thing === true || thing === false;

/**
 * Determine if a value is a plain Object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a plain Object, otherwise false
 */
const isPlainObject = (val) => {
  if (kindOf(val) !== 'object') {
    return false;
  }

  const prototype = getPrototypeOf(val);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
};

/**
 * Determine if a value is a Date
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Date, otherwise false
 */
const isDate = kindOfTest('Date');

/**
 * Determine if a value is a File
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFile = kindOfTest('File');

/**
 * Determine if a value is a Blob
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Blob, otherwise false
 */
const isBlob = kindOfTest('Blob');

/**
 * Determine if a value is a FileList
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFileList = kindOfTest('FileList');

/**
 * Determine if a value is a Stream
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Stream, otherwise false
 */
const isStream = (val) => isObject(val) && isFunction(val.pipe);

/**
 * Determine if a value is a FormData
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an FormData, otherwise false
 */
const isFormData = (thing) => {
  let kind;
  return thing && (
    (typeof FormData === 'function' && thing instanceof FormData) || (
      isFunction(thing.append) && (
        (kind = kindOf(thing)) === 'formdata' ||
        // detect form-data instance
        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
      )
    )
  )
};

/**
 * Determine if a value is a URLSearchParams object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
 */
const isURLSearchParams = kindOfTest('URLSearchParams');

/**
 * Trim excess whitespace off the beginning and end of a string
 *
 * @param {String} str The String to trim
 *
 * @returns {String} The String freed of excess whitespace
 */
const trim = (str) => str.trim ?
  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');

/**
 * Iterate over an Array or an Object invoking a function for each item.
 *
 * If `obj` is an Array callback will be called passing
 * the value, index, and complete array for each item.
 *
 * If 'obj' is an Object callback will be called passing
 * the value, key, and complete object for each property.
 *
 * @param {Object|Array} obj The object to iterate
 * @param {Function} fn The callback to invoke for each item
 *
 * @param {Boolean} [allOwnKeys = false]
 * @returns {any}
 */
function forEach(obj, fn, {allOwnKeys = false} = {}) {
  // Don't bother if no value provided
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  let i;
  let l;

  // Force an array if not already something iterable
  if (typeof obj !== 'object') {
    /*eslint no-param-reassign:0*/
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    for (i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;

    for (i = 0; i < len; i++) {
      key = keys[i];
      fn.call(null, obj[key], key, obj);
    }
  }
}

function findKey(obj, key) {
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i = keys.length;
  let _key;
  while (i-- > 0) {
    _key = keys[i];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}

const _global = (() => {
  /*eslint no-undef:0*/
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : __webpack_require__.g)
})();

const isContextDefined = (context) => !isUndefined(context) && context !== _global;

/**
 * Accepts varargs expecting each argument to be an object, then
 * immutably merges the properties of each object and returns result.
 *
 * When multiple objects contain the same key the later object in
 * the arguments list will take precedence.
 *
 * Example:
 *
 * ```js
 * var result = merge({foo: 123}, {foo: 456});
 * console.log(result.foo); // outputs 456
 * ```
 *
 * @param {Object} obj1 Object to merge
 *
 * @returns {Object} Result of all merge properties
 */
function merge(/* obj1, obj2, obj3, ... */) {
  const {caseless} = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray(val)) {
      result[targetKey] = val.slice();
    } else {
      result[targetKey] = val;
    }
  };

  for (let i = 0, l = arguments.length; i < l; i++) {
    arguments[i] && forEach(arguments[i], assignValue);
  }
  return result;
}

/**
 * Extends object a by mutably adding to it the properties of object b.
 *
 * @param {Object} a The object to be extended
 * @param {Object} b The object to copy properties from
 * @param {Object} thisArg The object to bind function to
 *
 * @param {Boolean} [allOwnKeys]
 * @returns {Object} The resulting value of object a
 */
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
  forEach(b, (val, key) => {
    if (thisArg && isFunction(val)) {
      a[key] = bind(val, thisArg);
    } else {
      a[key] = val;
    }
  }, {allOwnKeys});
  return a;
};

/**
 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
 *
 * @param {string} content with BOM
 *
 * @returns {string} content value without BOM
 */
const stripBOM = (content) => {
  if (content.charCodeAt(0) === 0xFEFF) {
    content = content.slice(1);
  }
  return content;
};

/**
 * Inherit the prototype methods from one constructor into another
 * @param {function} constructor
 * @param {function} superConstructor
 * @param {object} [props]
 * @param {object} [descriptors]
 *
 * @returns {void}
 */
const inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};

/**
 * Resolve object with deep prototype chain to a flat object
 * @param {Object} sourceObj source object
 * @param {Object} [destObj]
 * @param {Function|Boolean} [filter]
 * @param {Function} [propFilter]
 *
 * @returns {Object}
 */
const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
  let props;
  let i;
  let prop;
  const merged = {};

  destObj = destObj || {};
  // eslint-disable-next-line no-eq-null,eqeqeq
  if (sourceObj == null) return destObj;

  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i = props.length;
    while (i-- > 0) {
      prop = props[i];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);

  return destObj;
};

/**
 * Determines whether a string ends with the characters of a specified string
 *
 * @param {String} str
 * @param {String} searchString
 * @param {Number} [position= 0]
 *
 * @returns {boolean}
 */
const endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};


/**
 * Returns new array from array like object or null if failed
 *
 * @param {*} [thing]
 *
 * @returns {?Array}
 */
const toArray = (thing) => {
  if (!thing) return null;
  if (isArray(thing)) return thing;
  let i = thing.length;
  if (!isNumber(i)) return null;
  const arr = new Array(i);
  while (i-- > 0) {
    arr[i] = thing[i];
  }
  return arr;
};

/**
 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
 * thing passed in is an instance of Uint8Array
 *
 * @param {TypedArray}
 *
 * @returns {Array}
 */
// eslint-disable-next-line func-names
const isTypedArray = (TypedArray => {
  // eslint-disable-next-line func-names
  return thing => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

/**
 * For each entry in the object, call the function with the key and value.
 *
 * @param {Object<any, any>} obj - The object to iterate over.
 * @param {Function} fn - The function to call for each entry.
 *
 * @returns {void}
 */
const forEachEntry = (obj, fn) => {
  const generator = obj && obj[Symbol.iterator];

  const iterator = generator.call(obj);

  let result;

  while ((result = iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};

/**
 * It takes a regular expression and a string, and returns an array of all the matches
 *
 * @param {string} regExp - The regular expression to match against.
 * @param {string} str - The string to search.
 *
 * @returns {Array<boolean>}
 */
const matchAll = (regExp, str) => {
  let matches;
  const arr = [];

  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }

  return arr;
};

/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
const isHTMLForm = kindOfTest('HTMLFormElement');

const toCamelCase = str => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
    function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    }
  );
};

/* Creating a function that will check if an object has a property. */
const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);

/**
 * Determine if a value is a RegExp object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a RegExp object, otherwise false
 */
const isRegExp = kindOfTest('RegExp');

const reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};

  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });

  Object.defineProperties(obj, reducedDescriptors);
};

/**
 * Makes all methods read-only
 * @param {Object} obj
 */

const freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    // skip restricted props in strict mode
    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
      return false;
    }

    const value = obj[name];

    if (!isFunction(value)) return;

    descriptor.enumerable = false;

    if ('writable' in descriptor) {
      descriptor.writable = false;
      return;
    }

    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error('Can not rewrite read-only method \'' + name + '\'');
      };
    }
  });
};

const toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};

  const define = (arr) => {
    arr.forEach(value => {
      obj[value] = true;
    });
  };

  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));

  return obj;
};

const noop = () => {};

const toFiniteNumber = (value, defaultValue) => {
  value = +value;
  return Number.isFinite(value) ? value : defaultValue;
};

const ALPHA = 'abcdefghijklmnopqrstuvwxyz';

const DIGIT = '0123456789';

const ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};

const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
  let str = '';
  const {length} = alphabet;
  while (size--) {
    str += alphabet[Math.random() * length|0];
  }

  return str;
};

/**
 * If the thing is a FormData object, return true, otherwise return false.
 *
 * @param {unknown} thing - The thing to check.
 *
 * @returns {boolean}
 */
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
}

const toJSONObject = (obj) => {
  const stack = new Array(10);

  const visit = (source, i) => {

    if (isObject(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }

      if(!('toJSON' in source)) {
        stack[i] = source;
        const target = isArray(source) ? [] : {};

        forEach(source, (value, key) => {
          const reducedValue = visit(value, i + 1);
          !isUndefined(reducedValue) && (target[key] = reducedValue);
        });

        stack[i] = undefined;

        return target;
      }
    }

    return source;
  };

  return visit(obj, 0);
};

const isAsyncFn = kindOfTest('AsyncFunction');

const isThenable = (thing) =>
  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);

var utils$1 = {
  isArray,
  isArrayBuffer,
  isBuffer,
  isFormData,
  isArrayBufferView,
  isString,
  isNumber,
  isBoolean,
  isObject,
  isPlainObject,
  isUndefined,
  isDate,
  isFile,
  isBlob,
  isRegExp,
  isFunction,
  isStream,
  isURLSearchParams,
  isTypedArray,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  ALPHABET,
  generateString,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable
};

/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */
function AxiosError(message, code, config, request, response) {
  Error.call(this);

  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor);
  } else {
    this.stack = (new Error()).stack;
  }

  this.message = message;
  this.name = 'AxiosError';
  code && (this.code = code);
  config && (this.config = config);
  request && (this.request = request);
  response && (this.response = response);
}

utils$1.inherits(AxiosError, Error, {
  toJSON: function toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils$1.toJSONObject(this.config),
      code: this.code,
      status: this.response && this.response.status ? this.response.status : null
    };
  }
});

const prototype$1 = AxiosError.prototype;
const descriptors = {};

[
  'ERR_BAD_OPTION_VALUE',
  'ERR_BAD_OPTION',
  'ECONNABORTED',
  'ETIMEDOUT',
  'ERR_NETWORK',
  'ERR_FR_TOO_MANY_REDIRECTS',
  'ERR_DEPRECATED',
  'ERR_BAD_RESPONSE',
  'ERR_BAD_REQUEST',
  'ERR_CANCELED',
  'ERR_NOT_SUPPORT',
  'ERR_INVALID_URL'
// eslint-disable-next-line func-names
].forEach(code => {
  descriptors[code] = {value: code};
});

Object.defineProperties(AxiosError, descriptors);
Object.defineProperty(prototype$1, 'isAxiosError', {value: true});

// eslint-disable-next-line func-names
AxiosError.from = (error, code, config, request, response, customProps) => {
  const axiosError = Object.create(prototype$1);

  utils$1.toFlatObject(error, axiosError, function filter(obj) {
    return obj !== Error.prototype;
  }, prop => {
    return prop !== 'isAxiosError';
  });

  AxiosError.call(axiosError, error.message, code, config, request, response);

  axiosError.cause = error;

  axiosError.name = error.name;

  customProps && Object.assign(axiosError, customProps);

  return axiosError;
};

// eslint-disable-next-line strict
var httpAdapter = null;

/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */
function isVisitable(thing) {
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
}

/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */
function removeBrackets(key) {
  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
}

/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */
function renderKey(path, key, dots) {
  if (!path) return key;
  return path.concat(key).map(function each(token, i) {
    // eslint-disable-next-line no-param-reassign
    token = removeBrackets(token);
    return !dots && i ? '[' + token + ']' : token;
  }).join(dots ? '.' : '');
}

/**
 * If the array is an array and none of its elements are visitable, then it's a flat array.
 *
 * @param {Array<any>} arr - The array to check
 *
 * @returns {boolean}
 */
function isFlatArray(arr) {
  return utils$1.isArray(arr) && !arr.some(isVisitable);
}

const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});

/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **/

/**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */
function toFormData(obj, formData, options) {
  if (!utils$1.isObject(obj)) {
    throw new TypeError('target must be an object');
  }

  // eslint-disable-next-line no-param-reassign
  formData = formData || new (FormData)();

  // eslint-disable-next-line no-param-reassign
  options = utils$1.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    return !utils$1.isUndefined(source[option]);
  });

  const metaTokens = options.metaTokens;
  // eslint-disable-next-line no-use-before-define
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);

  if (!utils$1.isFunction(visitor)) {
    throw new TypeError('visitor must be a function');
  }

  function convertValue(value) {
    if (value === null) return '';

    if (utils$1.isDate(value)) {
      return value.toISOString();
    }

    if (!useBlob && utils$1.isBlob(value)) {
      throw new AxiosError('Blob is not supported. Use a Buffer instead.');
    }

    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
    }

    return value;
  }

  /**
   * Default visitor.
   *
   * @param {*} value
   * @param {String|Number} key
   * @param {Array<String|Number>} path
   * @this {FormData}
   *
   * @returns {boolean} return true to visit the each prop of the value recursively
   */
  function defaultVisitor(value, key, path) {
    let arr = value;

    if (value && !path && typeof value === 'object') {
      if (utils$1.endsWith(key, '{}')) {
        // eslint-disable-next-line no-param-reassign
        key = metaTokens ? key : key.slice(0, -2);
        // eslint-disable-next-line no-param-reassign
        value = JSON.stringify(value);
      } else if (
        (utils$1.isArray(value) && isFlatArray(value)) ||
        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
        )) {
        // eslint-disable-next-line no-param-reassign
        key = removeBrackets(key);

        arr.forEach(function each(el, index) {
          !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
            convertValue(el)
          );
        });
        return false;
      }
    }

    if (isVisitable(value)) {
      return true;
    }

    formData.append(renderKey(path, key, dots), convertValue(value));

    return false;
  }

  const stack = [];

  const exposedHelpers = Object.assign(predicates, {
    defaultVisitor,
    convertValue,
    isVisitable
  });

  function build(value, path) {
    if (utils$1.isUndefined(value)) return;

    if (stack.indexOf(value) !== -1) {
      throw Error('Circular reference detected in ' + path.join('.'));
    }

    stack.push(value);

    utils$1.forEach(value, function each(el, key) {
      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
      );

      if (result === true) {
        build(el, path ? path.concat(key) : [key]);
      }
    });

    stack.pop();
  }

  if (!utils$1.isObject(obj)) {
    throw new TypeError('data must be an object');
  }

  build(obj);

  return formData;
}

/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */
function encode$1(str) {
  const charMap = {
    '!': '%21',
    "'": '%27',
    '(': '%28',
    ')': '%29',
    '~': '%7E',
    '%20': '+',
    '%00': '\x00'
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}

/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */
function AxiosURLSearchParams(params, options) {
  this._pairs = [];

  params && toFormData(params, this, options);
}

const prototype = AxiosURLSearchParams.prototype;

prototype.append = function append(name, value) {
  this._pairs.push([name, value]);
};

prototype.toString = function toString(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode$1);
  } : encode$1;

  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + '=' + _encode(pair[1]);
  }, '').join('&');
};

/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */
function encode(val) {
  return encodeURIComponent(val).
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

/**
 * Build a URL by appending params to the end
 *
 * @param {string} url The base of the url (e.g., http://www.google.com)
 * @param {object} [params] The params to be appended
 * @param {?object} options
 *
 * @returns {string} The formatted url
 */
function buildURL(url, params, options) {
  /*eslint no-param-reassign:0*/
  if (!params) {
    return url;
  }
  
  const _encode = options && options.encode || encode;

  const serializeFn = options && options.serialize;

  let serializedParams;

  if (serializeFn) {
    serializedParams = serializeFn(params, options);
  } else {
    serializedParams = utils$1.isURLSearchParams(params) ?
      params.toString() :
      new AxiosURLSearchParams(params, options).toString(_encode);
  }

  if (serializedParams) {
    const hashmarkIndex = url.indexOf("#");

    if (hashmarkIndex !== -1) {
      url = url.slice(0, hashmarkIndex);
    }
    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
  }

  return url;
}

class InterceptorManager {
  constructor() {
    this.handlers = [];
  }

  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }

  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }

  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }

  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils$1.forEach(this.handlers, function forEachHandler(h) {
      if (h !== null) {
        fn(h);
      }
    });
  }
}

var InterceptorManager$1 = InterceptorManager;

var transitionalDefaults = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false
};

var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;

var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;

var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;

var platform$1 = {
  isBrowser: true,
  classes: {
    URLSearchParams: URLSearchParams$1,
    FormData: FormData$1,
    Blob: Blob$1
  },
  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
};

const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

/**
 * Determine if we're running in a standard browser environment
 *
 * This allows axios to run in a web worker, and react-native.
 * Both environments support XMLHttpRequest, but not fully standard globals.
 *
 * web workers:
 *  typeof window -> undefined
 *  typeof document -> undefined
 *
 * react-native:
 *  navigator.product -> 'ReactNative'
 * nativescript
 *  navigator.product -> 'NativeScript' or 'NS'
 *
 * @returns {boolean}
 */
const hasStandardBrowserEnv = (
  (product) => {
    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
  })(typeof navigator !== 'undefined' && navigator.product);

/**
 * Determine if we're running in a standard browser webWorker environment
 *
 * Although the `isStandardBrowserEnv` method indicates that
 * `allows axios to run in a web worker`, the WebWorker will still be
 * filtered out due to its judgment standard
 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 * This leads to a problem when axios post `FormData` in webWorker
 */
const hasStandardBrowserWebWorkerEnv = (() => {
  return (
    typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope &&
    typeof self.importScripts === 'function'
  );
})();

var utils = /*#__PURE__*/Object.freeze({
  __proto__: null,
  hasBrowserEnv: hasBrowserEnv,
  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
  hasStandardBrowserEnv: hasStandardBrowserEnv
});

var platform = {
  ...utils,
  ...platform$1
};

function toURLEncodedForm(data, options) {
  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
    visitor: function(value, key, path, helpers) {
      if (platform.isNode && utils$1.isBuffer(value)) {
        this.append(key, value.toString('base64'));
        return false;
      }

      return helpers.defaultVisitor.apply(this, arguments);
    }
  }, options));
}

/**
 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
 *
 * @param {string} name - The name of the property to get.
 *
 * @returns An array of strings.
 */
function parsePropPath(name) {
  // foo[x][y][z]
  // foo.x.y.z
  // foo-x-y-z
  // foo x y z
  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
    return match[0] === '[]' ? '' : match[1] || match[0];
  });
}

/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i;
  const len = keys.length;
  let key;
  for (i = 0; i < len; i++) {
    key = keys[i];
    obj[key] = arr[key];
  }
  return obj;
}

/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */
function formDataToJSON(formData) {
  function buildPath(path, value, target, index) {
    let name = path[index++];

    if (name === '__proto__') return true;

    const isNumericKey = Number.isFinite(+name);
    const isLast = index >= path.length;
    name = !name && utils$1.isArray(target) ? target.length : name;

    if (isLast) {
      if (utils$1.hasOwnProp(target, name)) {
        target[name] = [target[name], value];
      } else {
        target[name] = value;
      }

      return !isNumericKey;
    }

    if (!target[name] || !utils$1.isObject(target[name])) {
      target[name] = [];
    }

    const result = buildPath(path, value, target[name], index);

    if (result && utils$1.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }

    return !isNumericKey;
  }

  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
    const obj = {};

    utils$1.forEachEntry(formData, (name, value) => {
      buildPath(parsePropPath(name), value, obj, 0);
    });

    return obj;
  }

  return null;
}

/**
 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
 * of the input
 *
 * @param {any} rawValue - The value to be stringified.
 * @param {Function} parser - A function that parses a string into a JavaScript object.
 * @param {Function} encoder - A function that takes a value and returns a string.
 *
 * @returns {string} A stringified version of the rawValue.
 */
function stringifySafely(rawValue, parser, encoder) {
  if (utils$1.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils$1.trim(rawValue);
    } catch (e) {
      if (e.name !== 'SyntaxError') {
        throw e;
      }
    }
  }

  return (encoder || JSON.stringify)(rawValue);
}

const defaults = {

  transitional: transitionalDefaults,

  adapter: ['xhr', 'http'],

  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || '';
    const hasJSONContentType = contentType.indexOf('application/json') > -1;
    const isObjectPayload = utils$1.isObject(data);

    if (isObjectPayload && utils$1.isHTMLForm(data)) {
      data = new FormData(data);
    }

    const isFormData = utils$1.isFormData(data);

    if (isFormData) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
    }

    if (utils$1.isArrayBuffer(data) ||
      utils$1.isBuffer(data) ||
      utils$1.isStream(data) ||
      utils$1.isFile(data) ||
      utils$1.isBlob(data)
    ) {
      return data;
    }
    if (utils$1.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils$1.isURLSearchParams(data)) {
      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
      return data.toString();
    }

    let isFileList;

    if (isObjectPayload) {
      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }

      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
        const _FormData = this.env && this.env.FormData;

        return toFormData(
          isFileList ? {'files[]': data} : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }

    if (isObjectPayload || hasJSONContentType ) {
      headers.setContentType('application/json', false);
      return stringifySafely(data);
    }

    return data;
  }],

  transformResponse: [function transformResponse(data) {
    const transitional = this.transitional || defaults.transitional;
    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    const JSONRequested = this.responseType === 'json';

    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
      const silentJSONParsing = transitional && transitional.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;

      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e;
        }
      }
    }

    return data;
  }],

  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,

  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',

  maxContentLength: -1,
  maxBodyLength: -1,

  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },

  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },

  headers: {
    common: {
      'Accept': 'application/json, text/plain, */*',
      'Content-Type': undefined
    }
  }
};

utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
  defaults.headers[method] = {};
});

var defaults$1 = defaults;

// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
const ignoreDuplicateOf = utils$1.toObjectSet([
  'age', 'authorization', 'content-length', 'content-type', 'etag',
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
  'referer', 'retry-after', 'user-agent'
]);

/**
 * Parse headers into an object
 *
 * ```
 * Date: Wed, 27 Aug 2014 08:58:49 GMT
 * Content-Type: application/json
 * Connection: keep-alive
 * Transfer-Encoding: chunked
 * ```
 *
 * @param {String} rawHeaders Headers needing to be parsed
 *
 * @returns {Object} Headers parsed into an object
 */
var parseHeaders = rawHeaders => {
  const parsed = {};
  let key;
  let val;
  let i;

  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
    i = line.indexOf(':');
    key = line.substring(0, i).trim().toLowerCase();
    val = line.substring(i + 1).trim();

    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
      return;
    }

    if (key === 'set-cookie') {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
    }
  });

  return parsed;
};

const $internals = Symbol('internals');

function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}

function normalizeValue(value) {
  if (value === false || value == null) {
    return value;
  }

  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
}

function parseTokens(str) {
  const tokens = Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;

  while ((match = tokensRE.exec(str))) {
    tokens[match[1]] = match[2];
  }

  return tokens;
}

const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());

function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
  if (utils$1.isFunction(filter)) {
    return filter.call(this, value, header);
  }

  if (isHeaderNameFilter) {
    value = header;
  }

  if (!utils$1.isString(value)) return;

  if (utils$1.isString(filter)) {
    return value.indexOf(filter) !== -1;
  }

  if (utils$1.isRegExp(filter)) {
    return filter.test(value);
  }
}

function formatHeader(header) {
  return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}

function buildAccessors(obj, header) {
  const accessorName = utils$1.toCamelCase(' ' + header);

  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}

class AxiosHeaders {
  constructor(headers) {
    headers && this.set(headers);
  }

  set(header, valueOrRewrite, rewrite) {
    const self = this;

    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);

      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }

      const key = utils$1.findKey(self, lHeader);

      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }

    const setHeaders = (headers, _rewrite) =>
      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));

    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }

    return this;
  }

  get(header, parser) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      if (key) {
        const value = this[key];

        if (!parser) {
          return value;
        }

        if (parser === true) {
          return parseTokens(value);
        }

        if (utils$1.isFunction(parser)) {
          return parser.call(this, value, key);
        }

        if (utils$1.isRegExp(parser)) {
          return parser.exec(value);
        }

        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }

  has(header, matcher) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }

    return false;
  }

  delete(header, matcher) {
    const self = this;
    let deleted = false;

    function deleteHeader(_header) {
      _header = normalizeHeader(_header);

      if (_header) {
        const key = utils$1.findKey(self, _header);

        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
          delete self[key];

          deleted = true;
        }
      }
    }

    if (utils$1.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }

    return deleted;
  }

  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }

  normalize(format) {
    const self = this;
    const headers = {};

    utils$1.forEach(this, (value, header) => {
      const key = utils$1.findKey(headers, header);

      if (key) {
        self[key] = normalizeValue(value);
        delete self[header];
        return;
      }

      const normalized = format ? formatHeader(header) : String(header).trim();

      if (normalized !== header) {
        delete self[header];
      }

      self[normalized] = normalizeValue(value);

      headers[normalized] = true;
    });

    return this;
  }

  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }

  toJSON(asStrings) {
    const obj = Object.create(null);

    utils$1.forEach(this, (value, header) => {
      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
    });

    return obj;
  }

  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }

  toString() {
    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
  }

  get [Symbol.toStringTag]() {
    return 'AxiosHeaders';
  }

  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }

  static concat(first, ...targets) {
    const computed = new this(first);

    targets.forEach((target) => computed.set(target));

    return computed;
  }

  static accessor(header) {
    const internals = this[$internals] = (this[$internals] = {
      accessors: {}
    });

    const accessors = internals.accessors;
    const prototype = this.prototype;

    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);

      if (!accessors[lHeader]) {
        buildAccessors(prototype, _header);
        accessors[lHeader] = true;
      }
    }

    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);

    return this;
  }
}

AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

// reserved names hotfix
utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  }
});

utils$1.freezeMethods(AxiosHeaders);

var AxiosHeaders$1 = AxiosHeaders;

/**
 * Transform the data for a request or a response
 *
 * @param {Array|Function} fns A single function or Array of functions
 * @param {?Object} response The response object
 *
 * @returns {*} The resulting transformed data
 */
function transformData(fns, response) {
  const config = this || defaults$1;
  const context = response || config;
  const headers = AxiosHeaders$1.from(context.headers);
  let data = context.data;

  utils$1.forEach(fns, function transform(fn) {
    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
  });

  headers.normalize();

  return data;
}

function isCancel(value) {
  return !!(value && value.__CANCEL__);
}

/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */
function CanceledError(message, config, request) {
  // eslint-disable-next-line no-eq-null,eqeqeq
  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
  this.name = 'CanceledError';
}

utils$1.inherits(CanceledError, AxiosError, {
  __CANCEL__: true
});

/**
 * Resolve or reject a Promise based on response status.
 *
 * @param {Function} resolve A function that resolves the promise.
 * @param {Function} reject A function that rejects the promise.
 * @param {object} response The response.
 *
 * @returns {object} The response.
 */
function settle(resolve, reject, response) {
  const validateStatus = response.config.validateStatus;
  if (!response.status || !validateStatus || validateStatus(response.status)) {
    resolve(response);
  } else {
    reject(new AxiosError(
      'Request failed with status code ' + response.status,
      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

var cookies = platform.hasStandardBrowserEnv ?

  // Standard browser envs support document.cookie
  {
    write(name, value, expires, path, domain, secure) {
      const cookie = [name + '=' + encodeURIComponent(value)];

      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

      utils$1.isString(path) && cookie.push('path=' + path);

      utils$1.isString(domain) && cookie.push('domain=' + domain);

      secure === true && cookie.push('secure');

      document.cookie = cookie.join('; ');
    },

    read(name) {
      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return (match ? decodeURIComponent(match[3]) : null);
    },

    remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  }

  :

  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {},
    read() {
      return null;
    },
    remove() {}
  };

/**
 * Determines whether the specified URL is absolute
 *
 * @param {string} url The URL to test
 *
 * @returns {boolean} True if the specified URL is absolute, otherwise false
 */
function isAbsoluteURL(url) {
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
  // by any combination of letters, digits, plus, period, or hyphen.
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
}

/**
 * Creates a new URL by combining the specified URLs
 *
 * @param {string} baseURL The base URL
 * @param {string} relativeURL The relative URL
 *
 * @returns {string} The combined URL
 */
function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
    : baseURL;
}

/**
 * Creates a new URL by combining the baseURL with the requestedURL,
 * only when the requestedURL is not already an absolute URL.
 * If the requestURL is absolute, this function returns the requestedURL untouched.
 *
 * @param {string} baseURL The base URL
 * @param {string} requestedURL Absolute or relative URL to combine
 *
 * @returns {string} The combined full path
 */
function buildFullPath(baseURL, requestedURL) {
  if (baseURL && !isAbsoluteURL(requestedURL)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

var isURLSameOrigin = platform.hasStandardBrowserEnv ?

// Standard browser envs have full support of the APIs needed to test
// whether the request URL is of the same origin as current location.
  (function standardBrowserEnv() {
    const msie = /(msie|trident)/i.test(navigator.userAgent);
    const urlParsingNode = document.createElement('a');
    let originURL;

    /**
    * Parse a URL to discover its components
    *
    * @param {String} url The URL to be parsed
    * @returns {Object}
    */
    function resolveURL(url) {
      let href = url;

      if (msie) {
        // IE needs attribute set twice to normalize properties
        urlParsingNode.setAttribute('href', href);
        href = urlParsingNode.href;
      }

      urlParsingNode.setAttribute('href', href);

      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
      return {
        href: urlParsingNode.href,
        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
        host: urlParsingNode.host,
        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
        hostname: urlParsingNode.hostname,
        port: urlParsingNode.port,
        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
          urlParsingNode.pathname :
          '/' + urlParsingNode.pathname
      };
    }

    originURL = resolveURL(window.location.href);

    /**
    * Determine if a URL shares the same origin as the current location
    *
    * @param {String} requestURL The URL to test
    * @returns {boolean} True if URL shares the same origin, otherwise false
    */
    return function isURLSameOrigin(requestURL) {
      const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
      return (parsed.protocol === originURL.protocol &&
          parsed.host === originURL.host);
    };
  })() :

  // Non standard browser envs (web workers, react-native) lack needed support.
  (function nonStandardBrowserEnv() {
    return function isURLSameOrigin() {
      return true;
    };
  })();

function parseProtocol(url) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
  return match && match[1] || '';
}

/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;

  min = min !== undefined ? min : 1000;

  return function push(chunkLength) {
    const now = Date.now();

    const startedAt = timestamps[tail];

    if (!firstSampleTS) {
      firstSampleTS = now;
    }

    bytes[head] = chunkLength;
    timestamps[head] = now;

    let i = tail;
    let bytesCount = 0;

    while (i !== head) {
      bytesCount += bytes[i++];
      i = i % samplesCount;
    }

    head = (head + 1) % samplesCount;

    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }

    if (now - firstSampleTS < min) {
      return;
    }

    const passed = startedAt && now - startedAt;

    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
  };
}

function progressEventReducer(listener, isDownloadStream) {
  let bytesNotified = 0;
  const _speedometer = speedometer(50, 250);

  return e => {
    const loaded = e.loaded;
    const total = e.lengthComputable ? e.total : undefined;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;

    bytesNotified = loaded;

    const data = {
      loaded,
      total,
      progress: total ? (loaded / total) : undefined,
      bytes: progressBytes,
      rate: rate ? rate : undefined,
      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
      event: e
    };

    data[isDownloadStream ? 'download' : 'upload'] = true;

    listener(data);
  };
}

const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';

var xhrAdapter = isXHRAdapterSupported && function (config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    let requestData = config.data;
    const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();
    let {responseType, withXSRFToken} = config;
    let onCanceled;
    function done() {
      if (config.cancelToken) {
        config.cancelToken.unsubscribe(onCanceled);
      }

      if (config.signal) {
        config.signal.removeEventListener('abort', onCanceled);
      }
    }

    let contentType;

    if (utils$1.isFormData(requestData)) {
      if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
        requestHeaders.setContentType(false); // Let the browser set it
      } else if ((contentType = requestHeaders.getContentType()) !== false) {
        // fix semicolon duplication issue for ReactNative FormData implementation
        const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
        requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
      }
    }

    let request = new XMLHttpRequest();

    // HTTP basic authentication
    if (config.auth) {
      const username = config.auth.username || '';
      const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
      requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
    }

    const fullPath = buildFullPath(config.baseURL, config.url);

    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);

    // Set the request timeout in MS
    request.timeout = config.timeout;

    function onloadend() {
      if (!request) {
        return;
      }
      // Prepare the response
      const responseHeaders = AxiosHeaders$1.from(
        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
        request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };

      settle(function _resolve(value) {
        resolve(value);
        done();
      }, function _reject(err) {
        reject(err);
        done();
      }, response);

      // Clean up request
      request = null;
    }

    if ('onloadend' in request) {
      // Use onloadend if available
      request.onloadend = onloadend;
    } else {
      // Listen for ready state to emulate onloadend
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }

        // The request errored out and we didn't get a response, this will be
        // handled by onerror instead
        // With one exception: request that using file: protocol, most browsers
        // will return status as 0 even though it's a successful request
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
          return;
        }
        // readystate handler is calling before onerror or ontimeout handlers,
        // so we should call onloadend on the next 'tick'
        setTimeout(onloadend);
      };
    }

    // Handle browser request cancellation (as opposed to a manual cancellation)
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }

      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));

      // Clean up request
      request = null;
    };

    // Handle low level network errors
    request.onerror = function handleError() {
      // Real errors are hidden from us by the browser
      // onerror should only fire if it's a network error
      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));

      // Clean up request
      request = null;
    };

    // Handle timeout
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
      const transitional = config.transitional || transitionalDefaults;
      if (config.timeoutErrorMessage) {
        timeoutErrorMessage = config.timeoutErrorMessage;
      }
      reject(new AxiosError(
        timeoutErrorMessage,
        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
        config,
        request));

      // Clean up request
      request = null;
    };

    // Add xsrf header
    // This is only done if running in a standard browser environment.
    // Specifically not if we're in a web worker, or react-native.
    if(platform.hasStandardBrowserEnv) {
      withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));

      if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {
        // Add xsrf header
        const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);

        if (xsrfValue) {
          requestHeaders.set(config.xsrfHeaderName, xsrfValue);
        }
      }
    }

    // Remove Content-Type if data is undefined
    requestData === undefined && requestHeaders.setContentType(null);

    // Add headers to the request
    if ('setRequestHeader' in request) {
      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }

    // Add withCredentials to request if needed
    if (!utils$1.isUndefined(config.withCredentials)) {
      request.withCredentials = !!config.withCredentials;
    }

    // Add responseType to request if needed
    if (responseType && responseType !== 'json') {
      request.responseType = config.responseType;
    }

    // Handle progress if needed
    if (typeof config.onDownloadProgress === 'function') {
      request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));
    }

    // Not all browsers support upload events
    if (typeof config.onUploadProgress === 'function' && request.upload) {
      request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));
    }

    if (config.cancelToken || config.signal) {
      // Handle cancellation
      // eslint-disable-next-line func-names
      onCanceled = cancel => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
        request.abort();
        request = null;
      };

      config.cancelToken && config.cancelToken.subscribe(onCanceled);
      if (config.signal) {
        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
      }
    }

    const protocol = parseProtocol(fullPath);

    if (protocol && platform.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
      return;
    }


    // Send the request
    request.send(requestData || null);
  });
};

const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter
};

utils$1.forEach(knownAdapters, (fn, value) => {
  if (fn) {
    try {
      Object.defineProperty(fn, 'name', {value});
    } catch (e) {
      // eslint-disable-next-line no-empty
    }
    Object.defineProperty(fn, 'adapterName', {value});
  }
});

const renderReason = (reason) => `- ${reason}`;

const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;

var adapters = {
  getAdapter: (adapters) => {
    adapters = utils$1.isArray(adapters) ? adapters : [adapters];

    const {length} = adapters;
    let nameOrAdapter;
    let adapter;

    const rejectedReasons = {};

    for (let i = 0; i < length; i++) {
      nameOrAdapter = adapters[i];
      let id;

      adapter = nameOrAdapter;

      if (!isResolvedHandle(nameOrAdapter)) {
        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];

        if (adapter === undefined) {
          throw new AxiosError(`Unknown adapter '${id}'`);
        }
      }

      if (adapter) {
        break;
      }

      rejectedReasons[id || '#' + i] = adapter;
    }

    if (!adapter) {

      const reasons = Object.entries(rejectedReasons)
        .map(([id, state]) => `adapter ${id} ` +
          (state === false ? 'is not supported by the environment' : 'is not available in the build')
        );

      let s = length ?
        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
        'as no adapter specified';

      throw new AxiosError(
        `There is no suitable adapter to dispatch the request ` + s,
        'ERR_NOT_SUPPORT'
      );
    }

    return adapter;
  },
  adapters: knownAdapters
};

/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }

  if (config.signal && config.signal.aborted) {
    throw new CanceledError(null, config);
  }
}

/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 *
 * @returns {Promise} The Promise to be fulfilled
 */
function dispatchRequest(config) {
  throwIfCancellationRequested(config);

  config.headers = AxiosHeaders$1.from(config.headers);

  // Transform request data
  config.data = transformData.call(
    config,
    config.transformRequest
  );

  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
    config.headers.setContentType('application/x-www-form-urlencoded', false);
  }

  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);

  return adapter(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);

    // Transform response data
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );

    response.headers = AxiosHeaders$1.from(response.headers);

    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);

      // Transform response data
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
      }
    }

    return Promise.reject(reason);
  });
}

const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;

/**
 * Config-specific merge-function which creates a new config-object
 * by merging two configuration objects together.
 *
 * @param {Object} config1
 * @param {Object} config2
 *
 * @returns {Object} New object resulting from merging config2 to config1
 */
function mergeConfig(config1, config2) {
  // eslint-disable-next-line no-param-reassign
  config2 = config2 || {};
  const config = {};

  function getMergedValue(target, source, caseless) {
    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
      return utils$1.merge.call({caseless}, target, source);
    } else if (utils$1.isPlainObject(source)) {
      return utils$1.merge({}, source);
    } else if (utils$1.isArray(source)) {
      return source.slice();
    }
    return source;
  }

  // eslint-disable-next-line consistent-return
  function mergeDeepProperties(a, b, caseless) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(a, b, caseless);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a, caseless);
    }
  }

  // eslint-disable-next-line consistent-return
  function valueFromConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    }
  }

  // eslint-disable-next-line consistent-return
  function defaultToConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a);
    }
  }

  // eslint-disable-next-line consistent-return
  function mergeDirectKeys(a, b, prop) {
    if (prop in config2) {
      return getMergedValue(a, b);
    } else if (prop in config1) {
      return getMergedValue(undefined, a);
    }
  }

  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
  };

  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
    const merge = mergeMap[prop] || mergeDeepProperties;
    const configValue = merge(config1[prop], config2[prop], prop);
    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
  });

  return config;
}

const VERSION = "1.6.7";

const validators$1 = {};

// eslint-disable-next-line func-names
['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
  validators$1[type] = function validator(thing) {
    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
  };
});

const deprecatedWarnings = {};

/**
 * Transitional option validator
 *
 * @param {function|boolean?} validator - set to false if the transitional option has been removed
 * @param {string?} version - deprecated version / removed since version
 * @param {string?} message - some message with additional info
 *
 * @returns {function}
 */
validators$1.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
  }

  // eslint-disable-next-line func-names
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError(
        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
        AxiosError.ERR_DEPRECATED
      );
    }

    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      // eslint-disable-next-line no-console
      console.warn(
        formatMessage(
          opt,
          ' has been deprecated since v' + version + ' and will be removed in the near future'
        )
      );
    }

    return validator ? validator(value, opt, opts) : true;
  };
};

/**
 * Assert object's properties type
 *
 * @param {object} options
 * @param {object} schema
 * @param {boolean?} allowUnknown
 *
 * @returns {object}
 */

function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== 'object') {
    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i = keys.length;
  while (i-- > 0) {
    const opt = keys[i];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === undefined || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
    }
  }
}

var validator = {
  assertOptions,
  validators: validators$1
};

const validators = validator.validators;

/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */
class Axios {
  constructor(instanceConfig) {
    this.defaults = instanceConfig;
    this.interceptors = {
      request: new InterceptorManager$1(),
      response: new InterceptorManager$1()
    };
  }

  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err) {
      if (err instanceof Error) {
        let dummy;

        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());

        // slice off the Error: ... line
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';

        if (!err.stack) {
          err.stack = stack;
          // match without the 2 top stack lines
        } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
          err.stack += '\n' + stack;
        }
      }

      throw err;
    }
  }

  _request(configOrUrl, config) {
    /*eslint no-param-reassign:0*/
    // Allow for axios('example/url'[, config]) a la fetch API
    if (typeof configOrUrl === 'string') {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }

    config = mergeConfig(this.defaults, config);

    const {transitional, paramsSerializer, headers} = config;

    if (transitional !== undefined) {
      validator.assertOptions(transitional, {
        silentJSONParsing: validators.transitional(validators.boolean),
        forcedJSONParsing: validators.transitional(validators.boolean),
        clarifyTimeoutError: validators.transitional(validators.boolean)
      }, false);
    }

    if (paramsSerializer != null) {
      if (utils$1.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator.assertOptions(paramsSerializer, {
          encode: validators.function,
          serialize: validators.function
        }, true);
      }
    }

    // Set config.method
    config.method = (config.method || this.defaults.method || 'get').toLowerCase();

    // Flatten headers
    let contextHeaders = headers && utils$1.merge(
      headers.common,
      headers[config.method]
    );

    headers && utils$1.forEach(
      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
      (method) => {
        delete headers[method];
      }
    );

    config.headers = AxiosHeaders$1.concat(contextHeaders, headers);

    // filter out skipped interceptors
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
        return;
      }

      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;

      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
    });

    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });

    let promise;
    let i = 0;
    let len;

    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), undefined];
      chain.unshift.apply(chain, requestInterceptorChain);
      chain.push.apply(chain, responseInterceptorChain);
      len = chain.length;

      promise = Promise.resolve(config);

      while (i < len) {
        promise = promise.then(chain[i++], chain[i++]);
      }

      return promise;
    }

    len = requestInterceptorChain.length;

    let newConfig = config;

    i = 0;

    while (i < len) {
      const onFulfilled = requestInterceptorChain[i++];
      const onRejected = requestInterceptorChain[i++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }

    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }

    i = 0;
    len = responseInterceptorChain.length;

    while (i < len) {
      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
    }

    return promise;
  }

  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
}

// Provide aliases for supported request methods
utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
  /*eslint func-names:0*/
  Axios.prototype[method] = function(url, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url,
      data: (config || {}).data
    }));
  };
});

utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  /*eslint func-names:0*/

  function generateHTTPMethod(isForm) {
    return function httpMethod(url, data, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          'Content-Type': 'multipart/form-data'
        } : {},
        url,
        data
      }));
    };
  }

  Axios.prototype[method] = generateHTTPMethod();

  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
});

var Axios$1 = Axios;

/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */
class CancelToken {
  constructor(executor) {
    if (typeof executor !== 'function') {
      throw new TypeError('executor must be a function.');
    }

    let resolvePromise;

    this.promise = new Promise(function promiseExecutor(resolve) {
      resolvePromise = resolve;
    });

    const token = this;

    // eslint-disable-next-line func-names
    this.promise.then(cancel => {
      if (!token._listeners) return;

      let i = token._listeners.length;

      while (i-- > 0) {
        token._listeners[i](cancel);
      }
      token._listeners = null;
    });

    // eslint-disable-next-line func-names
    this.promise.then = onfulfilled => {
      let _resolve;
      // eslint-disable-next-line func-names
      const promise = new Promise(resolve => {
        token.subscribe(resolve);
        _resolve = resolve;
      }).then(onfulfilled);

      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };

      return promise;
    };

    executor(function cancel(message, config, request) {
      if (token.reason) {
        // Cancellation has already been requested
        return;
      }

      token.reason = new CanceledError(message, config, request);
      resolvePromise(token.reason);
    });
  }

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }

  /**
   * Subscribe to the cancel signal
   */

  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }

    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }

  /**
   * Unsubscribe from the cancel signal
   */

  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }

  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new CancelToken(function executor(c) {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }
}

var CancelToken$1 = CancelToken;

/**
 * Syntactic sugar for invoking a function and expanding an array for arguments.
 *
 * Common use case would be to use `Function.prototype.apply`.
 *
 *  ```js
 *  function f(x, y, z) {}
 *  var args = [1, 2, 3];
 *  f.apply(null, args);
 *  ```
 *
 * With `spread` this example can be re-written.
 *
 *  ```js
 *  spread(function(x, y, z) {})([1, 2, 3]);
 *  ```
 *
 * @param {Function} callback
 *
 * @returns {Function}
 */
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

/**
 * Determines whether the payload is an error thrown by Axios
 *
 * @param {*} payload The value to test
 *
 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
 */
function isAxiosError(payload) {
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
}

const HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
};

Object.entries(HttpStatusCode).forEach(([key, value]) => {
  HttpStatusCode[value] = key;
});

var HttpStatusCode$1 = HttpStatusCode;

/**
 * Create an instance of Axios
 *
 * @param {Object} defaultConfig The default config for the instance
 *
 * @returns {Axios} A new instance of Axios
 */
function createInstance(defaultConfig) {
  const context = new Axios$1(defaultConfig);
  const instance = bind(Axios$1.prototype.request, context);

  // Copy axios.prototype to instance
  utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils$1.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults$1);

// Expose Axios class to allow class inheritance
axios.Axios = Axios$1;

// Expose Cancel & CancelToken
axios.CanceledError = CanceledError;
axios.CancelToken = CancelToken$1;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData;

// Expose AxiosError class
axios.AxiosError = AxiosError;

// alias for CanceledError for backward compatibility
axios.Cancel = axios.CanceledError;

// Expose all/spread
axios.all = function all(promises) {
  return Promise.all(promises);
};

axios.spread = spread;

// Expose isAxiosError
axios.isAxiosError = isAxiosError;

// Expose mergeConfig
axios.mergeConfig = mergeConfig;

axios.AxiosHeaders = AxiosHeaders$1;

axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);

axios.getAdapter = adapters.getAdapter;

axios.HttpStatusCode = HttpStatusCode$1;

axios.default = axios;

module.exports = axios;
//# sourceMappingURL=axios.cjs.map


/***/ }),

/***/ "../../../Common/assets/node_modules/bootstrap/js/dist/modal.js":
/*!**********************************************************************!*\
  !*** ../../../Common/assets/node_modules/bootstrap/js/dist/modal.js ***!
  \**********************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

/*!
  * Bootstrap modal.js v4.6.2 (https://getbootstrap.com/)
  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
(function (global, factory) {
   true ? module.exports = factory(__webpack_require__(/*! jquery */ "../../../Common/assets/node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./util.js */ "../../../Common/assets/node_modules/bootstrap/js/dist/util.js")) :
  0;
})(this, (function ($, Util) { 'use strict';

  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);

  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    Object.defineProperty(Constructor, "prototype", {
      writable: false
    });
    return Constructor;
  }

  function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function (target) {
      for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];

        for (var key in source) {
          if (Object.prototype.hasOwnProperty.call(source, key)) {
            target[key] = source[key];
          }
        }
      }

      return target;
    };
    return _extends.apply(this, arguments);
  }

  /**
   * Constants
   */

  var NAME = 'modal';
  var VERSION = '4.6.2';
  var DATA_KEY = 'bs.modal';
  var EVENT_KEY = "." + DATA_KEY;
  var DATA_API_KEY = '.data-api';
  var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key

  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
  var CLASS_NAME_BACKDROP = 'modal-backdrop';
  var CLASS_NAME_OPEN = 'modal-open';
  var CLASS_NAME_FADE = 'fade';
  var CLASS_NAME_SHOW = 'show';
  var CLASS_NAME_STATIC = 'modal-static';
  var EVENT_HIDE = "hide" + EVENT_KEY;
  var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
  var EVENT_SHOW = "show" + EVENT_KEY;
  var EVENT_SHOWN = "shown" + EVENT_KEY;
  var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
  var EVENT_RESIZE = "resize" + EVENT_KEY;
  var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
  var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
  var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
  var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
  var SELECTOR_DIALOG = '.modal-dialog';
  var SELECTOR_MODAL_BODY = '.modal-body';
  var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
  var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
  var SELECTOR_STICKY_CONTENT = '.sticky-top';
  var Default = {
    backdrop: true,
    keyboard: true,
    focus: true,
    show: true
  };
  var DefaultType = {
    backdrop: '(boolean|string)',
    keyboard: 'boolean',
    focus: 'boolean',
    show: 'boolean'
  };
  /**
   * Class definition
   */

  var Modal = /*#__PURE__*/function () {
    function Modal(element, config) {
      this._config = this._getConfig(config);
      this._element = element;
      this._dialog = element.querySelector(SELECTOR_DIALOG);
      this._backdrop = null;
      this._isShown = false;
      this._isBodyOverflowing = false;
      this._ignoreBackdropClick = false;
      this._isTransitioning = false;
      this._scrollbarWidth = 0;
    } // Getters


    var _proto = Modal.prototype;

    // Public
    _proto.toggle = function toggle(relatedTarget) {
      return this._isShown ? this.hide() : this.show(relatedTarget);
    };

    _proto.show = function show(relatedTarget) {
      var _this = this;

      if (this._isShown || this._isTransitioning) {
        return;
      }

      var showEvent = $__default["default"].Event(EVENT_SHOW, {
        relatedTarget: relatedTarget
      });
      $__default["default"](this._element).trigger(showEvent);

      if (showEvent.isDefaultPrevented()) {
        return;
      }

      this._isShown = true;

      if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) {
        this._isTransitioning = true;
      }

      this._checkScrollbar();

      this._setScrollbar();

      this._adjustDialog();

      this._setEscapeEvent();

      this._setResizeEvent();

      $__default["default"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
        return _this.hide(event);
      });
      $__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
        $__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
          if ($__default["default"](event.target).is(_this._element)) {
            _this._ignoreBackdropClick = true;
          }
        });
      });

      this._showBackdrop(function () {
        return _this._showElement(relatedTarget);
      });
    };

    _proto.hide = function hide(event) {
      var _this2 = this;

      if (event) {
        event.preventDefault();
      }

      if (!this._isShown || this._isTransitioning) {
        return;
      }

      var hideEvent = $__default["default"].Event(EVENT_HIDE);
      $__default["default"](this._element).trigger(hideEvent);

      if (!this._isShown || hideEvent.isDefaultPrevented()) {
        return;
      }

      this._isShown = false;
      var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE);

      if (transition) {
        this._isTransitioning = true;
      }

      this._setEscapeEvent();

      this._setResizeEvent();

      $__default["default"](document).off(EVENT_FOCUSIN);
      $__default["default"](this._element).removeClass(CLASS_NAME_SHOW);
      $__default["default"](this._element).off(EVENT_CLICK_DISMISS);
      $__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);

      if (transition) {
        var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element);
        $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function (event) {
          return _this2._hideModal(event);
        }).emulateTransitionEnd(transitionDuration);
      } else {
        this._hideModal();
      }
    };

    _proto.dispose = function dispose() {
      [window, this._element, this._dialog].forEach(function (htmlElement) {
        return $__default["default"](htmlElement).off(EVENT_KEY);
      });
      /**
       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
       * Do not move `document` in `htmlElements` array
       * It will remove `EVENT_CLICK_DATA_API` event that should remain
       */

      $__default["default"](document).off(EVENT_FOCUSIN);
      $__default["default"].removeData(this._element, DATA_KEY);
      this._config = null;
      this._element = null;
      this._dialog = null;
      this._backdrop = null;
      this._isShown = null;
      this._isBodyOverflowing = null;
      this._ignoreBackdropClick = null;
      this._isTransitioning = null;
      this._scrollbarWidth = null;
    };

    _proto.handleUpdate = function handleUpdate() {
      this._adjustDialog();
    } // Private
    ;

    _proto._getConfig = function _getConfig(config) {
      config = _extends({}, Default, config);
      Util__default["default"].typeCheckConfig(NAME, config, DefaultType);
      return config;
    };

    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
      var _this3 = this;

      var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED);
      $__default["default"](this._element).trigger(hideEventPrevented);

      if (hideEventPrevented.isDefaultPrevented()) {
        return;
      }

      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;

      if (!isModalOverflowing) {
        this._element.style.overflowY = 'hidden';
      }

      this._element.classList.add(CLASS_NAME_STATIC);

      var modalTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog);
      $__default["default"](this._element).off(Util__default["default"].TRANSITION_END);
      $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function () {
        _this3._element.classList.remove(CLASS_NAME_STATIC);

        if (!isModalOverflowing) {
          $__default["default"](_this3._element).one(Util__default["default"].TRANSITION_END, function () {
            _this3._element.style.overflowY = '';
          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);
        }
      }).emulateTransitionEnd(modalTransitionDuration);

      this._element.focus();
    };

    _proto._showElement = function _showElement(relatedTarget) {
      var _this4 = this;

      var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE);
      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;

      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
        // Don't move modal's DOM position
        document.body.appendChild(this._element);
      }

      this._element.style.display = 'block';

      this._element.removeAttribute('aria-hidden');

      this._element.setAttribute('aria-modal', true);

      this._element.setAttribute('role', 'dialog');

      if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
        modalBody.scrollTop = 0;
      } else {
        this._element.scrollTop = 0;
      }

      if (transition) {
        Util__default["default"].reflow(this._element);
      }

      $__default["default"](this._element).addClass(CLASS_NAME_SHOW);

      if (this._config.focus) {
        this._enforceFocus();
      }

      var shownEvent = $__default["default"].Event(EVENT_SHOWN, {
        relatedTarget: relatedTarget
      });

      var transitionComplete = function transitionComplete() {
        if (_this4._config.focus) {
          _this4._element.focus();
        }

        _this4._isTransitioning = false;
        $__default["default"](_this4._element).trigger(shownEvent);
      };

      if (transition) {
        var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog);
        $__default["default"](this._dialog).one(Util__default["default"].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
      } else {
        transitionComplete();
      }
    };

    _proto._enforceFocus = function _enforceFocus() {
      var _this5 = this;

      $__default["default"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
      .on(EVENT_FOCUSIN, function (event) {
        if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) {
          _this5._element.focus();
        }
      });
    };

    _proto._setEscapeEvent = function _setEscapeEvent() {
      var _this6 = this;

      if (this._isShown) {
        $__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
            event.preventDefault();

            _this6.hide();
          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
            _this6._triggerBackdropTransition();
          }
        });
      } else if (!this._isShown) {
        $__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS);
      }
    };

    _proto._setResizeEvent = function _setResizeEvent() {
      var _this7 = this;

      if (this._isShown) {
        $__default["default"](window).on(EVENT_RESIZE, function (event) {
          return _this7.handleUpdate(event);
        });
      } else {
        $__default["default"](window).off(EVENT_RESIZE);
      }
    };

    _proto._hideModal = function _hideModal() {
      var _this8 = this;

      this._element.style.display = 'none';

      this._element.setAttribute('aria-hidden', true);

      this._element.removeAttribute('aria-modal');

      this._element.removeAttribute('role');

      this._isTransitioning = false;

      this._showBackdrop(function () {
        $__default["default"](document.body).removeClass(CLASS_NAME_OPEN);

        _this8._resetAdjustments();

        _this8._resetScrollbar();

        $__default["default"](_this8._element).trigger(EVENT_HIDDEN);
      });
    };

    _proto._removeBackdrop = function _removeBackdrop() {
      if (this._backdrop) {
        $__default["default"](this._backdrop).remove();
        this._backdrop = null;
      }
    };

    _proto._showBackdrop = function _showBackdrop(callback) {
      var _this9 = this;

      var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';

      if (this._isShown && this._config.backdrop) {
        this._backdrop = document.createElement('div');
        this._backdrop.className = CLASS_NAME_BACKDROP;

        if (animate) {
          this._backdrop.classList.add(animate);
        }

        $__default["default"](this._backdrop).appendTo(document.body);
        $__default["default"](this._element).on(EVENT_CLICK_DISMISS, function (event) {
          if (_this9._ignoreBackdropClick) {
            _this9._ignoreBackdropClick = false;
            return;
          }

          if (event.target !== event.currentTarget) {
            return;
          }

          if (_this9._config.backdrop === 'static') {
            _this9._triggerBackdropTransition();
          } else {
            _this9.hide();
          }
        });

        if (animate) {
          Util__default["default"].reflow(this._backdrop);
        }

        $__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW);

        if (!callback) {
          return;
        }

        if (!animate) {
          callback();
          return;
        }

        var backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop);
        $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
      } else if (!this._isShown && this._backdrop) {
        $__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW);

        var callbackRemove = function callbackRemove() {
          _this9._removeBackdrop();

          if (callback) {
            callback();
          }
        };

        if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) {
          var _backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop);

          $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
        } else {
          callbackRemove();
        }
      } else if (callback) {
        callback();
      }
    } // ----------------------------------------------------------------------
    // the following methods are used to handle overflowing modals
    // todo (fat): these should probably be refactored out of modal.js
    // ----------------------------------------------------------------------
    ;

    _proto._adjustDialog = function _adjustDialog() {
      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;

      if (!this._isBodyOverflowing && isModalOverflowing) {
        this._element.style.paddingLeft = this._scrollbarWidth + "px";
      }

      if (this._isBodyOverflowing && !isModalOverflowing) {
        this._element.style.paddingRight = this._scrollbarWidth + "px";
      }
    };

    _proto._resetAdjustments = function _resetAdjustments() {
      this._element.style.paddingLeft = '';
      this._element.style.paddingRight = '';
    };

    _proto._checkScrollbar = function _checkScrollbar() {
      var rect = document.body.getBoundingClientRect();
      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
      this._scrollbarWidth = this._getScrollbarWidth();
    };

    _proto._setScrollbar = function _setScrollbar() {
      var _this10 = this;

      if (this._isBodyOverflowing) {
        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding

        $__default["default"](fixedContent).each(function (index, element) {
          var actualPadding = element.style.paddingRight;
          var calculatedPadding = $__default["default"](element).css('padding-right');
          $__default["default"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
        }); // Adjust sticky content margin

        $__default["default"](stickyContent).each(function (index, element) {
          var actualMargin = element.style.marginRight;
          var calculatedMargin = $__default["default"](element).css('margin-right');
          $__default["default"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
        }); // Adjust body padding

        var actualPadding = document.body.style.paddingRight;
        var calculatedPadding = $__default["default"](document.body).css('padding-right');
        $__default["default"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
      }

      $__default["default"](document.body).addClass(CLASS_NAME_OPEN);
    };

    _proto._resetScrollbar = function _resetScrollbar() {
      // Restore fixed content padding
      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
      $__default["default"](fixedContent).each(function (index, element) {
        var padding = $__default["default"](element).data('padding-right');
        $__default["default"](element).removeData('padding-right');
        element.style.paddingRight = padding ? padding : '';
      }); // Restore sticky content

      var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
      $__default["default"](elements).each(function (index, element) {
        var margin = $__default["default"](element).data('margin-right');

        if (typeof margin !== 'undefined') {
          $__default["default"](element).css('margin-right', margin).removeData('margin-right');
        }
      }); // Restore body padding

      var padding = $__default["default"](document.body).data('padding-right');
      $__default["default"](document.body).removeData('padding-right');
      document.body.style.paddingRight = padding ? padding : '';
    };

    _proto._getScrollbarWidth = function _getScrollbarWidth() {
      // thx d.walsh
      var scrollDiv = document.createElement('div');
      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
      document.body.appendChild(scrollDiv);
      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
      document.body.removeChild(scrollDiv);
      return scrollbarWidth;
    } // Static
    ;

    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
      return this.each(function () {
        var data = $__default["default"](this).data(DATA_KEY);

        var _config = _extends({}, Default, $__default["default"](this).data(), typeof config === 'object' && config ? config : {});

        if (!data) {
          data = new Modal(this, _config);
          $__default["default"](this).data(DATA_KEY, data);
        }

        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
          }

          data[config](relatedTarget);
        } else if (_config.show) {
          data.show(relatedTarget);
        }
      });
    };

    _createClass(Modal, null, [{
      key: "VERSION",
      get: function get() {
        return VERSION;
      }
    }, {
      key: "Default",
      get: function get() {
        return Default;
      }
    }]);

    return Modal;
  }();
  /**
   * Data API implementation
   */


  $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
    var _this11 = this;

    var target;
    var selector = Util__default["default"].getSelectorFromElement(this);

    if (selector) {
      target = document.querySelector(selector);
    }

    var config = $__default["default"](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default["default"](target).data(), $__default["default"](this).data());

    if (this.tagName === 'A' || this.tagName === 'AREA') {
      event.preventDefault();
    }

    var $target = $__default["default"](target).one(EVENT_SHOW, function (showEvent) {
      if (showEvent.isDefaultPrevented()) {
        // Only register focus restorer if modal will actually get shown
        return;
      }

      $target.one(EVENT_HIDDEN, function () {
        if ($__default["default"](_this11).is(':visible')) {
          _this11.focus();
        }
      });
    });

    Modal._jQueryInterface.call($__default["default"](target), config, this);
  });
  /**
   * jQuery
   */

  $__default["default"].fn[NAME] = Modal._jQueryInterface;
  $__default["default"].fn[NAME].Constructor = Modal;

  $__default["default"].fn[NAME].noConflict = function () {
    $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
    return Modal._jQueryInterface;
  };

  return Modal;

}));


/***/ }),

/***/ "../../../Common/assets/node_modules/bootstrap/js/dist/util.js":
/*!*********************************************************************!*\
  !*** ../../../Common/assets/node_modules/bootstrap/js/dist/util.js ***!
  \*********************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

/*!
  * Bootstrap util.js v4.6.2 (https://getbootstrap.com/)
  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
(function (global, factory) {
   true ? module.exports = factory(__webpack_require__(/*! jquery */ "../../../Common/assets/node_modules/jquery/dist/jquery.js")) :
  0;
})(this, (function ($) { 'use strict';

  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

  var $__default = /*#__PURE__*/_interopDefaultLegacy($);

  /**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.6.2): util.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
   * --------------------------------------------------------------------------
   */
  /**
   * Private TransitionEnd Helpers
   */

  var TRANSITION_END = 'transitionend';
  var MAX_UID = 1000000;
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)

  function toType(obj) {
    if (obj === null || typeof obj === 'undefined') {
      return "" + obj;
    }

    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
  }

  function getSpecialTransitionEndEvent() {
    return {
      bindType: TRANSITION_END,
      delegateType: TRANSITION_END,
      handle: function handle(event) {
        if ($__default["default"](event.target).is(this)) {
          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
        }

        return undefined;
      }
    };
  }

  function transitionEndEmulator(duration) {
    var _this = this;

    var called = false;
    $__default["default"](this).one(Util.TRANSITION_END, function () {
      called = true;
    });
    setTimeout(function () {
      if (!called) {
        Util.triggerTransitionEnd(_this);
      }
    }, duration);
    return this;
  }

  function setTransitionEndSupport() {
    $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator;
    $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
  }
  /**
   * Public Util API
   */


  var Util = {
    TRANSITION_END: 'bsTransitionEnd',
    getUID: function getUID(prefix) {
      do {
        // eslint-disable-next-line no-bitwise
        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
      } while (document.getElementById(prefix));

      return prefix;
    },
    getSelectorFromElement: function getSelectorFromElement(element) {
      var selector = element.getAttribute('data-target');

      if (!selector || selector === '#') {
        var hrefAttr = element.getAttribute('href');
        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
      }

      try {
        return document.querySelector(selector) ? selector : null;
      } catch (_) {
        return null;
      }
    },
    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
      if (!element) {
        return 0;
      } // Get transition-duration of the element


      var transitionDuration = $__default["default"](element).css('transition-duration');
      var transitionDelay = $__default["default"](element).css('transition-delay');
      var floatTransitionDuration = parseFloat(transitionDuration);
      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found

      if (!floatTransitionDuration && !floatTransitionDelay) {
        return 0;
      } // If multiple durations are defined, take the first


      transitionDuration = transitionDuration.split(',')[0];
      transitionDelay = transitionDelay.split(',')[0];
      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
    },
    reflow: function reflow(element) {
      return element.offsetHeight;
    },
    triggerTransitionEnd: function triggerTransitionEnd(element) {
      $__default["default"](element).trigger(TRANSITION_END);
    },
    supportsTransitionEnd: function supportsTransitionEnd() {
      return Boolean(TRANSITION_END);
    },
    isElement: function isElement(obj) {
      return (obj[0] || obj).nodeType;
    },
    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
      for (var property in configTypes) {
        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
          var expectedTypes = configTypes[property];
          var value = config[property];
          var valueType = value && Util.isElement(value) ? 'element' : toType(value);

          if (!new RegExp(expectedTypes).test(valueType)) {
            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
          }
        }
      }
    },
    findShadowRoot: function findShadowRoot(element) {
      if (!document.documentElement.attachShadow) {
        return null;
      } // Can find the shadow root otherwise it'll return the document


      if (typeof element.getRootNode === 'function') {
        var root = element.getRootNode();
        return root instanceof ShadowRoot ? root : null;
      }

      if (element instanceof ShadowRoot) {
        return element;
      } // when we don't find a shadow root


      if (!element.parentNode) {
        return null;
      }

      return Util.findShadowRoot(element.parentNode);
    },
    jQueryDetection: function jQueryDetection() {
      if (typeof $__default["default"] === 'undefined') {
        throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
      }

      var version = $__default["default"].fn.jquery.split(' ')[0].split('.');
      var minMajor = 1;
      var ltMajor = 2;
      var minMinor = 9;
      var minPatch = 1;
      var maxMajor = 4;

      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
        throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
      }
    }
  };
  Util.jQueryDetection();
  setTransitionEndSupport();

  return Util;

}));


/***/ }),

/***/ "../../../Common/assets/node_modules/jodit/build/jodit.js":
/*!****************************************************************!*\
  !*** ../../../Common/assets/node_modules/jodit/build/jodit.js ***!
  \****************************************************************/
/***/ ((module) => {

/*!
 * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
 * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
 * Version: v3.24.9
 * Url: https://xdsoft.net/jodit/
 * License(s): MIT
 */
	
(function webpackUniversalModuleDefinition(root, factory) {
	if(true)
		module.exports = factory();
	else // removed by dead control flow
{ var i, a; }
})(self, function() {
return /******/ (function() { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ 90643:
/***/ (function(module) {

module.exports["default"] = ["إبدأ في الكتابة...","حول جوديت","محرر جوديت","دليل مستخدم جوديت","يحتوي على مساعدة مفصلة للاستخدام","للحصول على معلومات حول الترخيص، يرجى الذهاب لموقعنا:","شراء النسخة الكاملة","حقوق الطبع والنشر © XDSoft.net - Chupurnov Valeriy. كل الحقوق محفوظة.","مِرْساة","فتح في نافذة جديدة","فتح المحرر في الحجم الكامل","مسح التنسيق","ملء اللون أو تعيين لون النص","إعادة","تراجع","عريض","مائل","إدراج قائمة غير مرتبة","إدراج قائمة مرتبة","محاذاة للوسط","محاذاة مثبتة","محاذاة لليسار","محاذاة لليمين","إدراج خط أفقي","إدراج صورة","ادخال الملف","إدراج فيديو يوتيوب/فيميو ","إدراج رابط","حجم الخط","نوع الخط","إدراج كتلة تنسيق","عادي","عنوان 1","عنوان 2","عنوان 3","عنوان 4","إقتباس","كود","إدراج","إدراج جدول","تقليل المسافة البادئة","زيادة المسافة البادئة","تحديد أحرف خاصة","إدراج حرف خاص","تنسيق الرسم","تغيير الوضع","هوامش","أعلى","يمين","أسفل","يسار","الأنماط","الطبقات","محاذاة","اليمين","الوسط","اليسار","--غير مضبوط--","Src","العنوان","العنوان البديل","الرابط","افتح الرابط في نافذة جديدة","الصورة","ملف","متقدم","خصائص الصورة","إلغاء","حسنا","متصفح الملفات","حدث خطأ في تحميل القائمة ","حدث خطأ في تحميل المجلدات","هل أنت واثق؟","أدخل اسم المجلد","إنشاء مجلد","أكتب إسم","إسقاط صورة","إسقاط الملف","أو أنقر","النص البديل","رفع","تصفح","الخلفية","نص","أعلى","الوسط","الأسفل","إدراج عمود قبل","إدراج عمود بعد","إدراج صف أعلى","إدراج صف أسفل","حذف الجدول","حذف الصف","حذف العمود","خلية فارغة","%d حرف","%d كلام","اضرب من خلال","أكد","حرف فوقي","مخطوطة","قطع الاختيار","اختر الكل","استراحة","البحث عن","استبدل ب","محل","معجون","اختر محتوى للصق","مصدر","بالخط العريض","مائل","شغل","صلة","إلغاء","كرر","طاولة","صورة","نظيف","فقرة","حجم الخط","فيديو","الخط","حول المحرر","طباعة","أكد","شطب","المسافة البادئة","نتوء","ملء الشاشة","الحجم التقليدي","الخط","قائمة","قائمة مرقمة","قطع","اختر الكل","قانون","فتح الرابط","تعديل الرابط","سمة Nofollow","إزالة الرابط","تحديث","لتحرير","مراجعة","URL","تحرير","محاذاة أفقية","فلتر","عن طريق التغيير","بالاسم","حسب الحجم","إضافة مجلد","إعادة","احتفظ","حفظ باسم","تغيير الحجم","حجم القطع","عرض","ارتفاع","حافظ على النسب","أن","لا","حذف","تميز","تميز %s","محاذاة عمودية","انشق، مزق","اذهب","أضف العمود","اضف سطر","رخصة %s","حذف","انقسام عمودي","تقسيم أفقي","الحدود","يشبه الكود الخاص بك HTML. تبقي كما HTML؟","الصق ك HTML","احتفظ","إدراج كنص","إدراج النص فقط","يمكنك فقط تحرير صورك الخاصة. تحميل هذه الصورة على المضيف؟","تم تحميل الصورة بنجاح على الخادم!","لوحة","لا توجد ملفات في هذا الدليل.","إعادة تسمية","أدخل اسم جديد","معاينة","تحميل","لصق من الحافظة","متصفحك لا يدعم إمكانية الوصول المباشر إلى الحافظة.","نسخ التحديد","نسخ","دائرة نصف قطرها الحدود","عرض كل","تطبيق","يرجى ملء هذا المجال","يرجى إدخال عنوان ويب","الافتراضي","دائرة","نقطة","المربعة","البحث","تجد السابقة","تجد التالي","للصق المحتوى قادم من Microsoft Word/Excel الوثيقة. هل تريد أن تبقي شكل أو تنظيفه ؟ ","كلمة لصق الكشف عن","نظيفة","أدخل اسم الفصل","اضغط البديل لتغيير حجم مخصص"]

/***/ }),

/***/ 52532:
/***/ (function(module) {

module.exports["default"] = ["Napiš něco","O Jodit","Editor Jodit","Jodit Uživatelská příručka","obsahuje detailní nápovědu","Pro informace o licenci, prosím, přejděte na naši stránku:","Koupit plnou verzi","Copyright © XDSoft.net - Chupurnov Valeriy. Všechna práva vyhrazena.","Anchor","Otevřít v nové záložce","Otevřít v celoobrazovkovém režimu","Vyčistit formátování","Barva výplně a písma","Vpřed","Zpět","Tučné","Kurzíva","Odrážky","Číslovaný seznam","Zarovnat na střed","Zarovnat do bloku","Zarovnat vlevo","Zarovnat vpravo","Vložit horizontální linku","Vložit obrázek","Vložit soubor","Vložit video (YT/Vimeo)","Vložit odkaz","Velikost písma","Typ písma","Formátovat blok","Normální text","Nadpis 1","Nadpis 2","Nadpis 3","Nadpis 4","Citát","Kód","Vložit","Vložit tabulku","Zmenšit odsazení","Zvětšit odsazení","Vybrat speciální symbol","Vložit speciální symbol","Použít formát","Změnit mód","Okraje","horní","pravý","spodní","levý","Styly","Třídy","Zarovnání","Vpravo","Na střed","Vlevo","--nenastaveno--","src","Titulek","Alternativní text (alt)","Link","Otevřít link v nové záložce","Obrázek","soubor","Rozšířené","Vlastnosti obrázku","Zpět","Ok","Prohlížeč souborů","Chyba při načítání seznamu souborů","Chyba při načítání složek","Jste si jistý(á)?","Název složky","Vytvořit složku","název","Přetáhněte sem obrázek","Přetáhněte sem soubor","nebo klikněte","Alternativní text","Nahrát","Server","Pozadí","Text","Nahoru","Na střed","Dolu","Vložit sloupec před","Vložit sloupec za","Vložit řádek nad","Vložit řádek pod","Vymazat tabulku","Vymazat řádku","Vymazat sloupec","Vyčistit buňku","Znaky: %d","Slova: %d","Přeškrtnuto","Podtrženo","Horní index","Dolní index","Vyjmout označené","Označit vše","Zalomení","Najdi","Nahradit za","Vyměňte","Vložit","Vyber obsah pro vložení","HTML","tučně","kurzíva","štětec","odkaz","zpět","vpřed","tabulka","obrázek","guma","odstavec","velikost písma","video","písmo","о editoru","tisk","podtrženo","přeškrtnuto","zvětšit odsazení","zmenšit odsazení","celoobrazovkový režim","smrsknout","Linka","Odrážka","Číslovaný seznam","Vyjmout","Označit vše","Kód","Otevřít odkaz","Upravit odkaz","Atribut no-follow","Odstranit odkaz","Aktualizovat","Chcete-li upravit","Zobrazit","URL","Editovat","Horizontální zarovnání","Filtr","Dle poslední změny","Dle názvu","Dle velikosti","Přidat složku","Reset","Uložit","Uložit jako...","Změnit rozměr","Ořezat","Šířka","Výška","Ponechat poměr","Ano","Ne","Vyjmout","Označit","Označit %s","Vertikální zarovnání","Rozdělit","Spojit","Přidat sloupec","Přidat řádek","Licence: %s","Vymazat","Rozdělit vertikálně","Rozdělit horizontálně","Okraj","Váš text se podobá HTML. Vložit ho jako HTML?","Vložit jako HTML","Ponechat originál","Vložit jako TEXT","Vložit pouze TEXT","Můžete upravovat pouze své obrázky. Načíst obrázek?","Obrázek byl úspěšně nahrán!","paleta","V tomto adresáři nejsou žádné soubory.","přejmenovat","Zadejte nový název","náhled","Stažení","Vložit ze schránky","Váš prohlížeč nepodporuje přímý přístup do schránky.","Kopírovat výběr","kopírování","Border radius","Zobrazit všechny","Platí","Prosím, vyplňte toto pole","Prosím, zadejte webovou adresu","Výchozí","Kruh","Dot","Quadrate","Najít","Najít Předchozí","Najít Další","Obsah, který vkládáte, je pravděpodobně z Microsoft Word / Excel. Chcete ponechat formát nebo vložit pouze text?","Detekován fragment z Wordu nebo Excelu","Vyčistit","Vložte název třídy","Stiskněte Alt pro vlastní změnu velikosti"]

/***/ }),

/***/ 75178:
/***/ (function(module) {

module.exports["default"] = ["Bitte geben Sie einen Text ein","Über Jodit","Jodit Editor","Das Jodit Benutzerhandbuch","beinhaltet ausführliche Informationen wie Sie den Editor verwenden können.","Für Informationen zur Lizenz, besuchen Sie bitte unsere Web-Präsenz:","Vollversion kaufen","Copyright © XDSoft.net - Chupurnov Valeriy. Alle Rechte vorbehalten.","Anker","In neuer Registerkarte öffnen","Editor in voller Größe öffnen","Formatierung löschen","Füllfarbe oder Textfarbe ändern","Wiederholen","Rückgängig machen","Fett","Kursiv","Unsortierte Liste einfügen","Nummerierte Liste einfügen","Mittig ausrichten","Blocksatz","Links ausrichten","Rechts ausrichten","Horizontale Linie einfügen","Bild einfügen","Datei einfügen","Youtube/vimeo Video einfügen","Link einfügen","Schriftgröße","Schriftfamilie","Formatblock einfügen","Normal","Überschrift 1","Überschrift 2","Überschrift 3","Überschrift 4","Zitat","Code","Einfügen","Tabelle einfügen","Einzug verkleinern","Einzug vergrößern","Sonderzeichen auswählen","Sonderzeichen einfügen","Format kopieren","Änderungsmodus","Ränder","Oben","Rechts","Unten","Links","CSS Stil","CSS Klassen","Ausrichtung","Rechts","Zentriert","Links","Keine","Pfad","Titel","Alternativer Text","Link","Link in neuem Tab öffnen","Bild","Datei","Fortgeschritten","Bildeigenschaften","Abbrechen","OK","Dateibrowser","Fehler beim Laden der Liste","Fehler beim Laden der Ordner","Sind Sie sicher?","Geben Sie den Verzeichnisnamen ein","Verzeichnis erstellen","Typname","Bild hier hinziehen","Datei löschen","oder hier klicken","Alternativtext","Hochladen","Auswählen","Hintergrund","Text","Oben","Mittig","Unten","Spalte davor einfügen","Spalte danach einfügen","Zeile oberhalb einfügen","Zeile unterhalb einfügen","Tabelle löschen","Zeile löschen","Spalte löschen","Zelle leeren","Zeichen: %d","Wörter: %d","Durchstreichen","Unterstreichen","Hochstellen","Tiefstellen","Auswahl ausschneiden","Alles markieren","Pause","Suche nach","Ersetzen durch","Ersetzen","Einfügen","Wählen Sie den Inhalt zum Einfügen aus","HTML","Fett gedruckt","Kursiv","Bürste","Verknüpfung","Rückgängig machen","Wiederholen","Tabelle","Bild","Radiergummi","Absatz","Schriftgröße","Video","Schriftart","Über","Drucken","Unterstreichen","Durchstreichen","Einzug","Herausstellen","Vollgröße","Schrumpfen","die Linie","Liste von","Nummerierte Liste","Schneiden","Wählen Sie Alle aus","Code einbetten","Link öffnen","Link bearbeiten","Nofollow-Attribut","Link entfernen","Aktualisieren","Bearbeiten","Ansehen","URL","Bearbeiten","Horizontale Ausrichtung","Filter","Sortieren nach geändert","Nach Name sortieren","Nach Größe sortiert","Ordner hinzufügen","Wiederherstellen","Speichern","Speichern als","Größe ändern","Größe anpassen","Breite","Höhe","Seitenverhältnis beibehalten","Ja","Nein","Entfernen","Markieren","Markieren: %s","Vertikale Ausrichtung","Unterteilen","Vereinen","Spalte hinzufügen","Zeile hinzufügen",null,"Löschen","Vertikal unterteilen","Horizontal unterteilen","Rand","Ihr Text ähnelt HTML-Code. Als HTML beibehalten?","Als HTML einfügen?","Original speichern","Als Text einfügen","Nur Text einfügen","Sie können nur Ihre eigenen Bilder bearbeiten. Dieses Bild auf den Host herunterladen?","Das Bild wurde erfolgreich auf den Server hochgeladen!","Palette","In diesem Verzeichnis befinden sich keine Dateien.","Umbenennen","Geben Sie einen neuen Namen ein","Vorschau","Herunterladen","Aus Zwischenablage einfügen","Ihr Browser unterstützt keinen direkten Zugriff auf die Zwischenablage.","Auswahl kopieren","Kopieren","Radius für abgerundete Ecken","Alle anzeigen","Anwenden","Bitte füllen Sie dieses Feld aus","Bitte geben Sie eine Web-Adresse ein","Standard","Kreis","Punkte","Quadrate","Suchen","Suche vorherige","Weitersuchen","Der Inhalt, den Sie einfügen, stammt aus einem Microsoft Word / Excel-Dokument. Möchten Sie das Format erhalten oder bereinigen?","In Word formatierter Text erkannt","Säubern","className (CSS) einfügen","Drücken Sie Alt für benutzerdefinierte Größenanpassung"]

/***/ }),

/***/ 51048:
/***/ (function(module) {

module.exports["default"] = {"Type something":"Start writing...","pencil":"Edit","Quadrate":"Square"}

/***/ }),

/***/ 22999:
/***/ (function(module) {

module.exports["default"] = ["Escriba algo...","Acerca de Jodit","Jodit Editor","Guía de usuario Jodit","contiene ayuda detallada para el uso.","Para información sobre la licencia, por favor visite nuestro sitio:","Compre la versión completa","Copyright © XDSoft.net - Chupurnov Valeriy. Todos los derechos reservados.","Anclar","Abrir en nueva pestaña","Abrir editor en pantalla completa","Limpiar formato","Color de relleno o de letra","Rehacer","Deshacer","Negrita","Cursiva","Insertar lista no ordenada","Insertar lista ordenada","Alinear Centrado","Alinear Justificado","Alinear Izquierda","Alinear Derecha","Insertar línea horizontal","Insertar imagen","Insertar archivo","Insertar video de Youtube/vimeo","Insertar vínculo","Tamaño de letra","Familia de letra","Insertar bloque","Normal","Encabezado 1","Encabezado 2","Encabezado 3","Encabezado 4","Cita","Código","Insertar","Insertar tabla","Disminuir sangría","Aumentar sangría","Seleccionar caracter especial","Insertar caracter especial","Copiar formato","Cambiar modo","Márgenes","arriba","derecha","abajo","izquierda","Estilos CSS","Clases CSS","Alinear","Derecha","Centrado","Izquierda","--No Establecido--","Fuente","Título","Texto Alternativo","Vínculo","Abrir vínculo en nueva pestaña","Imagen","Archivo","Avanzado","Propiedades de imagen","Cancelar","Aceptar","Buscar archivo","Error al cargar la lista","Error al cargar las carpetas","¿Está seguro?","Entre nombre de carpeta","Crear carpeta","Entre el nombre","Soltar imagen","Soltar archivo","o click","Texto alternativo","Subir","Buscar","Fondo","Texto","Arriba","Centro","Abajo","Insertar columna antes","Interar columna después","Insertar fila arriba","Insertar fila debajo","Borrar tabla","Borrar fila","Borrar columna","Vaciar celda","Caracteres: %d","Palabras: %d","Tachado","Subrayado","superíndice","subíndice","Cortar selección","Seleccionar todo","Pausa","Buscar","Reemplazar con","Reemplazar","Pegar","Seleccionar contenido para pegar","HTML","negrita","cursiva","Brocha","Vínculo","deshacer","rehacer","Tabla","Imagen","Borrar","Párrafo","Tamaño de letra","Video","Letra","Acerca de","Imprimir","subrayar","tachar","sangría","quitar sangría","Tamaño completo","encoger","línea horizontal","lista sin ordenar","lista ordenada","Cortar","Seleccionar todo","Incluir código","Abrir vínculo","Editar vínculo","No seguir","Desvincular","Actualizar","Para editar","Ver","URL","Editar","Alineación horizontal","Filtrar","Ordenar por fecha modificación","Ordenar por nombre","Ordenar por tamaño","Agregar carpeta","Resetear","Guardar","Guardar como...","Redimensionar","Recortar","Ancho","Alto","Mantener relación de aspecto","Si","No","Quitar","Seleccionar","Seleccionar: %s","Alineación vertical","Dividir","Mezclar","Agregar columna","Agregar fila",null,"Borrar","Dividir vertical","Dividir horizontal","Borde","El código es similar a HTML. ¿Mantener como HTML?","Pegar como HTML?","Mantener","Insertar como texto","Insertar solo texto","Solo puedes editar tus propias imágenes. ¿Descargar esta imagen en el servidor?","¡La imagen se ha subido correctamente al servidor!","paleta","No hay archivos en este directorio.","renombrar","Ingresa un nuevo nombre","avance","Descargar","Pegar desde el portapapeles","Su navegador no soporta el acceso directo en el portapapeles.","Selección de copia","copia","Radio frontera","Mostrar todos los","Aplicar","Por favor, rellene este campo","Por favor, introduzca una dirección web","Predeterminado","Círculo","Punto","Cuadro","Encontrar","Buscar Anterior","Buscar Siguiente","El contenido pegado proviene de un documento de Microsoft Word/Excel. ¿Desea mantener el formato o limpiarlo?","Pegado desde Word detectado","Limpiar","Insertar nombre de clase","Presione Alt para cambiar el tamaño personalizado"]

/***/ }),

/***/ 34145:
/***/ (function(module) {

module.exports["default"] = ["Ecrivez ici","A propos de Jodit","Editeur Jodit","Guide de l'utilisateur","Aide détaillée à l'utilisation","Consulter la licence sur notre site web:","Acheter la version complète","Copyright © XDSoft.net - Chupurnov Valeriy. Tous droits réservés.","Ancre","Ouvrir dans un nouvel onglet","Ouvrir l'éditeur en pleine page","Supprimer le formattage","Modifier la couleur du fond ou du texte","Refaire","Défaire","Gras","Italique","Liste non ordonnée","Liste ordonnée","Centrer","Justifier","Aligner à gauche ","Aligner à droite","Insérer une ligne horizontale","Insérer une image","Insérer un fichier","Insérer une vidéo","Insérer un lien","Taille des caractères","Famille des caractères","Bloc formatté","Normal","Titre 1","Titre 2","Titre 3","Titre 4","Citation","Code","Insérer","Insérer un tableau","Diminuer le retrait","Retrait plus","Sélectionnez un caractère spécial","Insérer un caractère spécial","Cloner le format","Mode wysiwyg <-> code html","Marges","haut","droite","Bas","gauche","Styles","Classes","Alignement","Droite","Centre","Gauche","--Non disponible--","Source","Titre","Alternative","Lien","Ouvrir le lien dans un nouvel onglet","Image","fichier","Avancé","Propriétés de l'image","Annuler","OK","Explorateur de fichiers","Erreur de liste de chargement","Erreur de dossier de chargement","Etes-vous sûrs ?","Entrer le nom de dossier","Créer un dossier","type de fichier","Coller une image","Déposer un fichier","ou cliquer","Texte de remplacemement","Charger","Chercher","Arrière-plan","Texte","Haut","Milieu","Bas","Insérer une colonne avant","Insérer une colonne après","Insérer une ligne au dessus","Insérer une ligne en dessous","Supprimer le tableau","Supprimer la ligne","Supprimer la colonne","Vider la cellule","Symboles: %d","Mots: %d","Barrer","Souligner","exposant","indice","Couper la sélection","Tout sélectionner","Pause","Rechercher","Remplacer par","Remplacer","Coller","Choisissez le contenu à coller","la source","gras","italique","pinceau","lien","annuler","refaire","tableau","image","gomme","clause","taille de police","Video","police","à propos de l'éditeur","impression","souligné","barré","indentation","retrait","taille réelle","taille conventionnelle","la ligne","Liste","Liste numérotée","Couper","Sélectionner tout",null,"Ouvrir le lien","Modifier le lien","Attribut Nofollow","Supprimer le lien","Mettre à jour","Pour éditer","Voir","URL",null,"Alignement horizontal","Filtre","Trier par modification","Trier par nom","Trier par taille","Créer le dossier","Restaurer","Sauvegarder","Enregistrer sous","Changer la taille","Taille de garniture","Largeur","Hauteur","Garder les proportions","Oui","Non","Supprimer","Mettre en évidence","Mettre en évidence: %s","Alignement vertical","Split","aller","Ajouter une colonne","Ajouter une rangée",null,"Effacer","Split vertical","Split horizontal","Bordure","Votre texte que vous essayez de coller est similaire au HTML. Collez-le en HTML?","Coller en HTML?","Sauvegarder l'original","Coller en tant que texte","Coller le texte seulement","Vous ne pouvez éditer que vos propres images. Téléchargez cette image sur l'hôte?","L'image a été téléchargée avec succès sur le serveur!","Palette","Il n'y a aucun fichier dans ce répertoire.","renommer","Entrez un nouveau nom","Aperçu","Télécharger","Coller à partir du presse-papiers","Votre navigateur ne prend pas en charge l'accès direct au presse-papiers.","Copier la sélection","copie","Rayon des bordures","Afficher tous","Appliquer","Veuillez remplir ce champ","Veuillez entrer une adresse web","Par défaut","Cercle","Point","Quadratique","Trouver","Précédent","Suivant","Le contenu que vous insérez provient d'un document Microsoft Word / Excel. Voulez-vous enregistrer le format ou l'effacer?","C'est peut-être un fragment de Word ou Excel","Nettoyer","Insérer un nom de classe","Appuyez sur Alt pour un redimensionnement personnalisé"]

/***/ }),

/***/ 40272:
/***/ (function(module) {

module.exports["default"] = ["הקלד משהו...","About Jodit","Jodit Editor","Jodit User's Guide","contains detailed help for using.","For information about the license, please go to our website:","Buy full version","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","מקום עיגון","פתח בכרטיסיה חדשה","פתח את העורך בחלון חדש","נקה עיצוב","שנה צבע טקסט או רקע","בצע שוב","בטל","מודגש","נטוי","הכנס רשימת תבליטים","הכנס רשימה ממוספרת","מרכז","ישר ","ישר לשמאל","ישר לימין","הכנס קו אופקי","הכנס תמונה","הכנס קובץ","הכנס סרטון וידאו מYouTube/Vimeo","הכנס קישור","גודל גופן","גופן","מעוצב מראש","רגיל","כותרת 1","כותרת 2","כותרת 3","כותרת 4","ציטוט","קוד","הכנס","הכנס טבלה","הקטן כניסה","הגדל כניסה","בחר תו מיוחד","הכנס תו מיוחד","העתק עיצוב","החלף מצב","ריווח","עליון","ימין","תחתון","שמאל","עיצוב CSS","מחלקת CSS","יישור","ימין","מרכז","שמאל","--לא נקבע--","מקור","כותרת","כיתוב חלופי","קישור","פתח בכרטיסיה חדשה","תמונה","קובץ","מתקדם","מאפייני תמונה","ביטול","אישור","סייר הקבצים","שגיאה  בזמן טעינת רשימה","שגיאה בזמן טעינת תקיות","האם אתה בטוח?","הכנס שם תקיה","צור תקיה","סוג הקובץ","הסר תמונה","הסר קובץ","או לחץ","כיתוב חלופי","העלה","סייר","רקע","טקסט","עליון","מרכז","תחתון","הכנס עמודה לפני","הכנס עמודה אחרי","הכנס שורה מעל","הכנס שורה מתחת","מחק טבלה","מחק שורה","מחק עמודה","רוקן תא","תווים: %d","מילים: %d","קו חוצה","קו תחתון","superscript","subscript","גזור בחירה","בחר הכל","שבירת שורה","חפש","החלף ב","להחליף","הדבק","בחר תוכן להדבקה","HTML","מודגש","נטוי","מברשת","קישור","בטל","בצע שוב","טבלה","תמונה","מחק","פסקה","גודל גופן","וידאו","גופן","עלינו","הדפס","קו תחתון","קו חוצה","הגדל כניסה","הקטן כניסה","גודל מלא","כווץ","קו אופקי","רשימת תבליטים","רשימה ממוספרת","חתוך","בחר הכל","הוסף קוד","פתח קישור","ערוך קישור","ללא מעקב","בטל קישור","עדכן","כדי לערוך","הצג","כתובת","ערוך","יישור אופקי","סנן","מין לפי שינוי","מיין לפי שם","מיין לפי גודל","הוסף תקייה","אפס","שמור","שמור בשם...","שנה גודל","חתוך","רוחב","גובה","שמור יחס","כן","לא","הסר","בחר","נבחר: %s","יישור אנכי","פיצול","מזג","הוסף עמודה","הוסף שורה",null,"מחק","פיצול אנכי","פיצול אופקי","מסגרת","הקוד דומה לHTML, האם להשאיר כHTML","הדבק כHTML","השאר","הכנס כטקסט","הכנס טקסט בלבד","רק קבצים המשוייכים שלך ניתנים לעריכה. האם להוריד את הקובץ?","התמונה עלתה בהצלחה!","לוח","אין קבצים בספריה זו.","הונגרית","הזן שם חדש","תצוגה מקדימה","הורד","להדביק מהלוח","הדפדפן שלך לא תומך גישה ישירה ללוח.","העתק בחירה","העתק","רדיוס הגבול","הצג את כל","החל","נא למלא שדה זה","אנא הזן כתובת אינטרנט","ברירת המחדל","מעגל","נקודה","הריבוע הזה","למצוא","מצא את הקודם","חפש את הבא","התוכן המודבק מגיע ממסמך וורד/אקסל. האם ברצונך להשאיר את העיצוב או לנקותו","זוהתה הדבקה מ\"וורד\"","נקה","הכנס את שם הכיתה","לחץ על אלט לשינוי גודל מותאם אישית"]

/***/ }),

/***/ 2978:
/***/ (function(module) {

module.exports["default"] = ["Írjon be valamit","Joditról","Jodit Editor","Jodit útmutató","további segítséget tartalmaz","További licence információkért látogassa meg a weboldalunkat:","Teljes verzió megvásárlása","Copyright © XDSoft.net - Chupurnov Valeriy. Minden jog fenntartva.","Horgony","Megnyitás új lapon","Megnyitás teljes méretben","Formázás törlése","Háttér/szöveg szín","Újra","Visszavon","Félkövér","Dőlt","Pontozott lista","Számozott lista","Középre zárt","Sorkizárt","Balra zárt","Jobbra zárt","Vízszintes vonal beszúrása","Kép beszúrás","Fájl beszúrás","Youtube videó beszúrása","Link beszúrás","Betűméret","Betűtípus","Formázott blokk beszúrása","Normál","Fejléc 1","Fejléc 2","Fejléc 3","Fejléc 4","Idézet","Kód","Beszúr","Táblázat beszúrása","Behúzás csökkentése","Behúzás növelése","Speciális karakter kiválasztása","Speciális karakter beszúrása","Kép formázása","Nézet váltása","Szegélyek","felső","jobb","alsó","bal","CSS stílusok","CSS osztályok","Igazítás","Jobbra","Középre","Balra","Nincs","Forrás","Cím","Helyettesítő szöveg","Link","Link megnyitása új lapon","Kép","Fájl","Haladó","Kép tulajdonságai","Mégsem","OK","Fájl tallózó","Hiba a lista betöltése közben","Hiba a mappák betöltése közben","Biztosan ezt szeretné?","Írjon be egy mappanevet","Mappa létrehozása","írjon be bevet","Húzza ide a képet","Húzza ide a fájlt","vagy kattintson","Helyettesítő szöveg","Feltölt","Tallóz","Háttér","Szöveg","Fent","Középen","Lent","Oszlop beszúrás elé","Oszlop beszúrás utána","Sor beszúrás fölé","Sor beszúrás alá","Táblázat törlése","Sor törlése","Oszlop törlése","Cella tartalmának törlése","Karakterek száma: %d","Szavak száma: %d","Áthúzott","Aláhúzott","Felső index","Alsó index","Kivágás","Összes kijelölése","Szünet","Keresés","Csere erre","Cserélje ki","Beillesztés","Válasszon tartalmat a beillesztéshez","HTML","Félkövér","Dőlt","Ecset","Link","Visszavon","Újra","Táblázat","Kép","Törlés","Paragráfus","Betűméret","Videó","Betű","Rólunk","Nyomtat","Aláhúzott","Áthúzott","Behúzás","Aussenseiter","Teljes méret","Összenyom","Egyenes vonal","Lista","Számozott lista","Kivág","Összes kijelölése","Beágyazott kód","Link megnyitása","Link szerkesztése","Nincs követés","Link leválasztása","Frissít","Szerkesztés","felülvizsgálat","URL","Szerkeszt","Vízszintes igazítás","Szűrő","Rendezés módosítás szerint","Rendezés név szerint","Rendezés méret szerint","Mappa hozzáadás","Visszaállít","Mentés","Mentés másként...","Átméretezés","Kivág","Szélesség","Magasság","Képarány megtartása","Igen","Nem","Eltávolít","Kijelöl","Kijelöl: %s","Függőleges igazítás","Felosztás","Összevonás","Oszlop hozzáadás","Sor hozzáadás",null,"Törlés","Függőleges felosztás","Vízszintes felosztás","Szegély","A beillesztett szöveg HTML-nek tűnik. Megtartsuk HTML-ként?","Beszúrás HTML-ként","Megtartás","Beszúrás szövegként","Csak szöveg beillesztése","Csak a saját képeit tudja szerkeszteni. Letölti ezt a képet?","Kép sikeresen feltöltve!","Palette","Er zijn geen bestanden in deze map.","átnevezés","Adja meg az új nevet","előnézet","Letöltés","Illessze be a vágólap","A böngésző nem támogatja a közvetlen hozzáférést biztosít a vágólapra.","Másolás kiválasztása","másolás","Határ sugár","Összes","Alkalmazni","Kérjük, töltse ki ezt a mezőt,","Kérjük, írja be a webcímet","Alapértelmezett","Kör","Pont","Quadrate","Találni","Megtalálja Előző","Következő Keresése","A beillesztett tartalom Microsoft Word/Excel dokumentumból származik. Meg szeretné tartani a formátumát?","Word-ből másolt szöveg","Elvetés","Helyezze be az osztály nevét","Nyomja meg az Alt egyéni átméretezés"]

/***/ }),

/***/ 99113:
/***/ (function(module) {

module.exports["default"] = ["Ketik sesuatu","Tentang Jodit","Editor Jodit","Panduan Pengguna Jodit","mencakup detail bantuan penggunaan","Untuk informasi tentang lisensi, silakan kunjungi website:","Beli versi lengkap","Hak Cipta © XDSoft.net - Chupurnov Valeriy. Hak cipta dilindungi undang-undang.","Tautan","Buka di tab baru","Buka editor dalam ukuran penuh","Hapus Pemformatan","Isi warna atau atur warna teks","Ulangi","Batalkan","Tebal","Miring","Sisipkan Daftar Tidak Berurut","Sisipkan Daftar Berurut","Tengah","Penuh","Kiri","Kanan","Sisipkan Garis Horizontal","Sisipkan Gambar","Sisipkan Berkas","Sisipkan video youtube/vimeo","Sisipkan tautan","Ukuran font","Keluarga font","Sisipkan blok format","Normal","Heading 1","Heading 2","Heading 3","Heading 4","Kutip","Kode","Sisipkan","Sisipkan tabel","Kurangi Indentasi","Tambah Indentasi","Pilih Karakter Spesial","Sisipkan Karakter Spesial","Formar warna","Ubah mode","Batas","atas","kanan","bawah","kiri","Gaya","Class","Rata","Kanan","Tengah","Kiri","--Tidak diset--","Src","Judul","Teks alternatif","Tautan","Buka tautan di tab baru","Gambar","berkas","Lanjutan","Properti gambar","Batal","Ya","Penjelajah Berkas","Error ketika memuat list","Error ketika memuat folder","Apakah Anda yakin?","Masukkan nama Direktori","Buat direktori","ketik nama","Letakkan gambar","Letakkan berkas","atau klik","Teks alternatif","Unggah","Jelajahi","Latar Belakang","Teks","Atas","Tengah","Bawah","Sisipkan kolom sebelumnya","Sisipkan kolom setelahnya","Sisipkan baris di atasnya","Sisipkan baris di bawahnya","Hapus tabel","Hapus baris","Hapus kolom","Kosongkan cell","Karakter: %d","Kata: %d","Coret","Garis Bawah","Superskrip","Subskrip","Potong pilihan","Pilih semua","Berhenti","Mencari","Ganti dengan","Mengganti","Paste","Pilih konten untuk dipaste","sumber","tebal","miring","sikat","tautan","batalkan","ulangi","tabel","gambar","penghapus","paragraf","ukuran font","video","font","tentang","cetak","garis bawah","coret","menjorok ke dalam","menjorok ke luar","ukuran penuh","menyusut","hr","ul","ol","potong","Pilih semua","Kode embed","Buka tautan","Edit tautan","No follow","Hapus tautan","Perbarui","pensil","Mata","URL","Edit","Perataan horizontal","Filter","Urutkan berdasarkan perubahan","Urutkan berdasarkan nama","Urutkan berdasarkan ukuran","Tambah folder","Reset","Simpan","Simpan sebagai...","Ubah ukuran","Crop","Lebar","Tinggi","Jaga aspek rasio","Ya","Tidak","Copot","Pilih","Pilih %s","Rata vertikal","Bagi","Gabungkan","Tambah kolom","tambah baris","Lisensi: %s","Hapus","Bagi secara vertikal","Bagi secara horizontal","Bingkai","Kode Anda cenderung ke HTML. Biarkan sebagai HTML?","Paste sebagai HTML","Jaga","Sisipkan sebagai teks","Sisipkan hanya teks","Anda hanya dapat mengedit gambar Anda sendiri. Unduh gambar ini di host?","Gambar telah sukses diunggah ke host!","palet","Tidak ada berkas","ganti nama","Masukkan nama baru","pratinjau","Unduh","Paste dari clipboard","Browser anda tidak mendukung akses langsung ke clipboard.","Copy seleksi","copy","Border radius","Tampilkan semua","Menerapkan","Silahkan mengisi kolom ini","Silahkan masukkan alamat web","Default","Lingkaran","Dot","Kuadrat","Menemukan","Menemukan Sebelumnya","Menemukan Berikutnya","Konten dipaste dari dokumen Microsoft Word/Excel. Apakah Anda ingin tetap menjaga format atau membersihkannya?","Terdeteksi paste dari Word","Bersih","Masukkan nama kelas","Tekan Alt untuk mengubah ukuran kustom"]

/***/ }),

/***/ 51923:
/***/ (function(module) {

module.exports["default"] = ["Scrivi qualcosa...","A proposito di Jodit","Jodit Editor","Guida utente di Jodit","contiene una guida dettagliata per l'uso.","Per informazioni sulla licenza, si prega di visitare il nostro sito:","Acquista la versione completa","Copyright © XDSoft.net - Chupurnov Valeriy. Alle Rechte vorbehalten.","Ancora","Apri in una nuova scheda","Apri l'editor a schermo intero","Formato chiaro","Riempi colore o lettera","Ripristina","Annulla","Grassetto","Corsivo","Inserisci lista non ordinata","Inserisci l'elenco ordinato","Allinea Centra","Allineare Giustificato","Allinea a Sinistra","Allinea a Destra","Inserisci la linea orizzontale","Inserisci immagine","Inserisci un file","Inserisci video Youtube/Vimeo","Inserisci il link","Dimensione del carattere","Tipo di font","Inserisci blocco","Normale","Heading 1","Heading 2","Heading 3","Heading 4","Citazione","Codice","Inserisci","Inserisci tabella","Riduci il rientro","Aumenta il rientro","Seleziona una funzione speciale","Inserisci un carattere speciale","Copia formato","Cambia modo","Margini","su","destra","giù","sinistra","Stili CSS","Classi CSS","Allinea","Destra","Centro","Sinistra","--Non Impostato--","Fonte","Titolo","Testo Alternativo","Link","Apri il link in una nuova scheda","Immagine","Archivio","Avanzato","Proprietà dell'immagine","Annulla","Accetta","Cerca il file","Errore durante il caricamento dell'elenco","Errore durante il caricamento delle cartelle","Sei sicuro?","Inserisci il nome della cartella","Crea cartella","Entre el nombre","Rilascia l'immagine","Rilascia file","o click","Testo alternativo","Carica","Sfoglia","Sfondo","Testo","Su","Centro","Sotto","Inserisci prima la colonna","Inserisci colonna dopo","Inserisci la riga sopra","Inserisci la riga sotto","Elimina tabella","Elimina riga","Elimina colonna","Cella vuota","Caratteri: %d","Parole: %d","Barrato","Sottolineato","indice","deponente","Taglia la selezione","Seleziona tutto","Pausa","Cerca","Sostituisci con","Sostituire","Incolla","Seleziona il contenuto da incollare","HTML","Grassetto","Corsivo","Pennello","Link","Annulla","Ripristina","Tabella","Immagine","Gomma","Paragrafo","Dimensione del carattere","Video","Font","Approposito di","Stampa","Sottolineato","Barrato","trattino","annulla rientro","A grandezza normale","comprimere","linea orizzontale","lista non ordinata","lista ordinata","Taglia","Seleziona tutto","Includi codice","Apri link","Modifica link","Non seguire","Togli link","Aggiornare","Per modificare","Recensione"," URL","Modifica","Allineamento orizzontale","Filtro","Ordina per data di modifica","Ordina per nome","Ordina per dimensione","Aggiungi cartella","Reset","Salva","Salva con nome...","Ridimensiona","Tagliare","Larghezza","Altezza","Mantenere le proporzioni","Si","No","Rimuovere","Seleziona","Seleziona: %s","Allineamento verticala","Dividere","Fondi","Aggiungi colonna","Aggiungi riga",null,"Cancella","Dividere verticalmente","Diviso orizzontale","Bordo","Il codice è simile all'HTML. Mantieni come HTML?","Incolla come HTML?","Mantieni","Inserisci come testo","Inserisci solo il testo","Puoi modificare solo le tue immagini. Scarica questa immagine sul server?","L'immagine è stata caricata con successo sul server!","tavolozza","Non ci sono file in questa directory.","ungherese","Inserisci un nuovo nome","anteprima","Scaricare","Incolla dagli appunti","Il tuo browser non supporta l'accesso diretto agli appunti.","Selezione di copia","copia","Border radius","Mostra tutti","Applicare","Si prega di compilare questo campo","Si prega di inserire un indirizzo web","Di Default","Cerchio","Dot","Quadrate","Trovare","Trova Precedente","Trova Successivo","Il contenuto incollato proviene da un documento Microsoft Word / Excel. Vuoi mantenere il formato o pulirlo?","Incollato da Word rilevato","Pulisci","Inserisci il nome della classe","Premere Alt per il ridimensionamento personalizzato"]

/***/ }),

/***/ 21268:
/***/ (function(module) {

module.exports["default"] = ["なにかタイプしてください","Joditについて","Jodit Editor","Jodit ユーザーズ・ガイド","詳しい使い方","ライセンス詳細についてはJodit Webサイトを確認ください：","フルバージョンを購入","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","Anchor","新しいタブで開く","エディターのサイズ（フル/ノーマル）","書式をクリア","テキストの色","やり直し","元に戻す","太字","斜体","箇条書き","番号付きリスト","中央揃え","両端揃え","左揃え","右揃え","区切り線を挿入","画像を挿入","ファイルを挿入","Youtube/Vimeo 動画","リンクを挿入","フォントサイズ","フォント","テキストのスタイル","指定なし","タイトル1","タイトル2","タイトル3","タイトル4","引用","コード","挿入","表を挿入","インデント減","インデント増","特殊文字を選択","特殊文字を挿入","書式を貼付け","編集モード切替え","マージン","上","右","下","左","スタイル","クラス","配置","右寄せ","中央寄せ","左寄せ","指定なし","ソース","タイトル","代替テキスト","リンク","新しいタブで開く","画像","ファイル","高度な設定","画像のプロパティー","キャンセル","確定","File Browser","Error on load list","Error on load folders","Are you sure?","Enter Directory name","Create directory","type name","ここに画像をドロップ","ここにファイルをドロップ","or クリック","代替テキスト","アップロード","ブラウズ","背景","文字","上","中央","下","左に列を挿入","右に列を挿入","上に行を挿入","下に行を挿入","表を削除","行を削除","列を削除","セルを空にする","文字数: %d","単語数: %d","取り消し線","下線","上付き文字","下付き文字","切り取り","すべて選択","Pause","検索","置換","交換","貼付け","選択した内容を貼付け","source","bold","italic","brush","link","undo","redo","table","image","eraser","paragraph","fontsize","video","font","about","print","underline","strikethrough","indent","outdent","fullsize","shrink","分割線","箇条書き","番号付きリスト","切り取り","すべて選択","埋め込みコード","リンクを開く","リンクを編集","No follow","リンク解除","更新","鉛筆","サイトを確認","URL","編集","水平方向の配置","Filter","Sort by changed","Sort by name","Sort by size","Add folder","リセット","保存","Save as ...","リサイズ","Crop","幅","高さ","縦横比を保持","はい","いいえ","移除","選択","選択: %s","垂直方向の配置","分割","セルの結合","列を追加","行を追加",null,"削除","セルの分割（垂直方向）","セルの分割（水平方向）","境界線","HTMLコードを保持しますか？","HTMLで貼付け","HTMLを保持","HTMLをテキストにする","テキストだけ","You can only edit your own images. Download this image on the host?","The image has been successfully uploaded to the host!","パレット","There are no files","Rename","Enter new name","プレビュー","ダウンロード","貼り付け","お使いのブラウザはクリップボードを使用できません","コピー","copy","角の丸み","全て表示","適用","まだこの分野","を入力してくださいウェブアドレス","デフォルト","白丸","黒丸","四角","見","探前","由来","The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?","Word Paste Detected","Clean","クラス名を挿入","カスタムサイズ変更のためのAltキーを押します"]

/***/ }),

/***/ 11399:
/***/ (function(module) {

module.exports["default"] = ["Type something","About Jodit","Jodit Editor","Jodit User's Guide","contains detailed help for using","For information about the license, please go to our website:","Buy full version","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","Anchor","Open in new tab","Open in fullsize","Clear Formatting","Fill color or set the text color","Redo","Undo","Bold","Italic","Insert Unordered List","Insert Ordered List","Align Center","Align Justify","Align Left","Align Right","Insert Horizontal Line","Insert Image","Insert file","Insert youtube/vimeo video","Insert link","Font size","Font family","Insert format block","Normal","Heading 1","Heading 2","Heading 3","Heading 4","Quote","Code","Insert","Insert table","Decrease Indent","Increase Indent","Select Special Character","Insert Special Character","Paint format","Change mode","Margins","top","right","bottom","left","Styles","Classes","Align","Right","Center","Left","--Not Set--","Src","Title","Alternative","Link","Open link in new tab","Image","file","Advanced","Image properties","Cancel","Ok","File Browser","Error on load list","Error on load folders","Are you sure?","Enter Directory name","Create directory","type name","Drop image","Drop file","or click","Alternative text","Upload","Browse","Background","Text","Top","Middle","Bottom","Insert column before","Insert column after","Insert row above","Insert row below","Delete table","Delete row","Delete column","Empty cell","Chars: %d","Words: %d","Strike through","Underline","superscript","subscript","Cut selection","Select all","Break","Search for","Replace with","Replace","Paste","Choose Content to Paste","source","bold","italic","brush","link","undo","redo","table","image","eraser","paragraph","fontsize","video","font","about","print","underline","strikethrough","indent","outdent","fullsize","shrink","hr","ul","ol","cut","selectall","Embed code","Open link","Edit link","No follow","Unlink","Update","pencil","Eye"," URL","Edit","Horizontal align","Filter","Sort by changed","Sort by name","Sort by size","Add folder","Reset","Save","Save as ...","Resize","Crop","Width","Height","Keep Aspect Ratio","Yes","No","Remove","Select","Select %s","Vertical align","Split","Merge","Add column","Add row","License: %s","Delete","Split vertical","Split horizontal","Border","Your code is similar to HTML. Keep as HTML?","Paste as HTML","Keep","Insert as Text","Insert only Text","You can only edit your own images. Download this image on the host?","The image has been successfully uploaded to the host!","palette","There are no files","Rename","Enter new name","preview","download","Paste from clipboard","Your browser doesn't support direct access to the clipboard.","Copy selection","copy","Border radius","Show all","Apply","Please fill out this field","Please enter a web address","Default","Circle","Dot","Quadrate","Find","Find Previous","Find Next","The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?","Word Paste Detected","Clean","Insert className","Press Alt for custom resizing"]

/***/ }),

/***/ 37289:
/***/ (function(module) {

module.exports["default"] = ["무엇이든 입력하세요","Jodit에 대하여","Jodit Editor","Jodit 사용자 안내서","자세한 도움말이 들어있어요","라이센스에 관해서는 Jodit 웹 사이트를 방문해주세요：","풀 버전 구입하기","© XDSoft.net - Chupurnov Valeriy. 에게 저작권과 모든 권리가 있습니다.","Anchor","새 탭에서 열기","전체 크기로 보기","서식 지우기","글씨 색상","재실행","실행 취소","굵게","기울임","글머리 목록","번호 목록","가운데 정렬","양쪽 정렬","왼쪽 정렬","오른쪽 정렬","수평 구분선 넣기","이미지 넣기","파일 넣기","Youtube/Vimeo 동영상","링크 넣기","글꼴 크기","글꼴","블록 요소 넣기","일반 텍스트","제목 1","제목 2","제목 3","제목 4","인용","코드","붙여 넣기","테이블","들여쓰기 감소","들여쓰기 증가","특수문자 선택","특수문자 입력","페인트 형식","편집모드 변경","마진","위","오른쪽","아래","왼쪽","스타일","클래스","정렬","오른쪽으로","가운데로","왼쪽으로","--지정 안 함--","경로(src)","제목","대체 텍스트(alt)","링크","새 탭에서 열기",null,"파일","고급","이미지 속성","취소","확인","파일 탐색기","목록 불러오기 에러","폴더 불러오기","정말 진행할까요?","디렉토리 이름 입력","디렉토리 생성","이름 입력","이미지 드래그","파일 드래그","혹은 클릭","대체 텍스트","업로드","탐색","배경","텍스트","위","중앙","아래","이전 열에 삽입","다음 열에 삽입","위 행에 삽입","아래 행에 삽입","테이블 삭제","행 삭제","열 삭제","빈 셀","문자수: %d","단어수: %d","취소선","밑줄","윗첨자","아래첨자","선택 잘라내기","모두 선택","구분자","검색","대체하기","대체","붙여넣기","붙여넣을 내용 선택","HTML 소스","볼드","이탤릭","브러시","링크","실행 취소","재실행","테이블","이미지","지우개","문단","글꼴 크기","비디오","글꼴","편집기 정보","프린트","밑줄","취소선","들여쓰기","내어쓰기","전체 화면","일반 화면","구분선","글머리 목록","번호 목록","잘라내기","모두 선택","Embed 코드","링크 열기","링크 편집","No follow","링크 제거","갱신","연필","사이트 확인","URL","편집","수평 정렬","필터","변경일 정렬","이름 정렬","크기 정렬","새 폴더","초기화","저장","새로 저장하기 ...","리사이즈","크롭","가로 길이","세로 높이","비율 유지하기","네","아니오","제거","선택","선택: %s","수직 정렬","분할","셀 병합","열 추가","행 추가","라이센스: %s","삭제","세로 셀 분할","가로 셀 분할","외곽선","HTML 코드로 감지했어요. 코드인채로 붙여넣을까요?","HTML로 붙여넣기","원본 유지","텍스트로 넣기","텍스트만 넣기","외부 이미지는 편집할 수 없어요. 외부 이미지를 다운로드 할까요?","이미지를 무사히 업로드 했어요!","팔레트","파일이 없어요","이름 변경","새 이름 입력","미리보기","다운로드","클립보드 붙여넣기","사용중인 브라우저가 클립보드 접근을 지원하지 않아요.","선택 복사","복사","둥근 테두리","모두 보기","적용","이 항목을 입력해주세요!","웹 URL을 입력해주세요.","기본","원","점","정사각형","찾기","이전 찾기","다음 찾기","Microsoft Word/Excel 문서로 감지했어요. 서식을 유지한채로 붙여넣을까요?","Word 붙여넣기 감지","지우기","className 입력","사용자 지정 크기 조정에 대 한 고도 누르십시오"]

/***/ }),

/***/ 26501:
/***/ (function(module) {

module.exports["default"] = ["Бичээд үзээрэй","Jodit-ын талаар ","Jodit програм","Jodit гарын авлага","хэрэглээний талаар дэлгэрэнгүй мэдээллийг агуулна","Лицензийн мэдээллийг манай вэб хуудаснаас авна уу:","Бүрэн хувилбар худалдан авах","Зохиогчийн эрх хамгаалагдсан © XDSoft.net - Chupurnov Valeriy. Бүх эрхийг эзэмшинэ.","Холбоо барих","Шинэ табаар нээх","Бүтэн дэлгэцээр нээх","Форматыг арилгах","Өнгөөр будах эсвэл текстийн өнгө сонгох","Дахих","Буцаах","Тод","Налуу","Тэмдэгт жагсаалт нэмэх","Дугаарт жагсаалт нэмэх","Голлож байрлуулах","Тэгшитгэн байрлуулах","Зүүнд байрлуулах","Баруунд байрлуулах","Хэвтээ зураас нэмэх","Зураг нэмэх","Файл нэмэх","Youtube/Vimeo видео нэмэх","Холбоос нэмэх","Фонтын хэмжээ","Фонтын бүл","Блок нэмэх","Хэвийн","Гарчиг 1","Гарчиг 2","Гарчиг 3","Гарчиг 4","Ишлэл","Код","Оруулах","Хүснэгт оруулах","Доголын зай хасах","Доголын зай нэмэх","Тусгай тэмдэгт сонгох","Тусгай тэмдэгт нэмэх","Зургийн формат","Горим өөрчлөх","Цаасны зай","Дээрээс","Баруунаас","Доороос","Зүүнээс","CSS стиль","CSS анги","Байрлуулах","Баруун","Төв","Зүүн","--Тодорхойгүй--","Эх үүсвэр","Гарчиг","Алтернатив текст","Холбоос","Холбоосыг шинэ хавтсанд нээх","Зураг","Файл","Дэвшилтэт","Зургийн үзүүлэлт","Цуцлах","Ok","Файлын цонх","Жагсаалт татах үед алдаа гарлаа","Хавтас татах үед алдаа гарлаа","Итгэлтэй байна уу?","Хавтсын нэр оруулах","Хавтас үүсгэх","Нэр бичих","Зураг буулгах","Файл буулгах","эсвэл товш","Алтернатив текст","Байршуулах","Үзэх","Арын зураг","Текст","Дээр","Дунд","Доор","Урд нь багана нэмэх","Ард нь багана нэмэх","Дээр нь мөр нэмэх","Доор нь мөр нэмэх","Хүснэгт устгах","Мөр устгах","Багана устгах","Нүд цэвэрлэх","Тэмдэгт: %d","Үг: %d","Дээгүүр зураас","Доогуур зураас","Дээд индекс","Доод индекс","Сонголтыг таслах","Бүгдийг сонго","Мөрийг таслах","Хайх","Үүгээр солих","Солих","Буулгах","Буулгах агуулгаа сонгоно уу","Эх үүсвэр","Тод","Налуу","Будах","Холбоос","Буцаах","Дахих","Хүснэгт","Зураг","Баллуур","Параграф","Фонтын хэмжээ","Видео","Фонт","Тухай","Хэвлэх","Доогуур зураас","Дээгүүр зураас","Догол нэмэх","Догол багасгах","Бүтэн дэлгэц","Багасга","Хаалт","Тэмдэгт жагсаалт","Дугаарласан жагсаалт","Таслах","Бүгдийг сонго","Код оруулах","Холбоос нээх","Холбоос засах","Nofollow özelliği","Холбоос салгах","Шинэчлэх","Засах","Нүд","URL","Засах","Хэвтээ эгнүүлэх","Шүүх","Сүүлд өөрчлөгдсөнөөр жагсаах","Нэрээр жагсаах","Хэмжээгээр жагсаах","Хавтас нэмэх","Буцаах","Хадгалах","Өөрөөр хадгалах","Хэмжээг өөрчил","Тайрах","Өргөн","Өндөр","Харьцааг хадгал","Тийм","Үгүй","Арилга","Сонго","Сонго: %s","Босоо эгнүүлэх","Задлах","Нэгтгэх","Багана нэмэх","Мөр нэмэх",null,"Устгах","Баганаар задлах","Мөрөөр задлах","Хүрээ","Таны код HTML кодтой адил байна. HTML форматаар үргэлжлүүлэх үү?","HTML байдлаар буулгах","Хадгалах","Текст байдлаар нэмэх","Зөвхөн текст оруулах","Та зөвхөн өөрийн зургуудаа янзлах боломжтой. Энэ зургийг өөр лүүгээ татмаар байна уу?","Зургийг хост руу амжилттай хадгалсан","Палет","Энд ямар нэг файл алга","Шинээр нэрлэх","Шинэ нэр оруулна уу","Урьдчилан харах","Татах","Самбараас хуулах ","Энэ вэб хөтчөөс самбарт хандах эрх алга.","Сонголтыг хуул","Хуулах","Хүрээний радиус","Бүгдийг харуулах","Хэрэгжүүл","Энэ талбарыг бөглөнө үү","Вэб хаягаа оруулна уу","Үндсэн","Дугуй","Цэг","Дөрвөлжин","Хайх","Өмнөхийг ол","Дараагийнхийг ол","Буулгасан агуулга Microsoft Word/Excel форматтай байна. Энэ форматыг хэвээр хадгалах уу эсвэл арилгах уу?","Word байдлаар буулгасан байна","Цэвэрлэх","Бүлгийн нэрээ оруулна уу","Хэмжээсийг шинээр өөчрлөхийн тулд Alt товчин дээр дарна уу"]

/***/ }),

/***/ 17084:
/***/ (function(module) {

module.exports["default"] = ["Begin met typen..","Over Jodit","Jodit Editor","Jodit gebruikershandleiding","bevat gedetailleerde informatie voor gebruik.","Voor informatie over de licentie, ga naar onze website:","Volledige versie kopen","Copyright © XDSoft.net - Chupurnov Valeriy. Alle rechten voorbehouden.","Anker","Open in nieuwe tab","Editor in volledig scherm openen","Opmaak verwijderen","Vulkleur of tekstkleur aanpassen","Opnieuw","Ongedaan maken","Vet","Cursief","Geordende list invoegen","Ongeordende lijst invoegen","Centreren","Uitlijnen op volledige breedte","Links uitlijnen","Rechts uitlijnen","Horizontale lijn invoegen","Afbeelding invoegen","Bestand invoegen","Youtube/Vimeo video invoegen","Link toevoegen","Tekstgrootte","Lettertype","Format blok invoegen","Normaal","Koptekst 1","Koptekst 2","Koptekst 3","Koptekst 4","Citaat","Code","Invoegen","Tabel invoegen","Inspringing verkleinen","Inspringing vergroten","Symbool selecteren","Symbool invoegen","Opmaak kopieren","Modus veranderen","Marges","Boven","Rechts","Onder","Links","CSS styles","CSS classes","Uitlijning","Rechts","Gecentreerd","Links","--Leeg--","Src","Titel","Alternatieve tekst","Link","Link in nieuwe tab openen","Afbeelding","Bestand","Geavanceerd","Afbeeldingseigenschappen","Annuleren","OK","Bestandsbrowser","Fout bij het laden van de lijst","Fout bij het laden van de mappenlijst","Weet je het zeker?","Geef de map een naam","Map aanmaken","Type naam","Sleep hier een afbeelding naartoe","Sleep hier een bestand naartoe","of klik","Alternatieve tekst","Uploaden","Bladeren","Achtergrond","Tekst","Boven","Midden","Onder","Kolom invoegen (voor)","Kolom invoegen (na)","Rij invoegen (boven)","Rij invoegen (onder)","Tabel verwijderen","Rij verwijderen","Kolom verwijderen","Cel leegmaken","Tekens: %d","Woorden: %d","Doorstrepen","Onderstrepen","Superscript","Subscript","Selectie knippen","Selecteer alles","Enter","Zoek naar","Vervangen door","Vervangen","Plakken","Kies content om te plakken","Broncode","vet","cursief","kwast","link","ongedaan maken","opnieuw","tabel","afbeelding","gum","paragraaf","lettergrootte","video","lettertype","over","afdrukken","onderstreept","doorgestreept","inspringen","minder inspringen","volledige grootte","kleiner maken","horizontale lijn","lijst","genummerde lijst","knip","alles selecteren","Embed code","link openen","link aanpassen","niet volgen","link verwijderen","Updaten","Om te bewerken","Recensie"," URL","Bewerken","Horizontaal uitlijnen","Filteren","Sorteren op wijzigingsdatum","Sorteren op naam","Sorteren op grootte","Map toevoegen","Herstellen","Opslaan","Opslaan als ...","Grootte aanpassen","Bijknippen","Breedte","Hoogte","Verhouding behouden","Ja","Nee","Verwijderen","Selecteren","Selecteer: %s","Verticaal uitlijnen","Splitsen","Samenvoegen","Kolom toevoegen","Rij toevoegen",null,"Verwijderen","Verticaal splitsen","Horizontaal splitsen","Rand","Deze code lijkt op HTML. Als HTML behouden?","Invoegen als HTML","Origineel behouden","Als tekst invoegen","Als onopgemaakte tekst invoegen","Je kunt alleen je eigen afbeeldingen aanpassen. Deze afbeelding downloaden?","De afbeelding is succesvol geüploadet!","Palette","Er zijn geen bestanden in deze map.","Hongaars","Voer een nieuwe naam in","voorvertoning","Download","Plakken van klembord","Uw browser ondersteunt geen directe toegang tot het klembord.","Selectie kopiëren","kopiëren","Border radius","Toon alle","Toepassing","Vul dit veld","Voer een webadres","Standaard","Cirkel","Dot","Quadrate","Zoeken","Vorige Zoeken","Volgende Zoeken","De geplakte tekst is afkomstig van een Microsoft Word/Excel document. Wil je de opmaak behouden of opschonen?","Word-tekst gedetecteerd","Opschonen","Voeg de klassenaam in","Druk op Alt voor aangepaste grootte"]

/***/ }),

/***/ 96891:
/***/ (function(module) {

module.exports["default"] = ["Napisz coś","O Jodit","Edytor Jodit","Instrukcja Jodit","zawiera szczegółowe informacje dotyczące użytkowania.","Odwiedź naszą stronę, aby uzyskać więcej informacji na temat licencji:","Zakup pełnej wersji","Copyright © XDSoft.net - Chupurnov Valeriy. Wszystkie prawa zastrzeżone.","Kotwica","Otwórz w nowej zakładce","Otwórz edytor w pełnym rozmiarze","Wyczyść formatowanie","Kolor wypełnienia lub ustaw kolor tekstu","Ponów","Cofnij","Pogrubienie","Kursywa","Wstaw listę wypunktowaną","Wstaw listę numeryczną","Wyśrodkuj","Wyjustuj","Wyrównaj do lewej","Wyrównaj do prawej","Wstaw linię poziomą","Wstaw grafikę","Wstaw plik","Wstaw film Youtube/vimeo","Wstaw link","Rozmiar tekstu","Krój czcionki","Wstaw formatowanie","Normalne","Nagłówek 1","Nagłówek 2","Nagłówek 3","Nagłówek 4","Cytat","Kod","Wstaw","Wstaw tabelę","Zmniejsz wcięcie","Zwiększ wcięcie","Wybierz znak specjalny","Wstaw znak specjalny","Malarz formatów","Zmień tryb","Marginesy","Górny","Prawy","Dolny","Levy","Style CSS","Klasy CSS","Wyrównanie","Prawa","środek","Lewa","brak","Źródło","Tytuł","Tekst alternatywny","Link","Otwórz w nowej zakładce","Grafika","Plik","Zaawansowane","Właściwości grafiki","Anuluj","OK","Przeglądarka plików","Błąd ładowania listy plików","Błąd ładowania folderów","Czy jesteś pewien?","Wprowadź nazwę folderu","Utwórz folder","wprowadź nazwę","Upuść plik graficzny","Upuść plik","lub kliknij tu","Tekst alternatywny","Wczytaj","Przeglądaj","Tło","Treść","Góra","Środek","Dół","Wstaw kolumnę przed","Wstaw kolumnę po","Wstaw wiersz przed","Wstaw wiersz po","Usuń tabelę","Usuń wiersz","Usuń kolumnę","Wyczyść komórkę","Znaki: %d","Słowa: %d","Przekreślenie","Podkreślenie","indeks górny","index dolny","Wytnij zaznaczenie","Wybierz wszystko","Przerwa","Szukaj","Zamień na","Wymienić","Wklej","Wybierz zawartość do wklejenia","HTML","pogrubienie","kursywa","pędzel","link","cofnij","ponów","tabela","grafika","wyczyść","akapit","rozmiar czcionki","wideo","czcionka","O programie","drukuj","podkreślenie","przekreślenie","wcięcie","wycięcie","pełen rozmiar","przytnij","linia pozioma","lista","lista numerowana","wytnij","zaznacz wszystko","Wstaw kod","otwórz link","edytuj link","Atrybut no-follow","Usuń link","Aktualizuj","edytuj","szukaj","URL","Edytuj","Wyrównywanie w poziomie","Filtruj","Sortuj wg zmiany","Sortuj wg nazwy","Sortuj wg rozmiaru","Dodaj folder","wyczyść","zapisz","zapisz jako","Zmień rozmiar","Przytnij","Szerokość","Wysokość","Zachowaj proporcje","Tak","Nie","Usuń","Wybierz","Wybierz: %s","Wyrównywanie w pionie","Podziel","Scal","Dodaj kolumnę","Dodaj wiersz",null,"Usuń","Podziel w pionie","Podziel w poziomie","Obramowanie","Twój kod wygląda jak HTML. Zachować HTML?","Wkleić jako HTML?","Oryginalny tekst","Wstaw jako tekst","Wstaw tylko treść","Możesz edytować tylko swoje grafiki. Czy chcesz pobrać tą grafikę?","Grafika została pomyślnienie dodana na serwer","Paleta","Brak plików.","zmień nazwę","Wprowadź nową nazwę","podgląd","pobierz","Wklej ze schowka","Twoja przeglądarka nie obsługuje schowka","Kopiuj zaznaczenie","kopiuj","Zaokrąglenie krawędzi","Pokaż wszystkie","Zastosuj","Proszę wypełnić to pole","Proszę, wpisz adres sieci web","Domyślnie","Koło","Punkt","Kwadrat","Znaleźć","Znaleźć Poprzednie","Znajdź Dalej","Wklejany tekst pochodzi z dokumentu Microsoft Word/Excel. Chcesz zachować ten format czy wyczyścić go? ","Wykryto tekst w formacie Word","Wyczyść","Wstaw nazwę zajęć","Naciśnij Alt, aby zmienić rozmiar"]

/***/ }),

/***/ 31211:
/***/ (function(module) {

module.exports["default"] = ["Escreva algo...","Sobre o Jodit","Editor Jodit","Guia de usuário Jodit","contém ajuda detalhada para o uso.","Para informação sobre a licença, por favor visite nosso site:","Compre a versão completa","Copyright © XDSoft.net - Chupurnov Valeriy. Todos os direitos reservados.","Link","Abrir em nova aba","Abrir editor em tela cheia","Limpar formatação","Cor de preenchimento ou cor do texto","Refazer","Desfazer","Negrito","Itálico","Inserir lista não ordenada","Inserir lista ordenada","Centralizar","Justificar","Alinhar à Esquerda","Alinhar à Direita","Inserir linha horizontal","Inserir imagem","Inserir arquivo","Inserir vídeo do Youtube/vimeo","Inserir link","Tamanho da letra","Fonte","Inserir bloco","Normal","Cabeçalho 1","Cabeçalho 2","Cabeçalho 3","Cabeçalho 4","Citação","Código","Inserir","Inserir tabela","Diminuir recuo","Aumentar recuo","Selecionar caractere especial","Inserir caractere especial","Copiar formato","Mudar modo","Margens","cima","direta","baixo","esquerda","Estilos CSS","Classes CSS","Alinhamento","Direita","Centro","Esquerda","--Não Estabelecido--","Fonte","Título","Texto Alternativo","Link","Abrir link em nova aba","Imagem","Arquivo","Avançado","Propriedades da imagem","Cancelar","Ok","Procurar arquivo","Erro ao carregar a lista","Erro ao carregar as pastas","Você tem certeza?","Escreva o nome da pasta","Criar pasta","Escreva seu nome","Soltar imagem","Soltar arquivo","ou clique","Texto alternativo","Upload","Explorar","Fundo","Texto","Cima","Meio","Baixo","Inserir coluna antes","Inserir coluna depois","Inserir linha acima","Inserir linha abaixo","Excluir tabela","Excluir linha","Excluir coluna","Limpar célula","Caracteres: %d","Palavras: %d","Tachado","Sublinhar","sobrescrito","subscrito","Cortar seleção","Selecionar tudo","Pausa","Procurar por","Substituir com","Substituir","Colar","Escolher conteúdo para colar","HTML","negrito","itálico","pincel","link","desfazer","refazer","tabela","imagem","apagar","parágrafo","tamanho da letra","vídeo","fonte","Sobre de","Imprimir","sublinhar","tachado","recuar","diminuir recuo","Tamanho completo","diminuir","linha horizontal","lista não ordenada","lista ordenada","Cortar","Selecionar tudo","Incluir código","Abrir link","Editar link","Não siga","Remover link","Atualizar","Editar","Visualizar","URL","Editar","Alinhamento horizontal","filtrar","Ordenar por modificação","Ordenar por nome","Ordenar por tamanho","Adicionar pasta","Resetar","Salvar","Salvar como...","Redimensionar","Recortar","Largura","Altura","Manter a proporção","Sim","Não","Remover","Selecionar","Selecionar: %s","Alinhamento vertical","Dividir","Mesclar","Adicionar coluna","Adicionar linha",null,"Excluir","Dividir vertical","Dividir horizontal","Borda","Seu código é similar ao HTML. Manter como HTML?","Colar como HTML?","Manter","Inserir como Texto","Inserir somente o Texto","Você só pode editar suas próprias imagens. Baixar essa imagem pro servidor?","A imagem foi enviada com sucesso para o servidor!","Palette","Não há arquivos nesse diretório.","Húngara","Digite um novo nome","preview","Baixar","Colar da área de transferência","O seu navegador não oferece suporte a acesso direto para a área de transferência.","Selecção de cópia","cópia","Border radius","Mostrar todos os","Aplicar","Por favor, preencha este campo","Por favor introduza um endereço web","Padrão","Círculo","Ponto","Quadro","Encontrar","Encontrar Anteriores","Localizar Próxima","O conteúdo colado veio de um documento Microsoft Word/Excel. Você deseja manter o formato ou limpa-lo?","Colado do Word Detectado","Limpar","Insira o nome da classe","Pressione Alt para redimensionamento personalizado"]

/***/ }),

/***/ 31109:
/***/ (function(module) {

module.exports["default"] = ["Напишите что-либо","О Jodit","Редактор Jodit","Jodit Руководство пользователя","содержит детальную информацию по использованию","Для получения сведений о лицензии , пожалуйста, перейдите на наш сайт:","Купить полную версию","Авторские права © XDSoft.net - Чупурнов Валерий. Все права защищены.","Анкор","Открывать ссылку в новой вкладке","Открыть редактор в полном размере","Очистить форматирование","Цвет заливки или цвет текста","Повтор","Отмена","Жирный","Наклонный","Вставка маркированного списка","Вставить нумерованный список","Выровнять по центру","Выровнять по ширине","Выровнять по левому краю","Выровнять по правому краю","Вставить горизонтальную линию","Вставить изображение","Вставить файл","Вставьте видео","Вставить ссылку","Размер шрифта","Шрифт","Вставить блочный элемент","Нормальный текст","Заголовок 1","Заголовок 2","Заголовок 3","Заголовок 4","Цитата","Код","Вставить","Вставить таблицу","Уменьшить отступ","Увеличить отступ","Выберите специальный символ","Вставить специальный символ","Формат краски","Источник","Отступы","сверху","справа","снизу","слева","Стили","Классы","Выравнивание","По правому краю","По центру","По левому краю","--не устанавливать--","src","Заголовок","Альтернативный текст (alt)","Ссылка","Открывать ссылку в новом окне",null,"Файл","Расширенные","Свойства изображения","Отмена","Ок","Браузер файлов","Ошибка при загрузке списка изображений","Ошибка при загрузке списка директорий","Вы уверены?","Введите название директории","Создать директорию","введите название","Перетащите сюда изображение","Перетащите сюда файл","или нажмите","Альтернативный текст","Загрузка","Сервер","Фон","Текст"," К верху","По середине","К низу","Вставить столбец до","Вставить столбец после","Вставить ряд выше","Вставить ряд ниже","Удалить таблицу","Удалять ряд","Удалить столбец","Очистить ячейку","Символов: %d","Слов: %d","Перечеркнуть","Подчеркивание","верхний индекс","индекс","Вырезать","Выделить все","Разделитель","Найти","Заменить на","Заменить","Вставить","Выбрать контент для вставки","HTML","жирный","курсив","заливка","ссылка","отменить","повторить","таблица","Изображение","очистить","параграф","размер шрифта","видео","шрифт","о редакторе","печать","подчеркнутый","перечеркнутый","отступ","выступ","во весь экран","обычный размер","линия","Список","Нумерованный список","Вырезать","Выделить все","Код","Открыть ссылку","Редактировать ссылку","Атрибут nofollow","Убрать ссылку","Обновить","Редактировать","Просмотр","URL","Редактировать","Горизонтальное выравнивание","Фильтр","По изменению","По имени","По размеру","Добавить папку","Восстановить","Сохранить","Сохранить как","Изменить размер","Обрезать размер","Ширина","Высота","Сохранять пропорции","Да","Нет","Удалить","Выделить","Выделить: %s","Вертикальное выравнивание","Разделить","Объединить в одну","Добавить столбец","Добавить строку","Лицензия: %s","Удалить","Разделить по вертикали","Разделить по горизонтали","Рамка","Ваш текст, который вы пытаетесь вставить похож на HTML. Вставить его как HTML?","Вставить как HTML?","Сохранить оригинал","Вставить как текст","Вставить только текст","Вы можете редактировать только свои собственные изображения. Загрузить это изображение на ваш сервер?","Изображение успешно загружено на сервер!","палитра","В данном каталоге нет файлов","Переименовать","Введите новое имя","Предпросмотр","Скачать","Вставить из буфера обмена","Ваш браузер не поддерживает прямой доступ к буферу обмена.","Скопировать выделенное","копия","Радиус границы","Показать все","Применить","Пожалуйста, заполните это поле","Пожалуйста, введите веб-адрес","По умолчанию","Круг","Точка","Квадрат","Найти","Найти Предыдущие","Найти Далее","Контент который вы вставляете поступает из документа Microsoft Word / Excel. Вы хотите сохранить формат или очистить его?","Возможно это фрагмент Word или Excel","Почистить","Вставить название класса","Нажмите Alt для изменения пользовательского размера"]

/***/ }),

/***/ 79375:
/***/ (function(module) {

module.exports["default"] = ["Bir şeyler yaz","Jodit Hakkında","Jodit Editor","Jodit Kullanım Kılavuzu","kullanım için detaylı bilgiler içerir","Lisans hakkında bilgi için lütfen web sitemize gidin:","Tam versiyonunu satın al","Copyright © XDSoft.net - Chupurnov Valeriy. Tüm hakları saklıdır.","Bağlantı","Yeni sekmede aç","Editörü tam ekranda aç","Stili temizle","Renk doldur veya yazı rengi seç","Yinele","Geri Al","Kalın","İtalik","Sırasız Liste Ekle","Sıralı Liste Ekle","Ortala","Kenarlara Yasla","Sola Yasla","Sağa Yasla","Yatay Çizgi Ekle","Resim Ekle","Dosya Ekle","Youtube/Vimeo Videosu Ekle","Bağlantı Ekle","Font Boyutu","Font Ailesi","Blok Ekle","Normal","Başlık 1","Başlık 2","Başlık 3","Başlık 4","Alıntı","Kod","Ekle","Tablo Ekle","Girintiyi Azalt","Girintiyi Arttır","Özel Karakter Seç","Özel Karakter Ekle","Resim Biçimi","Mod Değiştir","Boşluklar","Üst","Sağ","Alt","Sol","CSS Stilleri","CSS Sınıfları","Hizalama","Sağ","Ortalı","Sol","Belirsiz","Kaynak","Başlık","Alternatif Yazı","Link","Bağlantıyı yeni sekmede aç","Resim","Dosya","Gelişmiş","Resim özellikleri","İptal","Tamam","Dosya Listeleyici","Liste yüklenirken hata oluştu","Klasörler yüklenirken hata oluştur","Emin misiniz?","Dizin yolu giriniz","Dizin oluştur","İsim yaz","Resim bırak","Dosya bırak","veya tıkla","Alternatif yazı","Yükle","Gözat","Arka plan","Yazı","Üst","Orta","Aşağı","Öncesine kolon ekle","Sonrasına kolon ekle","Üstüne satır ekle","Altına satır ekle","Tabloyu sil","Satırı sil","Kolonu sil","Hücreyi temizle","Harfler: %d","Kelimeler: %d","Üstü çizili","Alt çizgi","Üst yazı","Alt yazı","Seçilimi kes","Tümünü seç","Satır sonu","Ara","Şununla değiştir","Değiştir","Yapıştır","Yapıştırılacak içerik seç","Kaynak","Kalın","italik","Fırça","Bağlantı","Geri al","Yinele","Tablo","Resim","Silgi","Paragraf","Font boyutu","Video","Font","Hakkında","Yazdır","Alt çizgi","Üstü çizili","Girinti","Çıkıntı","Tam ekran","Küçült","Ayraç","Sırasız liste","Sıralı liste","Kes","Tümünü seç","Kod ekle","Bağlantıyı aç","Bağlantıyı düzenle","Nofollow özelliği","Bağlantıyı kaldır","Güncelle","Düzenlemek için","Yorumu","URL","Düzenle","Yatay hizala","Filtre","Değişime göre sırala","İsme göre sırala","Boyuta göre sırala","Klasör ekle","Sıfırla","Kaydet","Farklı kaydet","Boyutlandır","Kırp","Genişlik","Yükseklik","En boy oranını koru","Evet","Hayır","Sil","Seç","Seç: %s","Dikey hizala","Ayır","Birleştir","Kolon ekle","Satır ekle",null,"Sil","Dikey ayır","Yatay ayır","Kenarlık","Kodunuz HTML koduna benziyor. HTML olarak devam etmek ister misiniz?","HTML olarak yapıştır","Sakla","Yazı olarak ekle","Sadece yazıyı ekle","Sadece kendi resimlerinizi düzenleyebilirsiniz. Bu görseli kendi hostunuza indirmek ister misiniz?","Görsel başarıyla hostunuza yüklendi","Palet","Bu dizinde dosya yok","Yeniden isimlendir","Yeni isim girin","Ön izleme","İndir","Panodan yapıştır ","Tarayıcınız panoya doğrudan erişimi desteklemiyor.","Seçimi kopyala","Kopyala","Sınır yarıçapı","Tümünü Göster","Uygula","Lütfen bu alanı doldurun","Lütfen bir web adresi girin","Varsayılan","Daire","Nokta","Kare","Bul","Öncekini Bul","Sonrakini Bul","Der Inhalt, den Sie einfügen, stammt aus einem Microsoft Word / Excel-Dokument. Möchten Sie das Format erhalten oder löschen?","Word biçiminde yapıştırma algılandı","Temizle","Sınıf adı girin","Özel yeniden boyutlandırma için Alt tuşuna basın"]

/***/ }),

/***/ 21042:
/***/ (function(module) {

module.exports["default"] = ["输入一些内容","关于Jodit","Jodit Editor","开发者指南","使用帮助","有关许可证的信息，请访问我们的网站：","购买完整版本","Copyright © XDSoft.net - Chupurnov Valeriy. 版权所有","Anchor","在新窗口打开","全屏编辑","清除样式","颜色","重做","撤销","粗体","斜体","符号列表","编号","居中","对齐文本","左对齐","右对齐","分割线","图片","文件","视频","链接","字号","字体","格式块","默认","标题1","标题2","标题3","标题4","引用","代码","插入","表格","减少缩进","增加缩进","选择特殊符号","特殊符号","格式复制","改变模式","外边距（Margins）","top","right","bottom","left","样式","Classes","对齐方式","居右","居中","居左","无","Src","Title","Alternative","Link","在新窗口打开链接","图片","file","高级","图片属性","取消","确定","文件管理","加载list错误","加载folders错误","你确定吗？","输入路径","创建路径","type name","拖动图片到此","拖动文件到此","或点击","Alternative text","上传","浏览","背景色","文字","顶部","中间","底部","在之前插入列","在之后插入列","在之前插入行","在之后插入行","删除表格","删除行","删除列","清除内容","字符数: %d","单词数: %d","删除线","下划线","上标","下标","剪切","全选","Break","查找","替换为","替换","粘贴","选择内容并粘贴","源码","粗体","斜体","颜色","链接","撤销","重做","表格","图片","橡皮擦","段落","字号","视频","字体","关于","打印","下划线","上出现","增加缩进","减少缩进","全屏","收缩","分割线","无序列表","顺序列表","剪切","全选","嵌入代码","打开链接","编辑链接","No follow","取消链接","更新","铅笔","预览","URL","编辑","水平对齐","筛选","修改时间排序","名称排序","大小排序","新建文件夹","重置","保存","保存为","调整大小","剪切","宽","高","保持长宽比","是","不","移除","选择","选择: %s","垂直对齐","拆分","合并","添加列","添加行",null,"删除","垂直拆分","水平拆分","边框","你粘贴的文本是一段html代码，是否保留源格式","html粘贴","保留源格式","把html代码视为普通文本","只保留文本","你只能编辑你自己的图片。Download this image on the host?","图片上传成功","调色板","此目录中沒有文件。","重命名","输入新名称","预览","下载","粘贴从剪贴板","你浏览器不支持直接访问的剪贴板。","复制选中内容","复制","边界半径","显示所有","应用","请填写这个字段","请输入一个网址","默认","圆圈","点","方形","搜索","查找上一个","查找下一个","正在粘贴 Word/Excel 的文本，是否保留源格式？","文本粘贴","匹配目标格式","插入班级名称","按Alt自定义调整大小"]

/***/ }),

/***/ 73895:
/***/ (function(module) {

module.exports["default"] = ["輸入一些內容","關於Jodit","Jodit Editor","開發者指南","使用幫助","有關許可證的信息，請訪問我們的網站：","購買完整版本","Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.","Anchor","在新窗口打開","全屏編輯","清除樣式","顏色","重做","撤銷","粗體","斜體","符號列表","編號","居中","對齊文本","左對齊","右對齊","分割線","圖片","文件","youtube/vimeo 影片","鏈接","字號","字體","格式塊","文本","標題1","標題2","標題3","標題4","引用","代碼","插入","表格","減少縮進","增加縮進","選擇特殊符號","特殊符號","格式複製","改變模式","外邊距（Margins）","top","right","bottom","left","樣式","Classes","對齊方式","居右","居中","居左","無","Src","Title","替代","Link","在新窗口打開鏈接","圖片","file","高級","圖片屬性","取消","確定","文件管理","加載list錯誤","加載folders錯誤","你確定嗎？","輸入路徑","創建路徑","type name","拖動圖片到此","拖動文件到此","或點擊","替代文字","上傳","瀏覽","背景色","文字","頂部","中間","底部","在之前插入列","在之後插入列","在之前插入行","在之後插入行","刪除表格","刪除行","刪除列","清除內容","字符數: %d","單詞數: %d","刪除線","下劃線","上標","下標","剪切","全選","Pause","查找","替換為","แทนที่","黏貼","選擇內容並黏貼","源碼","粗體","斜體","顏色","鏈接","撤銷","重做","表格","圖片","橡皮擦","段落","字號","影片","字體","關於","打印","下劃線","上出現","增加縮進","減少縮進","全屏","收縮","分割線","無序列表","順序列表","剪切","全選","嵌入代碼","打開鏈接","編輯鏈接","No follow","取消連結","更新","鉛筆","回顧","URL",null,"水平對齊","篩選","修改時間排序","名稱排序","大小排序","新建文件夾","重置","保存","保存為","調整大小","Crop","寬","高","保存長寬比","是","不","移除","選擇","選擇: %s","垂直對齊","拆分","合併","添加列","添加行",null,"刪除","垂直拆分","水平拆分","邊框","你黏貼的文本是一段html代碼，是否保留源格式","html黏貼","保留源格式","把html代碼視為普通文本","只保留文本","你只能編輯你自己的圖片。是否下載此圖片到本地?","圖片上傳成功","調色板","此目錄中沒有文件。","重命名","輸入新名稱","預覽","下載","從剪貼板貼上","瀏覽器無法存取剪贴板。","複製已選取項目","複製","邊框圓角","顯示所有","應用","ได้โปรดกรอกช่องข้อมูลนี้","โปรดเติมที่อยู่บนเว็บ","ค่าปริยาย","วงกลม","จุด","Quadrate","ค้นหา","ค้นหาก่อนหน้านี้","ค้นหาถัดไป","正在黏貼 Word/Excel 的文本，是否保留源格式？","文本黏貼","匹配目標格式","ใส่ชื่อคลาส","กดอัลท์สำหรับการปรับขนาดที่กำหนดเอง"]

/***/ }),

/***/ 3610:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M621 1280h595v-595zm-45-45l595-595h-595v595zm1152 77v192q0 14-9 23t-23 9h-224v224q0 14-9 23t-23 9h-192q-14 0-23-9t-9-23v-224h-864q-14 0-23-9t-9-23v-864h-224q-14 0-23-9t-9-23v-192q0-14 9-23t23-9h224v-224q0-14 9-23t23-9h192q14 0 23 9t9 23v224h851l246-247q10-9 23-9t23 9q9 10 9 23t-9 23l-247 246v851h224q14 0 23 9t9 23z\"/> </svg>"

/***/ }),

/***/ 56170:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 24 24\"> <g transform=\"translate(-251.000000, -443.000000)\"> <g transform=\"translate(215.000000, 119.000000)\"/> <path d=\"M252,448 L256,448 L256,444 L252,444 L252,448 Z M257,448 L269,448 L269,446 L257,446 L257,448 Z M257,464 L269,464 L269,462 L257,462 L257,464 Z M270,444 L270,448 L274,448 L274,444 L270,444 Z M252,462 L252,466 L256,466 L256,462 L252,462 Z M270,462 L270,466 L274,466 L274,462 L270,462 Z M254,461 L256,461 L256,449 L254,449 L254,461 Z M270,461 L272,461 L272,449 L270,449 L270,461 Z\"/> </g> </svg>"

/***/ }),

/***/ 95331:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' x=\"0px\" y=\"0px\" viewBox=\"0 0 459 459\"> <g> <path d=\"M229.5,0C102,0,0,102,0,229.5S102,459,229.5,459c20.4,0,38.25-17.85,38.25-38.25c0-10.2-2.55-17.85-10.2-25.5 c-5.1-7.65-10.2-15.3-10.2-25.5c0-20.4,17.851-38.25,38.25-38.25h45.9c71.4,0,127.5-56.1,127.5-127.5C459,91.8,357,0,229.5,0z M89.25,229.5c-20.4,0-38.25-17.85-38.25-38.25S68.85,153,89.25,153s38.25,17.85,38.25,38.25S109.65,229.5,89.25,229.5z M165.75,127.5c-20.4,0-38.25-17.85-38.25-38.25S145.35,51,165.75,51S204,68.85,204,89.25S186.15,127.5,165.75,127.5z M293.25,127.5c-20.4,0-38.25-17.85-38.25-38.25S272.85,51,293.25,51s38.25,17.85,38.25,38.25S313.65,127.5,293.25,127.5z M369.75,229.5c-20.4,0-38.25-17.85-38.25-38.25S349.35,153,369.75,153S408,170.85,408,191.25S390.15,229.5,369.75,229.5z\" /> </g> </svg>"

/***/ }),

/***/ 84279:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 1792 1792\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M1088 1256v240q0 16-12 28t-28 12h-240q-16 0-28-12t-12-28v-240q0-16 12-28t28-12h240q16 0 28 12t12 28zm316-600q0 54-15.5 101t-35 76.5-55 59.5-57.5 43.5-61 35.5q-41 23-68.5 65t-27.5 67q0 17-12 32.5t-28 15.5h-240q-15 0-25.5-18.5t-10.5-37.5v-45q0-83 65-156.5t143-108.5q59-27 84-56t25-76q0-42-46.5-74t-107.5-32q-65 0-108 29-35 25-107 115-13 16-31 16-12 0-25-8l-164-125q-13-10-15.5-25t5.5-28q160-266 464-266 80 0 161 31t146 83 106 127.5 41 158.5z\"/> </svg>"

/***/ }),

/***/ 11257:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 128 128\" xml:space=\"preserve\"> <polygon points=\"112.4560547,23.3203125 112.4560547,75.8154297 31.4853516,75.8154297 31.4853516,61.953125 16.0131836,72.6357422 0.5410156,83.3164063 16.0131836,93.9990234 31.4853516,104.6796875 31.4853516,90.8183594 112.4560547,90.8183594 112.4560547,90.8339844 127.4589844,90.8339844 127.4589844,23.3203125\"/> </svg>"

/***/ }),

/***/ 25141:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M747 1521q74 32 140 32 376 0 376-335 0-114-41-180-27-44-61.5-74t-67.5-46.5-80.5-25-84-10.5-94.5-2q-73 0-101 10 0 53-.5 159t-.5 158q0 8-1 67.5t-.5 96.5 4.5 83.5 12 66.5zm-14-746q42 7 109 7 82 0 143-13t110-44.5 74.5-89.5 25.5-142q0-70-29-122.5t-79-82-108-43.5-124-14q-50 0-130 13 0 50 4 151t4 152q0 27-.5 80t-.5 79q0 46 1 69zm-541 889l2-94q15-4 85-16t106-27q7-12 12.5-27t8.5-33.5 5.5-32.5 3-37.5.5-34v-65.5q0-982-22-1025-4-8-22-14.5t-44.5-11-49.5-7-48.5-4.5-30.5-3l-4-83q98-2 340-11.5t373-9.5q23 0 68.5.5t67.5.5q70 0 136.5 13t128.5 42 108 71 74 104.5 28 137.5q0 52-16.5 95.5t-39 72-64.5 57.5-73 45-84 40q154 35 256.5 134t102.5 248q0 100-35 179.5t-93.5 130.5-138 85.5-163.5 48.5-176 14q-44 0-132-3t-132-3q-106 0-307 11t-231 12z\"/> </svg>"

/***/ }),

/***/ 24557:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M384 1662l17-85q6-2 81.5-21.5t111.5-37.5q28-35 41-101 1-7 62-289t114-543.5 52-296.5v-25q-24-13-54.5-18.5t-69.5-8-58-5.5l19-103q33 2 120 6.5t149.5 7 120.5 2.5q48 0 98.5-2.5t121-7 98.5-6.5q-5 39-19 89-30 10-101.5 28.5t-108.5 33.5q-8 19-14 42.5t-9 40-7.5 45.5-6.5 42q-27 148-87.5 419.5t-77.5 355.5q-2 9-13 58t-20 90-16 83.5-6 57.5l1 18q17 4 185 31-3 44-16 99-11 0-32.5 1.5t-32.5 1.5q-29 0-87-10t-86-10q-138-2-206-2-51 0-143 9t-121 11z\"/> </svg>"

/***/ }),

/***/ 10859:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1760 896q14 0 23 9t9 23v64q0 14-9 23t-23 9h-1728q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h1728zm-1277-64q-28-35-51-80-48-97-48-188 0-181 134-309 133-127 393-127 50 0 167 19 66 12 177 48 10 38 21 118 14 123 14 183 0 18-5 45l-12 3-84-6-14-2q-50-149-103-205-88-91-210-91-114 0-182 59-67 58-67 146 0 73 66 140t279 129q69 20 173 66 58 28 95 52h-743zm507 256h411q7 39 7 92 0 111-41 212-23 55-71 104-37 35-109 81-80 48-153 66-80 21-203 21-114 0-195-23l-140-40q-57-16-72-28-8-8-8-22v-13q0-108-2-156-1-30 0-68l2-37v-44l102-2q15 34 30 71t22.5 56 12.5 27q35 57 80 94 43 36 105 57 59 22 132 22 64 0 139-27 77-26 122-86 47-61 47-129 0-84-81-157-34-29-137-71z\"/> </svg>"

/***/ }),

/***/ 9813:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1025 1369v167h-248l-159-252-24-42q-8-9-11-21h-3l-9 21q-10 20-25 44l-155 250h-258v-167h128l197-291-185-272h-137v-168h276l139 228q2 4 23 42 8 9 11 21h3q3-9 11-21l25-42 140-228h257v168h-125l-184 267 204 296h109zm639 217v206h-514l-4-27q-3-45-3-46 0-64 26-117t65-86.5 84-65 84-54.5 65-54 26-64q0-38-29.5-62.5t-70.5-24.5q-51 0-97 39-14 11-36 38l-105-92q26-37 63-66 80-65 188-65 110 0 178 59.5t68 158.5q0 66-34.5 118.5t-84 86-99.5 62.5-87 63-41 73h232v-80h126z\"/> </svg>"

/***/ }),

/***/ 93395:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1025 1369v167h-248l-159-252-24-42q-8-9-11-21h-3l-9 21q-10 20-25 44l-155 250h-258v-167h128l197-291-185-272h-137v-168h276l139 228q2 4 23 42 8 9 11 21h3q3-9 11-21l25-42 140-228h257v168h-125l-184 267 204 296h109zm637-679v206h-514l-3-27q-4-28-4-46 0-64 26-117t65-86.5 84-65 84-54.5 65-54 26-64q0-38-29.5-62.5t-70.5-24.5q-51 0-97 39-14 11-36 38l-105-92q26-37 63-66 83-65 188-65 110 0 178 59.5t68 158.5q0 56-24.5 103t-62 76.5-81.5 58.5-82 50.5-65.5 51.5-30.5 63h232v-80h126z\"/> </svg>"

/***/ }),

/***/ 98213:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M176 223q-37-2-45-4l-3-88q13-1 40-1 60 0 112 4 132 7 166 7 86 0 168-3 116-4 146-5 56 0 86-2l-1 14 2 64v9q-60 9-124 9-60 0-79 25-13 14-13 132 0 13 .5 32.5t.5 25.5l1 229 14 280q6 124 51 202 35 59 96 92 88 47 177 47 104 0 191-28 56-18 99-51 48-36 65-64 36-56 53-114 21-73 21-229 0-79-3.5-128t-11-122.5-13.5-159.5l-4-59q-5-67-24-88-34-35-77-34l-100 2-14-3 2-86h84l205 10q76 3 196-10l18 2q6 38 6 51 0 7-4 31-45 12-84 13-73 11-79 17-15 15-15 41 0 7 1.5 27t1.5 31q8 19 22 396 6 195-15 304-15 76-41 122-38 65-112 123-75 57-182 89-109 33-255 33-167 0-284-46-119-47-179-122-61-76-83-195-16-80-16-237v-333q0-188-17-213-25-36-147-39zm1488 1409v-64q0-14-9-23t-23-9h-1472q-14 0-23 9t-9 23v64q0 14 9 23t23 9h1472q14 0 23-9t9-23z\"/> </svg>"

/***/ }),

/***/ 20026:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M36 4h-24c-2.21 0-4 1.79-4 4v32c0 2.21 1.79 4 4 4h24c2.21 0 4-1.79 4-4v-32c0-2.21-1.79-4-4-4zm-24 4h10v16l-5-3-5 3v-16z\"/> </svg>"

/***/ }),

/***/ 66911:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M832 1408l336-384h-768l-336 384h768zm1013-1077q15 34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38 0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38 0 69.5 20.5t47.5 54.5z\"/> </svg>"

/***/ }),

/***/ 50018:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M24.89,6.61H22.31V4.47A2.47,2.47,0,0,0,19.84,2H6.78A2.47,2.47,0,0,0,4.31,4.47V22.92a2.47,2.47,0,0,0,2.47,2.47H9.69V27.2a2.8,2.8,0,0,0,2.8,2.8h12.4a2.8,2.8,0,0,0,2.8-2.8V9.41A2.8,2.8,0,0,0,24.89,6.61ZM6.78,23.52a.61.61,0,0,1-.61-.6V4.47a.61.61,0,0,1,.61-.6H19.84a.61.61,0,0,1,.61.6V6.61h-8a2.8,2.8,0,0,0-2.8,2.8V23.52Zm19,3.68a.94.94,0,0,1-.94.93H12.49a.94.94,0,0,1-.94-.93V9.41a.94.94,0,0,1,.94-.93h12.4a.94.94,0,0,1,.94.93Z\"/> <path d=\"M23.49,13.53h-9.6a.94.94,0,1,0,0,1.87h9.6a.94.94,0,1,0,0-1.87Z\"/> <path d=\"M23.49,17.37h-9.6a.94.94,0,1,0,0,1.87h9.6a.94.94,0,1,0,0-1.87Z\"/> <path d=\"M23.49,21.22h-9.6a.93.93,0,1,0,0,1.86h9.6a.93.93,0,1,0,0-1.86Z\"/> </svg>"

/***/ }),

/***/ 99738:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M960 896q26 0 45 19t19 45-19 45-45 19-45-19-19-45 19-45 45-19zm300 64l507 398q28 20 25 56-5 35-35 51l-128 64q-13 7-29 7-17 0-31-8l-690-387-110 66q-8 4-12 5 14 49 10 97-7 77-56 147.5t-132 123.5q-132 84-277 84-136 0-222-78-90-84-79-207 7-76 56-147t131-124q132-84 278-84 83 0 151 31 9-13 22-22l122-73-122-73q-13-9-22-22-68 31-151 31-146 0-278-84-82-53-131-124t-56-147q-5-59 15.5-113t63.5-93q85-79 222-79 145 0 277 84 83 52 132 123t56 148q4 48-10 97 4 1 12 5l110 66 690-387q14-8 31-8 16 0 29 7l128 64q30 16 35 51 3 36-25 56zm-681-260q46-42 21-108t-106-117q-92-59-192-59-74 0-113 36-46 42-21 108t106 117q92 59 192 59 74 0 113-36zm-85 745q81-51 106-117t-21-108q-39-36-113-36-100 0-192 59-81 51-106 117t21 108q39 36 113 36 100 0 192-59zm178-613l96 58v-11q0-36 33-56l14-8-79-47-26 26q-3 3-10 11t-12 12q-2 2-4 3.5t-3 2.5zm224 224l96 32 736-576-128-64-768 431v113l-160 96 9 8q2 2 7 6 4 4 11 12t11 12l26 26zm704 416l128-64-520-408-177 138q-2 3-13 7z\"/> </svg>"

/***/ }),

/***/ 9185:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"> <path stroke-width=\"0\" d=\"M10.5 20H2a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h1V3l2.03-.4a3 3 0 0 1 5.94 0L13 3v1h1a2 2 0 0 1 2 2v1h-2V6h-1v1H3V6H2v12h5v2h3.5zM8 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2 4h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-8a2 2 0 0 1-2-2v-8c0-1.1.9-2 2-2zm0 2v8h8v-8h-8z\"/> </svg>"

/***/ }),

/***/ 8619:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 18 18\"> <g fill-rule=\"evenodd\" stroke=\"none\" stroke-width=\"1\"> <g transform=\"translate(-381.000000, -381.000000)\"> <g transform=\"translate(381.000000, 381.000000)\"> <path d=\"M0,2 L2,2 L2,0 C0.9,0 0,0.9 0,2 L0,2 Z M0,10 L2,10 L2,8 L0,8 L0,10 L0,10 Z M4,18 L6,18 L6,16 L4,16 L4,18 L4,18 Z M0,6 L2,6 L2,4 L0,4 L0,6 L0,6 Z M10,0 L8,0 L8,2 L10,2 L10,0 L10,0 Z M16,0 L16,2 L18,2 C18,0.9 17.1,0 16,0 L16,0 Z M2,18 L2,16 L0,16 C0,17.1 0.9,18 2,18 L2,18 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M6,0 L4,0 L4,2 L6,2 L6,0 L6,0 Z M8,18 L10,18 L10,16 L8,16 L8,18 L8,18 Z M16,10 L18,10 L18,8 L16,8 L16,10 L16,10 Z M16,18 C17.1,18 18,17.1 18,16 L16,16 L16,18 L16,18 Z M16,6 L18,6 L18,4 L16,4 L16,6 L16,6 Z M16,14 L18,14 L18,12 L16,12 L16,14 L16,14 Z M12,18 L14,18 L14,16 L12,16 L12,18 L12,18 Z M12,2 L14,2 L14,0 L12,0 L12,2 L12,2 Z M4,14 L14,14 L14,4 L4,4 L4,14 L4,14 Z M6,6 L12,6 L12,12 L6,12 L6,6 L6,6 Z\"/> </g> </g> </g> </svg>"

/***/ }),

/***/ 73894:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M896 1152q0-36-20-69-1-1-15.5-22.5t-25.5-38-25-44-21-50.5q-4-16-21-16t-21 16q-7 23-21 50.5t-25 44-25.5 38-15.5 22.5q-20 33-20 69 0 53 37.5 90.5t90.5 37.5 90.5-37.5 37.5-90.5zm512-128q0 212-150 362t-362 150-362-150-150-362q0-145 81-275 6-9 62.5-90.5t101-151 99.5-178 83-201.5q9-30 34-47t51-17 51.5 17 33.5 47q28 93 83 201.5t99.5 178 101 151 62.5 90.5q81 127 81 275z\"/> </svg>"

/***/ }),

/***/ 83301:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 16 16\"> <path stroke-width=\"0\" d=\"M16 9v-6h-3v-1c0-0.55-0.45-1-1-1h-11c-0.55 0-1 0.45-1 1v3c0 0.55 0.45 1 1 1h11c0.55 0 1-0.45 1-1v-1h2v4h-9v2h-0.5c-0.276 0-0.5 0.224-0.5 0.5v5c0 0.276 0.224 0.5 0.5 0.5h2c0.276 0 0.5-0.224 0.5-0.5v-5c0-0.276-0.224-0.5-0.5-0.5h-0.5v-1h9zM12 3h-11v-1h11v1z\"/> </svg>"

/***/ }),

/***/ 84142:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M789 559l-170 450q33 0 136.5 2t160.5 2q19 0 57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29 31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15 34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 4-.5 13t-.5 13q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0 12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11 2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0 22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58 0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z\"/> </svg>"

/***/ }),

/***/ 57292:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1744 1408q33 0 42 18.5t-11 44.5l-126 162q-20 26-49 26t-49-26l-126-162q-20-26-11-44.5t42-18.5h80v-1024h-80q-33 0-42-18.5t11-44.5l126-162q20-26 49-26t49 26l126 162q20 26 11 44.5t-42 18.5h-80v1024h80zm-1663-1279l54 27q12 5 211 5 44 0 132-2t132-2q36 0 107.5.5t107.5.5h293q6 0 21 .5t20.5 0 16-3 17.5-9 15-17.5l42-1q4 0 14 .5t14 .5q2 112 2 336 0 80-5 109-39 14-68 18-25-44-54-128-3-9-11-48t-14.5-73.5-7.5-35.5q-6-8-12-12.5t-15.5-6-13-2.5-18-.5-16.5.5q-17 0-66.5-.5t-74.5-.5-64 2-71 6q-9 81-8 136 0 94 2 388t2 455q0 16-2.5 71.5t0 91.5 12.5 69q40 21 124 42.5t120 37.5q5 40 5 50 0 14-3 29l-34 1q-76 2-218-8t-207-10q-50 0-151 9t-152 9q-3-51-3-52v-9q17-27 61.5-43t98.5-29 78-27q19-42 19-383 0-101-3-303t-3-303v-117q0-2 .5-15.5t.5-25-1-25.5-3-24-5-14q-11-12-162-12-33 0-93 12t-80 26q-19 13-34 72.5t-31.5 111-42.5 53.5q-42-26-56-44v-383z\"/> </svg>"

/***/ }),

/***/ 18019:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"><path d=\"M1534 189v73q0 29-18.5 61t-42.5 32q-50 0-54 1-26 6-32 31-3 11-3 64v1152q0 25-18 43t-43 18h-108q-25 0-43-18t-18-43v-1218h-143v1218q0 25-17.5 43t-43.5 18h-108q-26 0-43.5-18t-17.5-43v-496q-147-12-245-59-126-58-192-179-64-117-64-259 0-166 88-286 88-118 209-159 111-37 417-37h479q25 0 43 18t18 43z\"/></svg>"

/***/ }),

/***/ 45146:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 24 24\"> <path stroke-width=\"0\" d=\"M22,20.6L3.4,2H8V0H0v8h2V3.4L20.6,22H16v2h8v-8h-2V20.6z M16,0v2h4.7l-6.3,6.3l1.4,1.4L22,3.5V8h2V0H16z M8.3,14.3L2,20.6V16H0v8h8v-2H3.5l6.3-6.3L8.3,14.3z\"/> </svg>"

/***/ }),

/***/ 53576:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M896 960v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45zm755-672q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23z\"/> </svg>"

/***/ }),

/***/ 14655:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1600 736v192q0 40-28 68t-68 28h-1216q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h1216q40 0 68 28t28 68z\"/> </svg>"

/***/ }),

/***/ 53477:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M576 576q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1024 384v448h-1408v-192l320-320 160 160 512-512zm96-704h-1600q-13 0-22.5 9.5t-9.5 22.5v1216q0 13 9.5 22.5t22.5 9.5h1600q13 0 22.5-9.5t9.5-22.5v-1216q0-13-9.5-22.5t-22.5-9.5zm160 32v1216q0 66-47 113t-113 47h-1600q-66 0-113-47t-47-113v-1216q0-66 47-113t113-47h1600q66 0 113 47t47 113z\"/> </svg>"

/***/ }),

/***/ 90053:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M352 832q0 14-9 23l-288 288q-9 9-23 9-13 0-22.5-9.5t-9.5-22.5v-576q0-13 9.5-22.5t22.5-9.5q14 0 23 9l288 288q9 9 9 23zm1440 480v192q0 13-9.5 22.5t-22.5 9.5h-1728q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1728q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1088q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1088q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1728q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1728q13 0 22.5 9.5t9.5 22.5z\"/> </svg>"

/***/ }),

/***/ 72230:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M384 544v576q0 13-9.5 22.5t-22.5 9.5q-14 0-23-9l-288-288q-9-9-9-23t9-23l288-288q9-9 23-9 13 0 22.5 9.5t9.5 22.5zm1408 768v192q0 13-9.5 22.5t-22.5 9.5h-1728q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1728q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1088q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1088q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1088q13 0 22.5 9.5t9.5 22.5zm0-384v192q0 13-9.5 22.5t-22.5 9.5h-1728q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1728q13 0 22.5 9.5t9.5 22.5z\"/> </svg>"

/***/ }),

/***/ 78321:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 18.151 18.151\" xmlns=\"http://www.w3.org/2000/svg\"> <g> <path stroke-width=\"0\" d=\"M6.237,16.546H3.649V1.604h5.916v5.728c0.474-0.122,0.968-0.194,1.479-0.194 c0.042,0,0.083,0.006,0.125,0.006V0H2.044v18.15h5.934C7.295,17.736,6.704,17.19,6.237,16.546z\"/> <path stroke-width=\"0\" d=\"M11.169,8.275c-2.723,0-4.938,2.215-4.938,4.938s2.215,4.938,4.938,4.938s4.938-2.215,4.938-4.938 S13.892,8.275,11.169,8.275z M11.169,16.81c-1.983,0-3.598-1.612-3.598-3.598c0-1.983,1.614-3.597,3.598-3.597 s3.597,1.613,3.597,3.597C14.766,15.198,13.153,16.81,11.169,16.81z\"/> <polygon stroke-width=\"0\" points=\"11.792,11.073 10.502,11.073 10.502,12.578 9.03,12.578 9.03,13.868 10.502,13.868 10.502,15.352 11.792,15.352 11.792,13.868 13.309,13.868 13.309,12.578 11.792,12.578 \"/> </g> </svg>"

/***/ }),

/***/ 77654:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 432 432\"> <g> <polygon points=\"203.688,96 0,96 0,144 155.688,144 \"/> <polygon points=\"155.719,288 0,288 0,336 203.719,336 \"/> <path d=\"M97.844,230.125c-3.701-3.703-5.856-8.906-5.856-14.141s2.154-10.438,5.856-14.141l9.844-9.844H0v48h107.719 L97.844,230.125z\"/> <polygon points=\"232,176 232,96 112,216 232,336 232,256 432,256 432,176\"/> </g> </svg>"

/***/ }),

/***/ 43371:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 312 312\"> <g transform=\"translate(0.000000,312.000000) scale(0.100000,-0.100000)\" stroke=\"none\"> <path d=\"M50 3109 c0 -7 -11 -22 -25 -35 l-25 -23 0 -961 0 -961 32 -29 32 -30 501 -2 500 -3 3 -502 2 -502 31 -30 31 -31 958 0 958 0 23 25 c13 13 30 25 37 25 9 0 12 199 12 960 0 686 -3 960 -11 960 -6 0 -24 12 -40 28 l-29 27 -503 5 -502 5 -5 502 -5 503 -28 29 c-15 16 -27 34 -27 40 0 8 -274 11 -960 11 -710 0 -960 -3 -960 -11z m1738 -698 l2 -453 -40 -40 c-22 -22 -40 -43 -40 -47 0 -4 36 -42 79 -85 88 -87 82 -87 141 -23 l26 27 455 -2 454 -3 0 -775 0 -775 -775 0 -775 0 -3 450 -2 449 47 48 47 48 -82 80 c-44 44 -84 80 -87 80 -3 0 -25 -18 -48 -40 l-41 -40 -456 2 -455 3 -3 765 c-1 421 0 771 3 778 3 10 164 12 777 10 l773 -3 3 -454z\"/> <path d=\"M607 2492 c-42 -42 -77 -82 -77 -87 0 -6 86 -96 190 -200 105 -104 190 -197 190 -205 0 -8 -41 -56 -92 -107 -65 -65 -87 -94 -77 -98 8 -3 138 -4 289 -3 l275 3 3 275 c1 151 0 281 -3 289 -4 10 -35 -14 -103 -82 -54 -53 -103 -97 -109 -97 -7 0 -99 88 -206 195 -107 107 -196 195 -198 195 -3 0 -39 -35 -82 -78z\"/> <path d=\"M1470 1639 c-47 -49 -87 -91 -89 -94 -5 -6 149 -165 160 -165 9 0 189 179 189 188 0 12 -154 162 -165 161 -6 0 -48 -41 -95 -90z\"/> <path d=\"M1797 1303 c-9 -8 -9 -568 0 -576 4 -4 50 36 103 88 54 52 101 95 106 95 5 0 95 -85 199 -190 104 -104 194 -190 200 -190 6 0 46 36 90 80 l79 79 -197 196 c-108 108 -197 199 -197 203 0 4 45 52 99 106 55 55 98 103 95 108 -6 10 -568 11 -577 1z\"/> </g> </svg>"

/***/ }),

/***/ 44563:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 48 48\"> <path d=\"M6 42h4v-4h-4v4zm4-28h-4v4h4v-4zm-4 20h4v-4h-4v4zm8 8h4v-4h-4v4zm-4-36h-4v4h4v-4zm8 0h-4v4h4v-4zm16 0h-4v4h4v-4zm-8 8h-4v4h4v-4zm0-8h-4v4h4v-4zm12 28h4v-4h-4v4zm-16 8h4v-4h-4v4zm-16-16h36v-4h-36v4zm32-20v4h4v-4h-4zm0 12h4v-4h-4v4zm-16 16h4v-4h-4v4zm8 8h4v-4h-4v4zm8 0h4v-4h-4v4z\"/> <path d=\"M0 0h48v48h-48z\" fill=\"none\"/> </svg>"

/***/ }),

/***/ 53183:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 48 48\"> <path d=\"M6 18h4v-4h-4v4zm0-8h4v-4h-4v4zm8 32h4v-4h-4v4zm0-16h4v-4h-4v4zm-8 0h4v-4h-4v4zm0 16h4v-4h-4v4zm0-8h4v-4h-4v4zm8-24h4v-4h-4v4zm24 24h4v-4h-4v4zm-16 8h4v-36h-4v36zm16 0h4v-4h-4v4zm0-16h4v-4h-4v4zm0-20v4h4v-4h-4zm0 12h4v-4h-4v4zm-8-8h4v-4h-4v4zm0 32h4v-4h-4v4zm0-16h4v-4h-4v4z\"/> <path d=\"M0 0h48v48h-48z\" fill=\"none\"/> </svg>"

/***/ }),

/***/ 18548:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M512 1248v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm0-512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm1280 512v192q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h960q40 0 68 28t28 68zm-1280-1024v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm1280 512v192q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h960q40 0 68 28t28 68zm0-512v192q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h960q40 0 68 28t28 68z\"/> </svg>"

/***/ }),

/***/ 52242:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M512 1248v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm0-512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm640 512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm-640-1024v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm640 512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm640 512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm-640-1024v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm640 512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68zm0-512v192q0 40-28 68t-68 28h-320q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h320q40 0 68 28t28 68z\"/> </svg>"

/***/ }),

/***/ 87498:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 1344v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45z\"/> </svg>"

/***/ }),

/***/ 7986:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M5.09668 6.99707H7.17358L4.17358 3.99707L1.17358 6.99707H3.09668V17.0031H1.15881L4.15881 20.0031L7.15881 17.0031H5.09668V6.99707Z\"/> <path d=\"M22.8412 7H8.84119V5H22.8412V7Z\"/> <path d=\"M22.8412 11H8.84119V9H22.8412V11Z\"/> <path d=\"M8.84119 15H22.8412V13H8.84119V15Z\"/> <path d=\"M22.8412 19H8.84119V17H22.8412V19Z\"/> </svg>"

/***/ }),

/***/ 23075:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1520 1216q0-40-28-68l-208-208q-28-28-68-28-42 0-72 32 3 3 19 18.5t21.5 21.5 15 19 13 25.5 3.5 27.5q0 40-28 68t-68 28q-15 0-27.5-3.5t-25.5-13-19-15-21.5-21.5-18.5-19q-33 31-33 73 0 40 28 68l206 207q27 27 68 27 40 0 68-26l147-146q28-28 28-67zm-703-705q0-40-28-68l-206-207q-28-28-68-28-39 0-68 27l-147 146q-28 28-28 67 0 40 28 68l208 208q27 27 68 27 42 0 72-31-3-3-19-18.5t-21.5-21.5-15-19-13-25.5-3.5-27.5q0-40 28-68t68-28q15 0 27.5 3.5t25.5 13 19 15 21.5 21.5 18.5 19q33-31 33-73zm895 705q0 120-85 203l-147 146q-83 83-203 83-121 0-204-85l-206-207q-83-83-83-203 0-123 88-209l-88-88q-86 88-208 88-120 0-204-84l-208-208q-84-84-84-204t85-203l147-146q83-83 203-83 121 0 204 85l206 207q83 83 83 203 0 123-88 209l88 88q86-88 208-88 120 0 204 84l208 208q84 84 84 204z\"/> </svg>"

/***/ }),

/***/ 10655:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M503 1271l-256 256q-10 9-23 9-12 0-23-9-9-10-9-23t9-23l256-256q10-9 23-9t23 9q9 10 9 23t-9 23zm169 41v320q0 14-9 23t-23 9-23-9-9-23v-320q0-14 9-23t23-9 23 9 9 23zm-224-224q0 14-9 23t-23 9h-320q-14 0-23-9t-9-23 9-23 23-9h320q14 0 23 9t9 23zm1264 128q0 120-85 203l-147 146q-83 83-203 83-121 0-204-85l-334-335q-21-21-42-56l239-18 273 274q27 27 68 27.5t68-26.5l147-146q28-28 28-67 0-40-28-68l-274-275 18-239q35 21 56 42l336 336q84 86 84 204zm-617-724l-239 18-273-274q-28-28-68-28-39 0-68 27l-147 146q-28 28-28 67 0 40 28 68l274 274-18 240q-35-21-56-42l-336-336q-84-86-84-204 0-120 85-203l147-146q83-83 203-83 121 0 204 85l334 335q21 21 42 56zm633 84q0 14-9 23t-23 9h-320q-14 0-23-9t-9-23 9-23 23-9h320q14 0 23 9t9 23zm-544-544v320q0 14-9 23t-23 9-23-9-9-23v-320q0-14 9-23t23-9 23 9 9 23zm407 151l-256 256q-11 9-23 9t-23-9q-9-10-9-23t9-23l256-256q10-9 23-9t23 9q9 10 9 23t-9 23z\"/> </svg>"

/***/ }),

/***/ 15476:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path stroke-width=\"0\" d=\"M381 1620q0 80-54.5 126t-135.5 46q-106 0-172-66l57-88q49 45 106 45 29 0 50.5-14.5t21.5-42.5q0-64-105-56l-26-56q8-10 32.5-43.5t42.5-54 37-38.5v-1q-16 0-48.5 1t-48.5 1v53h-106v-152h333v88l-95 115q51 12 81 49t30 88zm2-627v159h-362q-6-36-6-54 0-51 23.5-93t56.5-68 66-47.5 56.5-43.5 23.5-45q0-25-14.5-38.5t-39.5-13.5q-46 0-81 58l-85-59q24-51 71.5-79.5t105.5-28.5q73 0 123 41.5t50 112.5q0 50-34 91.5t-75 64.5-75.5 50.5-35.5 52.5h127v-60h105zm1409 319v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-14 9-23t23-9h1216q13 0 22.5 9.5t9.5 22.5zm-1408-899v99h-335v-99h107q0-41 .5-122t.5-121v-12h-2q-8 17-50 54l-71-76 136-127h106v404h108zm1408 387v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-14 9-23t23-9h1216q13 0 22.5 9.5t9.5 22.5zm0-512v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5z\"/> </svg>"

/***/ }),

/***/ 59403:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path stroke-width=\"0\" d=\"M384 1408q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm0-512q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm-1408-928q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1408 416v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5zm0-512v192q0 13-9.5 22.5t-22.5 9.5h-1216q-13 0-22.5-9.5t-9.5-22.5v-192q0-13 9.5-22.5t22.5-9.5h1216q13 0 22.5 9.5t9.5 22.5z\"/> </svg>"

/***/ }),

/***/ 22860:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M448 1536h896v-256h-896v256zm0-640h896v-384h-160q-40 0-68-28t-28-68v-160h-640v640zm1152 64q0-26-19-45t-45-19-45 19-19 45 19 45 45 19 45-19 19-45zm128 0v416q0 13-9.5 22.5t-22.5 9.5h-224v160q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-160h-224q-13 0-22.5-9.5t-9.5-22.5v-416q0-79 56.5-135.5t135.5-56.5h64v-544q0-40 28-68t68-28h672q40 0 88 20t76 48l152 152q28 28 48 76t20 88v256h64q79 0 135.5 56.5t56.5 135.5z\"/> </svg>"

/***/ }),

/***/ 95600:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5 163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0 225-52t179-147q7-10 23-12 14 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109 132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298 164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14 39 17 39 59z\"/> </svg>"

/***/ }),

/***/ 76214:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1664 896q0 156-61 298t-164 245-245 164-298 61q-172 0-327-72.5t-264-204.5q-7-10-6.5-22.5t8.5-20.5l137-138q10-9 25-9 16 2 23 12 73 95 179 147t225 52q104 0 198.5-40.5t163.5-109.5 109.5-163.5 40.5-198.5-40.5-198.5-109.5-163.5-163.5-109.5-198.5-40.5q-98 0-188 35.5t-160 101.5l137 138q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59 39-17 69 14l130 129q107-101 244.5-156.5t284.5-55.5q156 0 298 61t245 164 164 245 61 298z\"/> </svg>"

/***/ }),

/***/ 41197:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 500 500\" xmlns=\"http://www.w3.org/2000/svg\"> <path clip-rule=\"evenodd\" d=\"M306.39,154.09c19.628,4.543,35.244,21.259,39.787,39.523 c1.551,8.54,8.998,14.989,17.904,14.989c9.991,0,18.168-8.175,18.168-18.17c0-13.083-10.991-32.98-25.985-47.881 c-14.719-14.537-32.252-24.802-46.695-24.802c-9.991,0-18.172,8.45-18.172,18.446C291.396,145.094,297.847,152.546,306.39,154.09z M56.629,392.312c-14.09,14.08-14.09,36.979,0,51.059c14.08,14.092,36.981,14.092,50.965,0l104.392-104.303 c24.347,15.181,53.062,23.991,83.953,23.991c87.857,0,158.995-71.142,158.995-158.999c0-87.854-71.138-158.995-158.995-158.995 c-87.856,0-158.995,71.141-158.995,158.995c0,30.802,8.819,59.606,23.992,83.953L56.629,392.312z M182.371,204.06 c0-62.687,50.875-113.568,113.568-113.568s113.569,50.881,113.569,113.568c0,62.694-50.876,113.569-113.569,113.569 S182.371,266.754,182.371,204.06z\" fill-rule=\"evenodd\"/> </svg>"

/***/ }),

/***/ 9342:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M553 1399l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23l-393 393 393 393q10 10 10 23t-10 23zm591-1067l-373 1291q-4 13-15.5 19.5t-23.5 2.5l-62-17q-13-4-19.5-15.5t-2.5-24.5l373-1291q4-13 15.5-19.5t23.5-2.5l62 17q13 4 19.5 15.5t2.5 24.5zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z\"/> </svg>"

/***/ }),

/***/ 69546:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M24.89 32h4.18L18.86 6h-3.71L4.93 32h4.18l2.25-6h11.29l2.24 6zM12.86 22L17 10.95 21.14 22h-8.28zm30.31 1.17L27 39.34 19.66 32l-2.83 2.83L27 45l19-19-2.83-2.83z\"/> </svg>"

/***/ }),

/***/ 43158:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 270 270\"> <path d=\"m240.443652,220.45085l-47.410809,0l0,-10.342138c13.89973,-8.43655 25.752896,-19.844464 34.686646,-33.469923c11.445525,-17.455846 17.496072,-37.709239 17.496072,-58.570077c0,-59.589197 -49.208516,-108.068714 -109.693558,-108.068714s-109.69263,48.479517 -109.69263,108.069628c0,20.860839 6.050547,41.113316 17.497001,58.570077c8.93375,13.625459 20.787845,25.032458 34.686646,33.469008l0,10.342138l-47.412666,0c-10.256959,0 -18.571354,8.191376 -18.571354,18.296574c0,10.105198 8.314395,18.296574 18.571354,18.296574l65.98402,0c10.256959,0 18.571354,-8.191376 18.571354,-18.296574l0,-39.496814c0,-7.073455 -4.137698,-13.51202 -10.626529,-16.537358c-25.24497,-11.772016 -41.557118,-37.145704 -41.557118,-64.643625c0,-39.411735 32.545369,-71.476481 72.549922,-71.476481c40.004553,0 72.550851,32.064746 72.550851,71.476481c0,27.497006 -16.312149,52.87161 -41.557118,64.643625c-6.487902,3.026253 -10.6256,9.464818 -10.6256,16.537358l0,39.496814c0,10.105198 8.314395,18.296574 18.571354,18.296574l65.982163,0c10.256959,0 18.571354,-8.191376 18.571354,-18.296574c0,-10.105198 -8.314395,-18.296574 -18.571354,-18.296574z\"/> </svg>"

/***/ }),

/***/ 51716:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M576 1376v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47h-1344q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1344q66 0 113 47t47 113z\"/> </svg>"

/***/ }),

/***/ 49222:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 352v1088q0 42-39 59-13 5-25 5-27 0-45-19l-403-403v166q0 119-84.5 203.5t-203.5 84.5h-704q-119 0-203.5-84.5t-84.5-203.5v-704q0-119 84.5-203.5t203.5-84.5h704q119 0 203.5 84.5t84.5 203.5v165l403-402q18-19 45-19 12 0 25 5 39 17 39 59z\"/> </svg>"

/***/ }),

/***/ 1755:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z\"/> </svg>"

/***/ }),

/***/ 74911:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23z\"/> </svg>"

/***/ }),

/***/ 8805:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1171 960q0 13-10 23l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23z\"/> </svg>"

/***/ }),

/***/ 16547:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1395 1184q0 13-10 23l-50 50q-10 10-23 10t-23-10l-393-393-393 393q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l466 466q10 10 10 23z\"/> </svg>"

/***/ }),

/***/ 10856:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M704 1376v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm-544-992h448l-48-117q-7-9-17-11h-317q-10 2-17 11zm928 32v64q0 14-9 23t-23 9h-96v948q0 83-47 143.5t-113 60.5h-832q-66 0-113-58.5t-47-141.5v-952h-96q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h309l70-167q15-37 54-63t79-26h320q40 0 79 26t54 63l70 167h309q14 0 23 9t9 23z\"/> </svg>"

/***/ }),

/***/ 98441:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\"> <g stroke=\"none\" stroke-width=\"1\"> <path d=\"M14,1.4 L12.6,0 L7,5.6 L1.4,0 L0,1.4 L5.6,7 L0,12.6 L1.4,14 L7,8.4 L12.6,14 L14,12.6 L8.4,7 L14,1.4 Z\"/> </g> </svg>"

/***/ }),

/***/ 52488:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 1344v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm-384-384v128q0 26-19 45t-45 19h-896q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h896q26 0 45 19t19 45zm256-384v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45zm-384-384v128q0 26-19 45t-45 19h-640q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h640q26 0 45 19t19 45z\"/> </svg>"

/***/ }),

/***/ 9370:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1472 930v318q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q63 0 117 25 15 7 18 23 3 17-9 29l-49 49q-10 10-23 10-3 0-9-2-23-6-45-6h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113v-254q0-13 9-22l64-64q10-10 23-10 6 0 12 3 20 8 20 29zm231-489l-814 814q-24 24-57 24t-57-24l-430-430q-24-24-24-57t24-57l110-110q24-24 57-24t57 24l263 263 647-647q24-24 57-24t57 24l110 110q24 24 24 57t-24 57z\"/> </svg>"

/***/ }),

/***/ 66543:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 10 10\"> <path d=\"M.941 4.523a.75.75 0 1 1 1.06-1.06l3.006 3.005 3.005-3.005a.75.75 0 1 1 1.06 1.06l-3.549 3.55a.75.75 0 0 1-1.168-.136L.941 4.523z\"/> </svg>"

/***/ }),

/***/ 608:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 24 24\" > <circle cx=\"12\" cy=\"12\" r=\"2.2\"/> <circle cx=\"12\" cy=\"5\" r=\"2.2\"/> <circle cx=\"12\" cy=\"19\" r=\"2.2\"/> </svg>"

/***/ }),

/***/ 42840:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z\"/> </svg>"

/***/ }),

/***/ 79096:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1152 512v-472q22 14 36 28l408 408q14 14 28 36h-472zm-128 32q0 40 28 68t68 28h544v1056q0 40-28 68t-68 28h-1344q-40 0-68-28t-28-68v-1600q0-40 28-68t68-28h800v544z\"/> </svg>"

/***/ }),

/***/ 33014:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1728 608v704q0 92-66 158t-158 66h-1216q-92 0-158-66t-66-158v-960q0-92 66-158t158-66h320q92 0 158 66t66 158v32h672q92 0 158 66t66 158z\"/> </svg>"

/***/ }),

/***/ 91677:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1152 1376v-160q0-14-9-23t-23-9h-96v-512q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v160q0 14 9 23t23 9h96v320h-96q-14 0-23 9t-9 23v160q0 14 9 23t23 9h448q14 0 23-9t9-23zm-128-896v-160q0-14-9-23t-23-9h-192q-14 0-23 9t-9 23v160q0 14 9 23t23 9h192q14 0 23-9t9-23zm640 416q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z\"/> </svg>"

/***/ }),

/***/ 8259:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 1344v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm-384-384v128q0 26-19 45t-45 19h-1280q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1280q26 0 45 19t19 45zm256-384v128q0 26-19 45t-45 19h-1536q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1536q26 0 45 19t19 45zm-384-384v128q0 26-19 45t-45 19h-1152q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1152q26 0 45 19t19 45z\"/> </svg>"

/***/ }),

/***/ 64467:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"><path d=\"M640 768h512v-192q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h32v-192q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z\"/></svg>"

/***/ }),

/***/ 86934:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 32 32\"> <path d=\"M27 4l-15 15-7-7-5 5 12 12 20-20z\"/> </svg>"

/***/ }),

/***/ 76133:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"><path d=\"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z\"/></svg>"

/***/ }),

/***/ 45519:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"><path d=\"M1600 736v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z\"/></svg>"

/***/ }),

/***/ 90265:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 13 13\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M5.9814 11.8049C5.59087 11.4144 5.59087 10.7812 5.9814 10.3907L10.224 6.14806C10.6146 5.75754 11.2477 5.75754 11.6383 6.14806C12.0288 6.53859 12.0288 7.17175 11.6383 7.56228L7.39561 11.8049C7.00509 12.1954 6.37192 12.1954 5.9814 11.8049Z\"/> <path d=\"M0.707107 12.0208C0.316582 11.6303 0.316582 10.9971 0.707107 10.6066L10.6066 0.707121C10.9971 0.316597 11.6303 0.316596 12.0208 0.707121C12.4113 1.09764 12.4113 1.73081 12.0208 2.12133L2.12132 12.0208C1.7308 12.4114 1.09763 12.4114 0.707107 12.0208Z\"/> </svg>"

/***/ }),

/***/ 81279:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1792 1344v128q0 26-19 45t-45 19h-1664q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1664q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1280q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1280q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1536q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1536q26 0 45 19t19 45zm0-384v128q0 26-19 45t-45 19h-1152q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1152q26 0 45 19t19 45z\"/> </svg>"

/***/ }),

/***/ 68899:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M512 1536h768v-384h-768v384zm896 0h128v-896q0-14-10-38.5t-20-34.5l-281-281q-10-10-34-20t-39-10v416q0 40-28 68t-68 28h-576q-40 0-68-28t-28-68v-416h-128v1280h128v-416q0-40 28-68t68-28h832q40 0 68 28t28 68v416zm-384-928v-320q0-13-9.5-22.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 22.5v320q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5-9.5t9.5-22.5zm640 32v928q0 40-28 68t-68 28h-1344q-40 0-68-28t-28-68v-1344q0-40 28-68t68-28h928q40 0 88 20t76 48l280 280q28 28 48 76t20 88z\"/> </svg>"

/***/ }),

/***/ 70744:
/***/ (function(module) {

module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"> <path stroke=\"null\" d=\"m42.276011,26.302547c0.098397,-0.76605 0.172194,-1.54407 0.172194,-2.33406s-0.073797,-1.56801 -0.172194,-2.33406l5.202718,-3.961917c0.467384,-0.359086 0.602679,-1.005441 0.29519,-1.532101l-4.919828,-8.29489c-0.307489,-0.51469 -0.947067,-0.730142 -1.500548,-0.51469l-6.125186,2.405877c-1.266856,-0.945594 -2.656707,-1.747553 -4.157255,-2.357999l-0.922468,-6.343855c-0.110696,-0.562568 -0.614979,-1.005441 -1.229957,-1.005441l-9.839656,0c-0.614979,0 -1.119261,0.442873 -1.217657,1.005441l-0.922468,6.343855c-1.500548,0.610446 -2.890399,1.400436 -4.157255,2.357999l-6.125186,-2.405877c-0.553481,-0.203482 -1.193058,0 -1.500548,0.51469l-4.919828,8.29489c-0.307489,0.51469 -0.172194,1.161045 0.29519,1.532101l5.190419,3.961917c-0.098397,0.76605 -0.172194,1.54407 -0.172194,2.33406s0.073797,1.56801 0.172194,2.33406l-5.190419,3.961917c-0.467384,0.359086 -0.602679,1.005441 -0.29519,1.532101l4.919828,8.29489c0.307489,0.51469 0.947067,0.730142 1.500548,0.51469l6.125186,-2.405877c1.266856,0.945594 2.656707,1.747553 4.157255,2.357999l0.922468,6.343855c0.098397,0.562568 0.602679,1.005441 1.217657,1.005441l9.839656,0c0.614979,0 1.119261,-0.442873 1.217657,-1.005441l0.922468,-6.343855c1.500548,-0.610446 2.890399,-1.400436 4.157255,-2.357999l6.125186,2.405877c0.553481,0.203482 1.193058,0 1.500548,-0.51469l4.919828,-8.29489c0.307489,-0.51469 0.172194,-1.161045 -0.29519,-1.532101l-5.190419,-3.961917zm-18.277162,6.044617c-4.759934,0 -8.609699,-3.746465 -8.609699,-8.378677s3.849766,-8.378677 8.609699,-8.378677s8.609699,3.746465 8.609699,8.378677s-3.849766,8.378677 -8.609699,8.378677z\"/> </svg>"

/***/ }),

/***/ 19201:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1728 576v256q0 26-19 45t-45 19h-64q-26 0-45-19t-19-45v-256q0-106-75-181t-181-75-181 75-75 181v192h96q40 0 68 28t28 68v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h672v-192q0-185 131.5-316.5t316.5-131.5 316.5 131.5 131.5 316.5z\"/> </svg>"

/***/ }),

/***/ 84930:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1639 1056q0 5-1 7-64 268-268 434.5t-478 166.5q-146 0-282.5-55t-243.5-157l-129 129q-19 19-45 19t-45-19-19-45v-448q0-26 19-45t45-19h448q26 0 45 19t19 45-19 45l-137 137q71 66 161 102t187 36q134 0 250-65t186-179q11-17 53-117 8-23 30-23h192q13 0 22.5 9.5t9.5 22.5zm25-800v448q0 26-19 45t-45 19h-448q-26 0-45-19t-19-45 19-45l138-138q-148-137-349-137-134 0-250 65t-186 179q-11 17-53 117-8 23-30 23h-199q-13 0-22.5-9.5t-9.5-22.5v-7q65-268 270-434.5t480-166.5q146 0 284 55.5t245 156.5l130-129q19-19 45-19t45 19 19 45z\"/> </svg>"

/***/ }),

/***/ 99704:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1344 1472q0-26-19-45t-45-19-45 19-19 45 19 45 45 19 45-19 19-45zm256 0q0-26-19-45t-45-19-45 19-19 45 19 45 45 19 45-19 19-45zm128-224v320q0 40-28 68t-68 28h-1472q-40 0-68-28t-28-68v-320q0-40 28-68t68-28h427q21 56 70.5 92t110.5 36h256q61 0 110.5-36t70.5-92h427q40 0 68 28t28 68zm-325-648q-17 40-59 40h-256v448q0 26-19 45t-45 19h-256q-26 0-45-19t-19-45v-448h-256q-42 0-59-40-17-39 14-69l448-448q18-19 45-19t45 19l448 448q31 30 14 69z\"/> </svg>"

/***/ }),

/***/ 2304:
/***/ (function(module) {

module.exports = "<svg xmlns='http://www.w3.org/2000/svg' viewBox=\"0 0 1792 1792\"> <path d=\"M1216 320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19 19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z\"/> </svg>"

/***/ }),

/***/ 93330:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_113823__) {

"use strict";
__nested_webpack_require_113823__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 45066:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_114033__) {

"use strict";
__nested_webpack_require_114033__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 99895:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_114243__) {

"use strict";
__nested_webpack_require_114243__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 87682:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_114453__) {

"use strict";
__nested_webpack_require_114453__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 50905:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_114663__) {

"use strict";
__nested_webpack_require_114663__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 70446:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_114873__) {

"use strict";
__nested_webpack_require_114873__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 18984:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_115083__) {

"use strict";
__nested_webpack_require_115083__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 4591:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_115292__) {

"use strict";
__nested_webpack_require_115292__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 64194:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_115502__) {

"use strict";
__nested_webpack_require_115502__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 70375:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_115712__) {

"use strict";
__nested_webpack_require_115712__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 90235:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_115922__) {

"use strict";
__nested_webpack_require_115922__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 88477:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_116132__) {

"use strict";
__nested_webpack_require_116132__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 50197:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_116342__) {

"use strict";
__nested_webpack_require_116342__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 39008:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_116552__) {

"use strict";
__nested_webpack_require_116552__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 47086:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_116762__) {

"use strict";
__nested_webpack_require_116762__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 16462:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_116972__) {

"use strict";
__nested_webpack_require_116972__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 40692:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_117182__) {

"use strict";
__nested_webpack_require_117182__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 27452:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_117392__) {

"use strict";
__nested_webpack_require_117392__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 51422:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_117602__) {

"use strict";
__nested_webpack_require_117602__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 62820:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_117812__) {

"use strict";
__nested_webpack_require_117812__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 63421:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_118022__) {

"use strict";
__nested_webpack_require_118022__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 32115:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_118232__) {

"use strict";
__nested_webpack_require_118232__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 53362:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_118442__) {

"use strict";
__nested_webpack_require_118442__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 48904:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_118652__) {

"use strict";
__nested_webpack_require_118652__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 85796:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_118862__) {

"use strict";
__nested_webpack_require_118862__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 28654:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_119072__) {

"use strict";
__nested_webpack_require_119072__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 60819:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_119282__) {

"use strict";
__nested_webpack_require_119282__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 96410:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_119492__) {

"use strict";
__nested_webpack_require_119492__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 33126:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_119702__) {

"use strict";
__nested_webpack_require_119702__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 30724:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_119912__) {

"use strict";
__nested_webpack_require_119912__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 14320:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_120122__) {

"use strict";
__nested_webpack_require_120122__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 9947:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_120331__) {

"use strict";
__nested_webpack_require_120331__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 45109:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_120541__) {

"use strict";
__nested_webpack_require_120541__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 71708:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_120751__) {

"use strict";
__nested_webpack_require_120751__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 51629:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_120961__) {

"use strict";
__nested_webpack_require_120961__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 54860:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_121171__) {

"use strict";
__nested_webpack_require_121171__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 47818:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_121381__) {

"use strict";
__nested_webpack_require_121381__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 6316:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_121590__) {

"use strict";
__nested_webpack_require_121590__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 88582:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_121800__) {

"use strict";
__nested_webpack_require_121800__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 30962:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_122010__) {

"use strict";
__nested_webpack_require_122010__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 68197:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_122220__) {

"use strict";
__nested_webpack_require_122220__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 60057:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_122430__) {

"use strict";
__nested_webpack_require_122430__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 33393:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_122640__) {

"use strict";
__nested_webpack_require_122640__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 51057:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_122850__) {

"use strict";
__nested_webpack_require_122850__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 64618:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_123060__) {

"use strict";
__nested_webpack_require_123060__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 90176:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_123270__) {

"use strict";
__nested_webpack_require_123270__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 91147:
/***/ (function(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_123480__) {

"use strict";
__nested_webpack_require_123480__.r(__nested_webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ }),

/***/ 70631:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.boundClass = exports.boundMethod = void 0;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function _typeof(obj) { return typeof obj; };
}
else {
    _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
} return _typeof(obj); }
function boundMethod(target, key, descriptor) {
    var fn = descriptor.value;
    if (typeof fn !== 'function') {
        throw new TypeError("@boundMethod decorator can only be applied to methods not: ".concat(_typeof(fn)));
    }
    var definingProperty = false;
    return {
        configurable: true,
        get: function get() {
            if (definingProperty || this === target.prototype || this.hasOwnProperty(key) || typeof fn !== 'function') {
                return fn;
            }
            var boundFn = fn.bind(this);
            definingProperty = true;
            Object.defineProperty(this, key, {
                configurable: true,
                get: function get() {
                    return boundFn;
                },
                set: function set(value) {
                    fn = value;
                    delete this[key];
                }
            });
            definingProperty = false;
            return boundFn;
        },
        set: function set(value) {
            fn = value;
        }
    };
}
exports.boundMethod = boundMethod;
function boundClass(target) {
    var keys;
    if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {
        keys = Reflect.ownKeys(target.prototype);
    }
    else {
        keys = Object.getOwnPropertyNames(target.prototype);
        if (typeof Object.getOwnPropertySymbols === 'function') {
            keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));
        }
    }
    keys.forEach(function (key) {
        if (key === 'constructor') {
            return;
        }
        var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);
        if (typeof descriptor.value === 'function') {
            Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));
        }
    });
    return target;
}
exports.boundClass = boundClass;
function autobind() {
    if (arguments.length === 1) {
        return boundClass.apply(void 0, arguments);
    }
    return boundMethod.apply(void 0, arguments);
}
exports["default"] = autobind;


/***/ }),

/***/ 61227:
/***/ (function() {

"use strict";

/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */
if ("document" in window.self) {
    if (!("classList" in document.createElement("_"))
        || document.createElementNS && !("classList" in document.createElementNS("http://www.w3.org/2000/svg", "g"))) {
        (function (view) {
            "use strict";
            if (!('Element' in view))
                return;
            var classListProp = "classList", protoProp = "prototype", elemCtrProto = view.Element[protoProp], objCtr = Object, strTrim = String[protoProp].trim || function () {
                return this.replace(/^\s+|\s+$/g, "");
            }, arrIndexOf = Array[protoProp].indexOf || function (item) {
                var i = 0, len = this.length;
                for (; i < len; i++) {
                    if (i in this && this[i] === item) {
                        return i;
                    }
                }
                return -1;
            }, DOMEx = function (type, message) {
                this.name = type;
                this.code = DOMException[type];
                this.message = message;
            }, checkTokenAndGetIndex = function (classList, token) {
                if (token === "") {
                    throw new DOMEx("SYNTAX_ERR", "An invalid or illegal string was specified");
                }
                if (/\s/.test(token)) {
                    throw new DOMEx("INVALID_CHARACTER_ERR", "String contains an invalid character");
                }
                return arrIndexOf.call(classList, token);
            }, ClassList = function (elem) {
                var trimmedClasses = strTrim.call(elem.getAttribute("class") || ""), classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [], i = 0, len = classes.length;
                for (; i < len; i++) {
                    this.push(classes[i]);
                }
                this._updateClassName = function () {
                    elem.setAttribute("class", this.toString());
                };
            }, classListProto = ClassList[protoProp] = [], classListGetter = function () {
                return new ClassList(this);
            };
            DOMEx[protoProp] = Error[protoProp];
            classListProto.item = function (i) {
                return this[i] || null;
            };
            classListProto.contains = function (token) {
                token += "";
                return checkTokenAndGetIndex(this, token) !== -1;
            };
            classListProto.add = function () {
                var tokens = arguments, i = 0, l = tokens.length, token, updated = false;
                do {
                    token = tokens[i] + "";
                    if (checkTokenAndGetIndex(this, token) === -1) {
                        this.push(token);
                        updated = true;
                    }
                } while (++i < l);
                if (updated) {
                    this._updateClassName();
                }
            };
            classListProto.remove = function () {
                var tokens = arguments, i = 0, l = tokens.length, token, updated = false, index;
                do {
                    token = tokens[i] + "";
                    index = checkTokenAndGetIndex(this, token);
                    while (index !== -1) {
                        this.splice(index, 1);
                        updated = true;
                        index = checkTokenAndGetIndex(this, token);
                    }
                } while (++i < l);
                if (updated) {
                    this._updateClassName();
                }
            };
            classListProto.toggle = function (token, force) {
                token += "";
                var result = this.contains(token), method = result ?
                    force !== true && "remove"
                    :
                        force !== false && "add";
                if (method) {
                    this[method](token);
                }
                if (force === true || force === false) {
                    return force;
                }
                else {
                    return !result;
                }
            };
            classListProto.toString = function () {
                return this.join(" ");
            };
            if (objCtr.defineProperty) {
                var classListPropDesc = {
                    get: classListGetter,
                    enumerable: true,
                    configurable: true
                };
                try {
                    objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
                }
                catch (ex) {
                    if (ex.number === undefined || ex.number === -0x7FF5EC54) {
                        classListPropDesc.enumerable = false;
                        objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
                    }
                }
            }
            else if (objCtr[protoProp].__defineGetter__) {
                elemCtrProto.__defineGetter__(classListProp, classListGetter);
            }
        }(window.self));
    }
    (function () {
        "use strict";
        var testElement = document.createElement("_");
        testElement.classList.add("c1", "c2");
        if (!testElement.classList.contains("c2")) {
            var createMethod = function (method) {
                var original = DOMTokenList.prototype[method];
                DOMTokenList.prototype[method] = function (token) {
                    var i, len = arguments.length;
                    for (i = 0; i < len; i++) {
                        token = arguments[i];
                        original.call(this, token);
                    }
                };
            };
            createMethod('add');
            createMethod('remove');
        }
        testElement.classList.toggle("c3", false);
        if (testElement.classList.contains("c3")) {
            var _toggle = DOMTokenList.prototype.toggle;
            DOMTokenList.prototype.toggle = function (token, force) {
                if (1 in arguments && !this.contains(token) === !force) {
                    return force;
                }
                else {
                    return _toggle.call(this, token);
                }
            };
        }
        testElement = null;
    }());
}


/***/ }),

/***/ 69220:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_132826__) {

"use strict";

__nested_webpack_require_132826__(22513);
var entryUnbind = __nested_webpack_require_132826__(56599);
module.exports = entryUnbind('Array', 'findIndex');


/***/ }),

/***/ 10444:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_133067__) {

"use strict";

__nested_webpack_require_133067__(52867);
__nested_webpack_require_133067__(70057);
var path = __nested_webpack_require_133067__(31116);
module.exports = path.Array.from;


/***/ }),

/***/ 66622:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_133311__) {

"use strict";

__nested_webpack_require_133311__(54166);
__nested_webpack_require_133311__(32044);
__nested_webpack_require_133311__(95661);
__nested_webpack_require_133311__(28424);
__nested_webpack_require_133311__(64514);
__nested_webpack_require_133311__(30733);
__nested_webpack_require_133311__(40327);
__nested_webpack_require_133311__(53639);
__nested_webpack_require_133311__(6147);
__nested_webpack_require_133311__(7290);
__nested_webpack_require_133311__(95122);
__nested_webpack_require_133311__(61322);
__nested_webpack_require_133311__(39605);
__nested_webpack_require_133311__(49341);
__nested_webpack_require_133311__(28809);
__nested_webpack_require_133311__(82658);
__nested_webpack_require_133311__(43967);
__nested_webpack_require_133311__(90217);
__nested_webpack_require_133311__(73477);
__nested_webpack_require_133311__(93697);
var path = __nested_webpack_require_133311__(31116);
module.exports = path.Symbol;


/***/ }),

/***/ 98061:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_134053__) {

"use strict";

var isCallable = __nested_webpack_require_134053__(794);
var tryToString = __nested_webpack_require_134053__(98418);
var $TypeError = TypeError;
module.exports = function (argument) {
    if (isCallable(argument))
        return argument;
    throw $TypeError(tryToString(argument) + ' is not a function');
};


/***/ }),

/***/ 75839:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_134450__) {

"use strict";

var isCallable = __nested_webpack_require_134450__(794);
var $String = String;
var $TypeError = TypeError;
module.exports = function (argument) {
    if (typeof argument == 'object' || isCallable(argument))
        return argument;
    throw $TypeError("Can't set " + $String(argument) + ' as a prototype');
};


/***/ }),

/***/ 15179:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_134862__) {

"use strict";

var wellKnownSymbol = __nested_webpack_require_134862__(19517);
var create = __nested_webpack_require_134862__(93503);
var defineProperty = (__nested_webpack_require_134862__(73252).f);
var UNSCOPABLES = wellKnownSymbol('unscopables');
var ArrayPrototype = Array.prototype;
if (ArrayPrototype[UNSCOPABLES] == undefined) {
    defineProperty(ArrayPrototype, UNSCOPABLES, {
        configurable: true,
        value: create(null)
    });
}
module.exports = function (key) {
    ArrayPrototype[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ 52313:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_135455__) {

"use strict";

var isObject = __nested_webpack_require_135455__(8148);
var $String = String;
var $TypeError = TypeError;
module.exports = function (argument) {
    if (isObject(argument))
        return argument;
    throw $TypeError($String(argument) + ' is not an object');
};


/***/ }),

/***/ 92707:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_135820__) {

"use strict";

var bind = __nested_webpack_require_135820__(40207);
var call = __nested_webpack_require_135820__(9093);
var toObject = __nested_webpack_require_135820__(68488);
var callWithSafeIterationClosing = __nested_webpack_require_135820__(79665);
var isArrayIteratorMethod = __nested_webpack_require_135820__(84997);
var isConstructor = __nested_webpack_require_135820__(15333);
var lengthOfArrayLike = __nested_webpack_require_135820__(15050);
var createProperty = __nested_webpack_require_135820__(89476);
var getIterator = __nested_webpack_require_135820__(27395);
var getIteratorMethod = __nested_webpack_require_135820__(81058);
var $Array = Array;
module.exports = function from(arrayLike) {
    var O = toObject(arrayLike);
    var IS_CONSTRUCTOR = isConstructor(this);
    var argumentsLength = arguments.length;
    var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    if (mapping)
        mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
    var iteratorMethod = getIteratorMethod(O);
    var index = 0;
    var length, result, step, iterator, next, value;
    if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {
        iterator = getIterator(O, iteratorMethod);
        next = iterator.next;
        result = IS_CONSTRUCTOR ? new this() : [];
        for (; !(step = call(next, iterator)).done; index++) {
            value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
            createProperty(result, index, value);
        }
    }
    else {
        length = lengthOfArrayLike(O);
        result = IS_CONSTRUCTOR ? new this(length) : $Array(length);
        for (; length > index; index++) {
            value = mapping ? mapfn(O[index], index) : O[index];
            createProperty(result, index, value);
        }
    }
    result.length = index;
    return result;
};


/***/ }),

/***/ 79327:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_137732__) {

"use strict";

var toIndexedObject = __nested_webpack_require_137732__(98651);
var toAbsoluteIndex = __nested_webpack_require_137732__(10586);
var lengthOfArrayLike = __nested_webpack_require_137732__(15050);
var createMethod = function (IS_INCLUDES) {
    return function ($this, el, fromIndex) {
        var O = toIndexedObject($this);
        var length = lengthOfArrayLike(O);
        var index = toAbsoluteIndex(fromIndex, length);
        var value;
        if (IS_INCLUDES && el != el)
            while (length > index) {
                value = O[index++];
                if (value != value)
                    return true;
            }
        else
            for (; length > index; index++) {
                if ((IS_INCLUDES || index in O) && O[index] === el)
                    return IS_INCLUDES || index || 0;
            }
        return !IS_INCLUDES && -1;
    };
};
module.exports = {
    includes: createMethod(true),
    indexOf: createMethod(false)
};


/***/ }),

/***/ 56881:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_138768__) {

"use strict";

var bind = __nested_webpack_require_138768__(40207);
var uncurryThis = __nested_webpack_require_138768__(90838);
var IndexedObject = __nested_webpack_require_138768__(25049);
var toObject = __nested_webpack_require_138768__(68488);
var lengthOfArrayLike = __nested_webpack_require_138768__(15050);
var arraySpeciesCreate = __nested_webpack_require_138768__(6429);
var push = uncurryThis([].push);
var createMethod = function (TYPE) {
    var IS_MAP = TYPE == 1;
    var IS_FILTER = TYPE == 2;
    var IS_SOME = TYPE == 3;
    var IS_EVERY = TYPE == 4;
    var IS_FIND_INDEX = TYPE == 6;
    var IS_FILTER_REJECT = TYPE == 7;
    var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
    return function ($this, callbackfn, that, specificCreate) {
        var O = toObject($this);
        var self = IndexedObject(O);
        var boundFunction = bind(callbackfn, that);
        var length = lengthOfArrayLike(self);
        var index = 0;
        var create = specificCreate || arraySpeciesCreate;
        var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
        var value, result;
        for (; length > index; index++)
            if (NO_HOLES || index in self) {
                value = self[index];
                result = boundFunction(value, index, O);
                if (TYPE) {
                    if (IS_MAP)
                        target[index] = result;
                    else if (result)
                        switch (TYPE) {
                            case 3: return true;
                            case 5: return value;
                            case 6: return index;
                            case 2: push(target, value);
                        }
                    else
                        switch (TYPE) {
                            case 4: return false;
                            case 7: push(target, value);
                        }
                }
            }
        return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
    };
};
module.exports = {
    forEach: createMethod(0),
    map: createMethod(1),
    filter: createMethod(2),
    some: createMethod(3),
    every: createMethod(4),
    find: createMethod(5),
    findIndex: createMethod(6),
    filterReject: createMethod(7)
};


/***/ }),

/***/ 63833:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_141096__) {

"use strict";

var fails = __nested_webpack_require_141096__(75834);
var wellKnownSymbol = __nested_webpack_require_141096__(19517);
var V8_VERSION = __nested_webpack_require_141096__(65190);
var SPECIES = wellKnownSymbol('species');
module.exports = function (METHOD_NAME) {
    return V8_VERSION >= 51 || !fails(function () {
        var array = [];
        var constructor = array.constructor = {};
        constructor[SPECIES] = function () {
            return { foo: 1 };
        };
        return array[METHOD_NAME](Boolean).foo !== 1;
    });
};


/***/ }),

/***/ 57652:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_141708__) {

"use strict";

var toAbsoluteIndex = __nested_webpack_require_141708__(10586);
var lengthOfArrayLike = __nested_webpack_require_141708__(15050);
var createProperty = __nested_webpack_require_141708__(89476);
var $Array = Array;
var max = Math.max;
module.exports = function (O, start, end) {
    var length = lengthOfArrayLike(O);
    var k = toAbsoluteIndex(start, length);
    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
    var result = $Array(max(fin - k, 0));
    for (var n = 0; k < fin; k++, n++)
        createProperty(result, n, O[k]);
    result.length = n;
    return result;
};


/***/ }),

/***/ 54832:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_142381__) {

"use strict";

var uncurryThis = __nested_webpack_require_142381__(90838);
module.exports = uncurryThis([].slice);


/***/ }),

/***/ 22506:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_142582__) {

"use strict";

var isArray = __nested_webpack_require_142582__(36222);
var isConstructor = __nested_webpack_require_142582__(15333);
var isObject = __nested_webpack_require_142582__(8148);
var wellKnownSymbol = __nested_webpack_require_142582__(19517);
var SPECIES = wellKnownSymbol('species');
var $Array = Array;
module.exports = function (originalArray) {
    var C;
    if (isArray(originalArray)) {
        C = originalArray.constructor;
        if (isConstructor(C) && (C === $Array || isArray(C.prototype)))
            C = undefined;
        else if (isObject(C)) {
            C = C[SPECIES];
            if (C === null)
                C = undefined;
        }
    }
    return C === undefined ? $Array : C;
};


/***/ }),

/***/ 6429:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_143346__) {

"use strict";

var arraySpeciesConstructor = __nested_webpack_require_143346__(22506);
module.exports = function (originalArray, length) {
    return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
};


/***/ }),

/***/ 79665:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_143658__) {

"use strict";

var anObject = __nested_webpack_require_143658__(52313);
var iteratorClose = __nested_webpack_require_143658__(11274);
module.exports = function (iterator, fn, value, ENTRIES) {
    try {
        return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
    }
    catch (error) {
        iteratorClose(iterator, 'throw', error);
    }
};


/***/ }),

/***/ 7581:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_144087__) {

"use strict";

var wellKnownSymbol = __nested_webpack_require_144087__(19517);
var ITERATOR = wellKnownSymbol('iterator');
var SAFE_CLOSING = false;
try {
    var called = 0;
    var iteratorWithReturn = {
        next: function () {
            return { done: !!called++ };
        },
        'return': function () {
            SAFE_CLOSING = true;
        }
    };
    iteratorWithReturn[ITERATOR] = function () {
        return this;
    };
    Array.from(iteratorWithReturn, function () { throw 2; });
}
catch (error) { }
module.exports = function (exec, SKIP_CLOSING) {
    if (!SKIP_CLOSING && !SAFE_CLOSING)
        return false;
    var ITERATION_SUPPORT = false;
    try {
        var object = {};
        object[ITERATOR] = function () {
            return {
                next: function () {
                    return { done: ITERATION_SUPPORT = true };
                }
            };
        };
        exec(object);
    }
    catch (error) { }
    return ITERATION_SUPPORT;
};


/***/ }),

/***/ 6285:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_145168__) {

"use strict";

var uncurryThis = __nested_webpack_require_145168__(90838);
var toString = uncurryThis({}.toString);
var stringSlice = uncurryThis(''.slice);
module.exports = function (it) {
    return stringSlice(toString(it), 8, -1);
};


/***/ }),

/***/ 8652:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_145491__) {

"use strict";

var TO_STRING_TAG_SUPPORT = __nested_webpack_require_145491__(6424);
var isCallable = __nested_webpack_require_145491__(794);
var classofRaw = __nested_webpack_require_145491__(6285);
var wellKnownSymbol = __nested_webpack_require_145491__(19517);
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var $Object = Object;
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
var tryGet = function (it, key) {
    try {
        return it[key];
    }
    catch (error) { }
};
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
    var O, tag, result;
    return it === undefined ? 'Undefined' : it === null ? 'Null'
        : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
            : CORRECT_ARGUMENTS ? classofRaw(O)
                : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
};


/***/ }),

/***/ 58392:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_146454__) {

"use strict";

var hasOwn = __nested_webpack_require_146454__(14434);
var ownKeys = __nested_webpack_require_146454__(86671);
var getOwnPropertyDescriptorModule = __nested_webpack_require_146454__(36999);
var definePropertyModule = __nested_webpack_require_146454__(73252);
module.exports = function (target, source, exceptions) {
    var keys = ownKeys(source);
    var defineProperty = definePropertyModule.f;
    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
    for (var i = 0; i < keys.length; i++) {
        var key = keys[i];
        if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
            defineProperty(target, key, getOwnPropertyDescriptor(source, key));
        }
    }
};


/***/ }),

/***/ 27259:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_147229__) {

"use strict";

var fails = __nested_webpack_require_147229__(75834);
module.exports = !fails(function () {
    function F() { }
    F.prototype.constructor = null;
    return Object.getPrototypeOf(new F()) !== F.prototype;
});


/***/ }),

/***/ 17427:
/***/ (function(module) {

"use strict";

module.exports = function (value, done) {
    return { value: value, done: done };
};


/***/ }),

/***/ 45840:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_147696__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_147696__(13873);
var definePropertyModule = __nested_webpack_require_147696__(73252);
var createPropertyDescriptor = __nested_webpack_require_147696__(32500);
module.exports = DESCRIPTORS ? function (object, key, value) {
    return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
    object[key] = value;
    return object;
};


/***/ }),

/***/ 32500:
/***/ (function(module) {

"use strict";

module.exports = function (bitmap, value) {
    return {
        enumerable: !(bitmap & 1),
        configurable: !(bitmap & 2),
        writable: !(bitmap & 4),
        value: value
    };
};


/***/ }),

/***/ 89476:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_148462__) {

"use strict";

var toPropertyKey = __nested_webpack_require_148462__(43836);
var definePropertyModule = __nested_webpack_require_148462__(73252);
var createPropertyDescriptor = __nested_webpack_require_148462__(32500);
module.exports = function (object, key, value) {
    var propertyKey = toPropertyKey(key);
    if (propertyKey in object)
        definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
    else
        object[propertyKey] = value;
};


/***/ }),

/***/ 97548:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_148999__) {

"use strict";

var makeBuiltIn = __nested_webpack_require_148999__(40846);
var defineProperty = __nested_webpack_require_148999__(73252);
module.exports = function (target, name, descriptor) {
    if (descriptor.get)
        makeBuiltIn(descriptor.get, name, { getter: true });
    if (descriptor.set)
        makeBuiltIn(descriptor.set, name, { setter: true });
    return defineProperty.f(target, name, descriptor);
};


/***/ }),

/***/ 35065:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_149492__) {

"use strict";

var isCallable = __nested_webpack_require_149492__(794);
var definePropertyModule = __nested_webpack_require_149492__(73252);
var makeBuiltIn = __nested_webpack_require_149492__(40846);
var defineGlobalProperty = __nested_webpack_require_149492__(25379);
module.exports = function (O, key, value, options) {
    if (!options)
        options = {};
    var simple = options.enumerable;
    var name = options.name !== undefined ? options.name : key;
    if (isCallable(value))
        makeBuiltIn(value, name, options);
    if (options.global) {
        if (simple)
            O[key] = value;
        else
            defineGlobalProperty(key, value);
    }
    else {
        try {
            if (!options.unsafe)
                delete O[key];
            else if (O[key])
                simple = true;
        }
        catch (error) { }
        if (simple)
            O[key] = value;
        else
            definePropertyModule.f(O, key, {
                value: value,
                enumerable: false,
                configurable: !options.nonConfigurable,
                writable: !options.nonWritable
            });
    }
    return O;
};


/***/ }),

/***/ 25379:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_150707__) {

"use strict";

var global = __nested_webpack_require_150707__(37042);
var defineProperty = Object.defineProperty;
module.exports = function (key, value) {
    try {
        defineProperty(global, key, { value: value, configurable: true, writable: true });
    }
    catch (error) {
        global[key] = value;
    }
    return value;
};


/***/ }),

/***/ 13873:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_151131__) {

"use strict";

var fails = __nested_webpack_require_151131__(75834);
module.exports = !fails(function () {
    return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});


/***/ }),

/***/ 12062:
/***/ (function(module) {

"use strict";

var documentAll = typeof document == 'object' && document.all;
var IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;
module.exports = {
    all: documentAll,
    IS_HTMLDDA: IS_HTMLDDA
};


/***/ }),

/***/ 15192:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_151696__) {

"use strict";

var global = __nested_webpack_require_151696__(37042);
var isObject = __nested_webpack_require_151696__(8148);
var document = global.document;
var EXISTS = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
    return EXISTS ? document.createElement(it) : {};
};


/***/ }),

/***/ 39505:
/***/ (function(module) {

"use strict";

var $TypeError = TypeError;
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
module.exports = function (it) {
    if (it > MAX_SAFE_INTEGER)
        throw $TypeError('Maximum allowed index exceeded');
    return it;
};


/***/ }),

/***/ 21473:
/***/ (function(module) {

"use strict";

module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';


/***/ }),

/***/ 65190:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_152518__) {

"use strict";

var global = __nested_webpack_require_152518__(37042);
var userAgent = __nested_webpack_require_152518__(21473);
var process = global.process;
var Deno = global.Deno;
var versions = process && process.versions || Deno && Deno.version;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
    match = v8.split('.');
    version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}
if (!version && userAgent) {
    match = userAgent.match(/Edge\/(\d+)/);
    if (!match || match[1] >= 74) {
        match = userAgent.match(/Chrome\/(\d+)/);
        if (match)
            version = +match[1];
    }
}
module.exports = version;


/***/ }),

/***/ 56599:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_153251__) {

"use strict";

var global = __nested_webpack_require_153251__(37042);
var uncurryThis = __nested_webpack_require_153251__(90838);
module.exports = function (CONSTRUCTOR, METHOD) {
    return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);
};


/***/ }),

/***/ 64456:
/***/ (function(module) {

"use strict";

module.exports = [
    'constructor',
    'hasOwnProperty',
    'isPrototypeOf',
    'propertyIsEnumerable',
    'toLocaleString',
    'toString',
    'valueOf'
];


/***/ }),

/***/ 50791:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_153801__) {

"use strict";

var global = __nested_webpack_require_153801__(37042);
var getOwnPropertyDescriptor = (__nested_webpack_require_153801__(36999).f);
var createNonEnumerableProperty = __nested_webpack_require_153801__(45840);
var defineBuiltIn = __nested_webpack_require_153801__(35065);
var defineGlobalProperty = __nested_webpack_require_153801__(25379);
var copyConstructorProperties = __nested_webpack_require_153801__(58392);
var isForced = __nested_webpack_require_153801__(56930);
module.exports = function (options, source) {
    var TARGET = options.target;
    var GLOBAL = options.global;
    var STATIC = options.stat;
    var FORCED, target, key, targetProperty, sourceProperty, descriptor;
    if (GLOBAL) {
        target = global;
    }
    else if (STATIC) {
        target = global[TARGET] || defineGlobalProperty(TARGET, {});
    }
    else {
        target = (global[TARGET] || {}).prototype;
    }
    if (target)
        for (key in source) {
            sourceProperty = source[key];
            if (options.dontCallGetSet) {
                descriptor = getOwnPropertyDescriptor(target, key);
                targetProperty = descriptor && descriptor.value;
            }
            else
                targetProperty = target[key];
            FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
            if (!FORCED && targetProperty !== undefined) {
                if (typeof sourceProperty == typeof targetProperty)
                    continue;
                copyConstructorProperties(sourceProperty, targetProperty);
            }
            if (options.sham || (targetProperty && targetProperty.sham)) {
                createNonEnumerableProperty(sourceProperty, 'sham', true);
            }
            defineBuiltIn(target, key, sourceProperty, options);
        }
};


/***/ }),

/***/ 75834:
/***/ (function(module) {

"use strict";

module.exports = function (exec) {
    try {
        return !!exec();
    }
    catch (error) {
        return true;
    }
};


/***/ }),

/***/ 55101:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_155840__) {

"use strict";

var NATIVE_BIND = __nested_webpack_require_155840__(32610);
var FunctionPrototype = Function.prototype;
var apply = FunctionPrototype.apply;
var call = FunctionPrototype.call;
module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
    return call.apply(apply, arguments);
});


/***/ }),

/***/ 40207:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_156274__) {

"use strict";

var uncurryThis = __nested_webpack_require_156274__(75114);
var aCallable = __nested_webpack_require_156274__(98061);
var NATIVE_BIND = __nested_webpack_require_156274__(32610);
var bind = uncurryThis(uncurryThis.bind);
module.exports = function (fn, that) {
    aCallable(fn);
    return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () {
        return fn.apply(that, arguments);
    };
};


/***/ }),

/***/ 32610:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_156759__) {

"use strict";

var fails = __nested_webpack_require_156759__(75834);
module.exports = !fails(function () {
    var test = (function () { }).bind();
    return typeof test != 'function' || test.hasOwnProperty('prototype');
});


/***/ }),

/***/ 9093:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_157070__) {

"use strict";

var NATIVE_BIND = __nested_webpack_require_157070__(32610);
var call = Function.prototype.call;
module.exports = NATIVE_BIND ? call.bind(call) : function () {
    return call.apply(call, arguments);
};


/***/ }),

/***/ 84521:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_157373__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_157373__(13873);
var hasOwn = __nested_webpack_require_157373__(14434);
var FunctionPrototype = Function.prototype;
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
var EXISTS = hasOwn(FunctionPrototype, 'name');
var PROPER = EXISTS && (function something() { }).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
module.exports = {
    EXISTS: EXISTS,
    PROPER: PROPER,
    CONFIGURABLE: CONFIGURABLE
};


/***/ }),

/***/ 47448:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_158019__) {

"use strict";

var uncurryThis = __nested_webpack_require_158019__(90838);
var aCallable = __nested_webpack_require_158019__(98061);
module.exports = function (object, key, method) {
    try {
        return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
    }
    catch (error) { }
};


/***/ }),

/***/ 75114:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_158408__) {

"use strict";

var classofRaw = __nested_webpack_require_158408__(6285);
var uncurryThis = __nested_webpack_require_158408__(90838);
module.exports = function (fn) {
    if (classofRaw(fn) === 'Function')
        return uncurryThis(fn);
};


/***/ }),

/***/ 90838:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_158720__) {

"use strict";

var NATIVE_BIND = __nested_webpack_require_158720__(32610);
var FunctionPrototype = Function.prototype;
var call = FunctionPrototype.call;
var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
    return function () {
        return call.apply(fn, arguments);
    };
};


/***/ }),

/***/ 98945:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_159188__) {

"use strict";

var global = __nested_webpack_require_159188__(37042);
var isCallable = __nested_webpack_require_159188__(794);
var aFunction = function (argument) {
    return isCallable(argument) ? argument : undefined;
};
module.exports = function (namespace, method) {
    return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];
};


/***/ }),

/***/ 81058:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_159648__) {

"use strict";

var classof = __nested_webpack_require_159648__(8652);
var getMethod = __nested_webpack_require_159648__(20156);
var isNullOrUndefined = __nested_webpack_require_159648__(8140);
var Iterators = __nested_webpack_require_159648__(84922);
var wellKnownSymbol = __nested_webpack_require_159648__(19517);
var ITERATOR = wellKnownSymbol('iterator');
module.exports = function (it) {
    if (!isNullOrUndefined(it))
        return getMethod(it, ITERATOR)
            || getMethod(it, '@@iterator')
            || Iterators[classof(it)];
};


/***/ }),

/***/ 27395:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_160226__) {

"use strict";

var call = __nested_webpack_require_160226__(9093);
var aCallable = __nested_webpack_require_160226__(98061);
var anObject = __nested_webpack_require_160226__(52313);
var tryToString = __nested_webpack_require_160226__(98418);
var getIteratorMethod = __nested_webpack_require_160226__(81058);
var $TypeError = TypeError;
module.exports = function (argument, usingIterator) {
    var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
    if (aCallable(iteratorMethod))
        return anObject(call(iteratorMethod, argument));
    throw $TypeError(tryToString(argument) + ' is not iterable');
};


/***/ }),

/***/ 6693:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_160899__) {

"use strict";

var uncurryThis = __nested_webpack_require_160899__(90838);
var isArray = __nested_webpack_require_160899__(36222);
var isCallable = __nested_webpack_require_160899__(794);
var classof = __nested_webpack_require_160899__(6285);
var toString = __nested_webpack_require_160899__(63046);
var push = uncurryThis([].push);
module.exports = function (replacer) {
    if (isCallable(replacer))
        return replacer;
    if (!isArray(replacer))
        return;
    var rawLength = replacer.length;
    var keys = [];
    for (var i = 0; i < rawLength; i++) {
        var element = replacer[i];
        if (typeof element == 'string')
            push(keys, element);
        else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String')
            push(keys, toString(element));
    }
    var keysLength = keys.length;
    var root = true;
    return function (key, value) {
        if (root) {
            root = false;
            return value;
        }
        if (isArray(this))
            return value;
        for (var j = 0; j < keysLength; j++)
            if (keys[j] === key)
                return value;
    };
};


/***/ }),

/***/ 20156:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_162107__) {

"use strict";

var aCallable = __nested_webpack_require_162107__(98061);
var isNullOrUndefined = __nested_webpack_require_162107__(8140);
module.exports = function (V, P) {
    var func = V[P];
    return isNullOrUndefined(func) ? undefined : aCallable(func);
};


/***/ }),

/***/ 37042:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_162442__) {

"use strict";

var check = function (it) {
    return it && it.Math == Math && it;
};
module.exports =
    check(typeof globalThis == 'object' && globalThis) ||
        check(typeof window == 'object' && window) ||
        check(typeof self == 'object' && self) ||
        check(typeof __nested_webpack_require_162442__.g == 'object' && __nested_webpack_require_162442__.g) ||
        (function () { return this; })() || Function('return this')();


/***/ }),

/***/ 14434:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_162962__) {

"use strict";

var uncurryThis = __nested_webpack_require_162962__(90838);
var toObject = __nested_webpack_require_162962__(68488);
var hasOwnProperty = uncurryThis({}.hasOwnProperty);
module.exports = Object.hasOwn || function hasOwn(it, key) {
    return hasOwnProperty(toObject(it), key);
};


/***/ }),

/***/ 48889:
/***/ (function(module) {

"use strict";

module.exports = {};


/***/ }),

/***/ 36249:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_163418__) {

"use strict";

var getBuiltIn = __nested_webpack_require_163418__(98945);
module.exports = getBuiltIn('document', 'documentElement');


/***/ }),

/***/ 12816:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_163638__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_163638__(13873);
var fails = __nested_webpack_require_163638__(75834);
var createElement = __nested_webpack_require_163638__(15192);
module.exports = !DESCRIPTORS && !fails(function () {
    return Object.defineProperty(createElement('div'), 'a', {
        get: function () { return 7; }
    }).a != 7;
});


/***/ }),

/***/ 25049:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_164061__) {

"use strict";

var uncurryThis = __nested_webpack_require_164061__(90838);
var fails = __nested_webpack_require_164061__(75834);
var classof = __nested_webpack_require_164061__(6285);
var $Object = Object;
var split = uncurryThis(''.split);
module.exports = fails(function () {
    return !$Object('z').propertyIsEnumerable(0);
}) ? function (it) {
    return classof(it) == 'String' ? split(it, '') : $Object(it);
} : $Object;


/***/ }),

/***/ 92355:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_164547__) {

"use strict";

var uncurryThis = __nested_webpack_require_164547__(90838);
var isCallable = __nested_webpack_require_164547__(794);
var store = __nested_webpack_require_164547__(45752);
var functionToString = uncurryThis(Function.toString);
if (!isCallable(store.inspectSource)) {
    store.inspectSource = function (it) {
        return functionToString(it);
    };
}
module.exports = store.inspectSource;


/***/ }),

/***/ 56113:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_165012__) {

"use strict";

var NATIVE_WEAK_MAP = __nested_webpack_require_165012__(95473);
var global = __nested_webpack_require_165012__(37042);
var isObject = __nested_webpack_require_165012__(8148);
var createNonEnumerableProperty = __nested_webpack_require_165012__(45840);
var hasOwn = __nested_webpack_require_165012__(14434);
var shared = __nested_webpack_require_165012__(45752);
var sharedKey = __nested_webpack_require_165012__(85475);
var hiddenKeys = __nested_webpack_require_165012__(48889);
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var TypeError = global.TypeError;
var WeakMap = global.WeakMap;
var set, get, has;
var enforce = function (it) {
    return has(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
    return function (it) {
        var state;
        if (!isObject(it) || (state = get(it)).type !== TYPE) {
            throw TypeError('Incompatible receiver, ' + TYPE + ' required');
        }
        return state;
    };
};
if (NATIVE_WEAK_MAP || shared.state) {
    var store = shared.state || (shared.state = new WeakMap());
    store.get = store.get;
    store.has = store.has;
    store.set = store.set;
    set = function (it, metadata) {
        if (store.has(it))
            throw TypeError(OBJECT_ALREADY_INITIALIZED);
        metadata.facade = it;
        store.set(it, metadata);
        return metadata;
    };
    get = function (it) {
        return store.get(it) || {};
    };
    has = function (it) {
        return store.has(it);
    };
}
else {
    var STATE = sharedKey('state');
    hiddenKeys[STATE] = true;
    set = function (it, metadata) {
        if (hasOwn(it, STATE))
            throw TypeError(OBJECT_ALREADY_INITIALIZED);
        metadata.facade = it;
        createNonEnumerableProperty(it, STATE, metadata);
        return metadata;
    };
    get = function (it) {
        return hasOwn(it, STATE) ? it[STATE] : {};
    };
    has = function (it) {
        return hasOwn(it, STATE);
    };
}
module.exports = {
    set: set,
    get: get,
    has: has,
    enforce: enforce,
    getterFor: getterFor
};


/***/ }),

/***/ 84997:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_167093__) {

"use strict";

var wellKnownSymbol = __nested_webpack_require_167093__(19517);
var Iterators = __nested_webpack_require_167093__(84922);
var ITERATOR = wellKnownSymbol('iterator');
var ArrayPrototype = Array.prototype;
module.exports = function (it) {
    return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
};


/***/ }),

/***/ 36222:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_167512__) {

"use strict";

var classof = __nested_webpack_require_167512__(6285);
module.exports = Array.isArray || function isArray(argument) {
    return classof(argument) == 'Array';
};


/***/ }),

/***/ 794:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_167773__) {

"use strict";

var $documentAll = __nested_webpack_require_167773__(12062);
var documentAll = $documentAll.all;
module.exports = $documentAll.IS_HTMLDDA ? function (argument) {
    return typeof argument == 'function' || argument === documentAll;
} : function (argument) {
    return typeof argument == 'function';
};


/***/ }),

/***/ 15333:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_168177__) {

"use strict";

var uncurryThis = __nested_webpack_require_168177__(90838);
var fails = __nested_webpack_require_168177__(75834);
var isCallable = __nested_webpack_require_168177__(794);
var classof = __nested_webpack_require_168177__(8652);
var getBuiltIn = __nested_webpack_require_168177__(98945);
var inspectSource = __nested_webpack_require_168177__(92355);
var noop = function () { };
var empty = [];
var construct = getBuiltIn('Reflect', 'construct');
var constructorRegExp = /^\s*(?:class|function)\b/;
var exec = uncurryThis(constructorRegExp.exec);
var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);
var isConstructorModern = function isConstructor(argument) {
    if (!isCallable(argument))
        return false;
    try {
        construct(noop, empty, argument);
        return true;
    }
    catch (error) {
        return false;
    }
};
var isConstructorLegacy = function isConstructor(argument) {
    if (!isCallable(argument))
        return false;
    switch (classof(argument)) {
        case 'AsyncFunction':
        case 'GeneratorFunction':
        case 'AsyncGeneratorFunction': return false;
    }
    try {
        return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
    }
    catch (error) {
        return true;
    }
};
isConstructorLegacy.sham = true;
module.exports = !construct || fails(function () {
    var called;
    return isConstructorModern(isConstructorModern.call)
        || !isConstructorModern(Object)
        || !isConstructorModern(function () { called = true; })
        || called;
}) ? isConstructorLegacy : isConstructorModern;


/***/ }),

/***/ 56930:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_169806__) {

"use strict";

var fails = __nested_webpack_require_169806__(75834);
var isCallable = __nested_webpack_require_169806__(794);
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
    var value = data[normalize(feature)];
    return value == POLYFILL ? true
        : value == NATIVE ? false
            : isCallable(detection) ? fails(detection)
                : !!detection;
};
var normalize = isForced.normalize = function (string) {
    return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
module.exports = isForced;


/***/ }),

/***/ 8140:
/***/ (function(module) {

"use strict";

module.exports = function (it) {
    return it === null || it === undefined;
};


/***/ }),

/***/ 8148:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_170696__) {

"use strict";

var isCallable = __nested_webpack_require_170696__(794);
var $documentAll = __nested_webpack_require_170696__(12062);
var documentAll = $documentAll.all;
module.exports = $documentAll.IS_HTMLDDA ? function (it) {
    return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;
} : function (it) {
    return typeof it == 'object' ? it !== null : isCallable(it);
};


/***/ }),

/***/ 70852:
/***/ (function(module) {

"use strict";

module.exports = false;


/***/ }),

/***/ 88253:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_171263__) {

"use strict";

var getBuiltIn = __nested_webpack_require_171263__(98945);
var isCallable = __nested_webpack_require_171263__(794);
var isPrototypeOf = __nested_webpack_require_171263__(54671);
var USE_SYMBOL_AS_UID = __nested_webpack_require_171263__(57982);
var $Object = Object;
module.exports = USE_SYMBOL_AS_UID ? function (it) {
    return typeof it == 'symbol';
} : function (it) {
    var $Symbol = getBuiltIn('Symbol');
    return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
};


/***/ }),

/***/ 11274:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_171819__) {

"use strict";

var call = __nested_webpack_require_171819__(9093);
var anObject = __nested_webpack_require_171819__(52313);
var getMethod = __nested_webpack_require_171819__(20156);
module.exports = function (iterator, kind, value) {
    var innerResult, innerError;
    anObject(iterator);
    try {
        innerResult = getMethod(iterator, 'return');
        if (!innerResult) {
            if (kind === 'throw')
                throw value;
            return value;
        }
        innerResult = call(innerResult, iterator);
    }
    catch (error) {
        innerError = true;
        innerResult = error;
    }
    if (kind === 'throw')
        throw value;
    if (innerError)
        throw innerResult;
    anObject(innerResult);
    return value;
};


/***/ }),

/***/ 60928:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_172639__) {

"use strict";

var IteratorPrototype = (__nested_webpack_require_172639__(77831).IteratorPrototype);
var create = __nested_webpack_require_172639__(93503);
var createPropertyDescriptor = __nested_webpack_require_172639__(32500);
var setToStringTag = __nested_webpack_require_172639__(44532);
var Iterators = __nested_webpack_require_172639__(84922);
var returnThis = function () { return this; };
module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
    var TO_STRING_TAG = NAME + ' Iterator';
    IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });
    setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
    Iterators[TO_STRING_TAG] = returnThis;
    return IteratorConstructor;
};


/***/ }),

/***/ 13759:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_173460__) {

"use strict";

var $ = __nested_webpack_require_173460__(50791);
var call = __nested_webpack_require_173460__(9093);
var IS_PURE = __nested_webpack_require_173460__(70852);
var FunctionName = __nested_webpack_require_173460__(84521);
var isCallable = __nested_webpack_require_173460__(794);
var createIteratorConstructor = __nested_webpack_require_173460__(60928);
var getPrototypeOf = __nested_webpack_require_173460__(1074);
var setPrototypeOf = __nested_webpack_require_173460__(482);
var setToStringTag = __nested_webpack_require_173460__(44532);
var createNonEnumerableProperty = __nested_webpack_require_173460__(45840);
var defineBuiltIn = __nested_webpack_require_173460__(35065);
var wellKnownSymbol = __nested_webpack_require_173460__(19517);
var Iterators = __nested_webpack_require_173460__(84922);
var IteratorsCore = __nested_webpack_require_173460__(77831);
var PROPER_FUNCTION_NAME = FunctionName.PROPER;
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
var IteratorPrototype = IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR = wellKnownSymbol('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';
var returnThis = function () { return this; };
module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
    createIteratorConstructor(IteratorConstructor, NAME, next);
    var getIterationMethod = function (KIND) {
        if (KIND === DEFAULT && defaultIterator)
            return defaultIterator;
        if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)
            return IterablePrototype[KIND];
        switch (KIND) {
            case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
            case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
            case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
        }
        return function () { return new IteratorConstructor(this); };
    };
    var TO_STRING_TAG = NAME + ' Iterator';
    var INCORRECT_VALUES_NAME = false;
    var IterablePrototype = Iterable.prototype;
    var nativeIterator = IterablePrototype[ITERATOR]
        || IterablePrototype['@@iterator']
        || DEFAULT && IterablePrototype[DEFAULT];
    var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
    var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
    var CurrentIteratorPrototype, methods, KEY;
    if (anyNativeIterator) {
        CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
        if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
            if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
                if (setPrototypeOf) {
                    setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
                }
                else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {
                    defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);
                }
            }
            setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
            if (IS_PURE)
                Iterators[TO_STRING_TAG] = returnThis;
        }
    }
    if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
        if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {
            createNonEnumerableProperty(IterablePrototype, 'name', VALUES);
        }
        else {
            INCORRECT_VALUES_NAME = true;
            defaultIterator = function values() { return call(nativeIterator, this); };
        }
    }
    if (DEFAULT) {
        methods = {
            values: getIterationMethod(VALUES),
            keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
            entries: getIterationMethod(ENTRIES)
        };
        if (FORCED)
            for (KEY in methods) {
                if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
                    defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
                }
            }
        else
            $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
    }
    if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
        defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });
    }
    Iterators[NAME] = defaultIterator;
    return methods;
};


/***/ }),

/***/ 77831:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_178038__) {

"use strict";

var fails = __nested_webpack_require_178038__(75834);
var isCallable = __nested_webpack_require_178038__(794);
var isObject = __nested_webpack_require_178038__(8148);
var create = __nested_webpack_require_178038__(93503);
var getPrototypeOf = __nested_webpack_require_178038__(1074);
var defineBuiltIn = __nested_webpack_require_178038__(35065);
var wellKnownSymbol = __nested_webpack_require_178038__(19517);
var IS_PURE = __nested_webpack_require_178038__(70852);
var ITERATOR = wellKnownSymbol('iterator');
var BUGGY_SAFARI_ITERATORS = false;
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
if ([].keys) {
    arrayIterator = [].keys();
    if (!('next' in arrayIterator))
        BUGGY_SAFARI_ITERATORS = true;
    else {
        PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
        if (PrototypeOfArrayIteratorPrototype !== Object.prototype)
            IteratorPrototype = PrototypeOfArrayIteratorPrototype;
    }
}
var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {
    var test = {};
    return IteratorPrototype[ITERATOR].call(test) !== test;
});
if (NEW_ITERATOR_PROTOTYPE)
    IteratorPrototype = {};
else if (IS_PURE)
    IteratorPrototype = create(IteratorPrototype);
if (!isCallable(IteratorPrototype[ITERATOR])) {
    defineBuiltIn(IteratorPrototype, ITERATOR, function () {
        return this;
    });
}
module.exports = {
    IteratorPrototype: IteratorPrototype,
    BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
};


/***/ }),

/***/ 84922:
/***/ (function(module) {

"use strict";

module.exports = {};


/***/ }),

/***/ 15050:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_179659__) {

"use strict";

var toLength = __nested_webpack_require_179659__(24431);
module.exports = function (obj) {
    return toLength(obj.length);
};


/***/ }),

/***/ 40846:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_179887__) {

"use strict";

var uncurryThis = __nested_webpack_require_179887__(90838);
var fails = __nested_webpack_require_179887__(75834);
var isCallable = __nested_webpack_require_179887__(794);
var hasOwn = __nested_webpack_require_179887__(14434);
var DESCRIPTORS = __nested_webpack_require_179887__(13873);
var CONFIGURABLE_FUNCTION_NAME = (__nested_webpack_require_179887__(84521).CONFIGURABLE);
var inspectSource = __nested_webpack_require_179887__(92355);
var InternalStateModule = __nested_webpack_require_179887__(56113);
var enforceInternalState = InternalStateModule.enforce;
var getInternalState = InternalStateModule.get;
var $String = String;
var defineProperty = Object.defineProperty;
var stringSlice = uncurryThis(''.slice);
var replace = uncurryThis(''.replace);
var join = uncurryThis([].join);
var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
    return defineProperty(function () { }, 'length', { value: 8 }).length !== 8;
});
var TEMPLATE = String(String).split('String');
var makeBuiltIn = module.exports = function (value, name, options) {
    if (stringSlice($String(name), 0, 7) === 'Symbol(') {
        name = '[' + replace($String(name), /^Symbol\(([^)]*)\)/, '$1') + ']';
    }
    if (options && options.getter)
        name = 'get ' + name;
    if (options && options.setter)
        name = 'set ' + name;
    if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
        if (DESCRIPTORS)
            defineProperty(value, 'name', { value: name, configurable: true });
        else
            value.name = name;
    }
    if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
        defineProperty(value, 'length', { value: options.arity });
    }
    try {
        if (options && hasOwn(options, 'constructor') && options.constructor) {
            if (DESCRIPTORS)
                defineProperty(value, 'prototype', { writable: false });
        }
        else if (value.prototype)
            value.prototype = undefined;
    }
    catch (error) { }
    var state = enforceInternalState(value);
    if (!hasOwn(state, 'source')) {
        state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
    }
    return value;
};
Function.prototype.toString = makeBuiltIn(function toString() {
    return isCallable(this) && getInternalState(this).source || inspectSource(this);
}, 'toString');


/***/ }),

/***/ 43932:
/***/ (function(module) {

"use strict";

var ceil = Math.ceil;
var floor = Math.floor;
module.exports = Math.trunc || function trunc(x) {
    var n = +x;
    return (n > 0 ? floor : ceil)(n);
};


/***/ }),

/***/ 93503:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_182512__) {

"use strict";

var anObject = __nested_webpack_require_182512__(52313);
var definePropertiesModule = __nested_webpack_require_182512__(5770);
var enumBugKeys = __nested_webpack_require_182512__(64456);
var hiddenKeys = __nested_webpack_require_182512__(48889);
var html = __nested_webpack_require_182512__(36249);
var documentCreateElement = __nested_webpack_require_182512__(15192);
var sharedKey = __nested_webpack_require_182512__(85475);
var GT = '>';
var LT = '<';
var PROTOTYPE = 'prototype';
var SCRIPT = 'script';
var IE_PROTO = sharedKey('IE_PROTO');
var EmptyConstructor = function () { };
var scriptTag = function (content) {
    return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
};
var NullProtoObjectViaActiveX = function (activeXDocument) {
    activeXDocument.write(scriptTag(''));
    activeXDocument.close();
    var temp = activeXDocument.parentWindow.Object;
    activeXDocument = null;
    return temp;
};
var NullProtoObjectViaIFrame = function () {
    var iframe = documentCreateElement('iframe');
    var JS = 'java' + SCRIPT + ':';
    var iframeDocument;
    iframe.style.display = 'none';
    html.appendChild(iframe);
    iframe.src = String(JS);
    iframeDocument = iframe.contentWindow.document;
    iframeDocument.open();
    iframeDocument.write(scriptTag('document.F=Object'));
    iframeDocument.close();
    return iframeDocument.F;
};
var activeXDocument;
var NullProtoObject = function () {
    try {
        activeXDocument = new ActiveXObject('htmlfile');
    }
    catch (error) { }
    NullProtoObject = typeof document != 'undefined'
        ? document.domain && activeXDocument
            ? NullProtoObjectViaActiveX(activeXDocument)
            : NullProtoObjectViaIFrame()
        : NullProtoObjectViaActiveX(activeXDocument);
    var length = enumBugKeys.length;
    while (length--)
        delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
    return NullProtoObject();
};
hiddenKeys[IE_PROTO] = true;
module.exports = Object.create || function create(O, Properties) {
    var result;
    if (O !== null) {
        EmptyConstructor[PROTOTYPE] = anObject(O);
        result = new EmptyConstructor();
        EmptyConstructor[PROTOTYPE] = null;
        result[IE_PROTO] = O;
    }
    else
        result = NullProtoObject();
    return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
};


/***/ }),

/***/ 5770:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_184899__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_184899__(13873);
var V8_PROTOTYPE_DEFINE_BUG = __nested_webpack_require_184899__(63142);
var definePropertyModule = __nested_webpack_require_184899__(73252);
var anObject = __nested_webpack_require_184899__(52313);
var toIndexedObject = __nested_webpack_require_184899__(98651);
var objectKeys = __nested_webpack_require_184899__(3385);
exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
    anObject(O);
    var props = toIndexedObject(Properties);
    var keys = objectKeys(Properties);
    var length = keys.length;
    var index = 0;
    var key;
    while (length > index)
        definePropertyModule.f(O, key = keys[index++], props[key]);
    return O;
};


/***/ }),

/***/ 73252:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_185708__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_185708__(13873);
var IE8_DOM_DEFINE = __nested_webpack_require_185708__(12816);
var V8_PROTOTYPE_DEFINE_BUG = __nested_webpack_require_185708__(63142);
var anObject = __nested_webpack_require_185708__(52313);
var toPropertyKey = __nested_webpack_require_185708__(43836);
var $TypeError = TypeError;
var $defineProperty = Object.defineProperty;
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var ENUMERABLE = 'enumerable';
var CONFIGURABLE = 'configurable';
var WRITABLE = 'writable';
exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
    anObject(O);
    P = toPropertyKey(P);
    anObject(Attributes);
    if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
        var current = $getOwnPropertyDescriptor(O, P);
        if (current && current[WRITABLE]) {
            O[P] = Attributes.value;
            Attributes = {
                configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
                enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
                writable: false
            };
        }
    }
    return $defineProperty(O, P, Attributes);
} : $defineProperty : function defineProperty(O, P, Attributes) {
    anObject(O);
    P = toPropertyKey(P);
    anObject(Attributes);
    if (IE8_DOM_DEFINE)
        try {
            return $defineProperty(O, P, Attributes);
        }
        catch (error) { }
    if ('get' in Attributes || 'set' in Attributes)
        throw $TypeError('Accessors not supported');
    if ('value' in Attributes)
        O[P] = Attributes.value;
    return O;
};


/***/ }),

/***/ 36999:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_187526__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_187526__(13873);
var call = __nested_webpack_require_187526__(9093);
var propertyIsEnumerableModule = __nested_webpack_require_187526__(33244);
var createPropertyDescriptor = __nested_webpack_require_187526__(32500);
var toIndexedObject = __nested_webpack_require_187526__(98651);
var toPropertyKey = __nested_webpack_require_187526__(43836);
var hasOwn = __nested_webpack_require_187526__(14434);
var IE8_DOM_DEFINE = __nested_webpack_require_187526__(12816);
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
    O = toIndexedObject(O);
    P = toPropertyKey(P);
    if (IE8_DOM_DEFINE)
        try {
            return $getOwnPropertyDescriptor(O, P);
        }
        catch (error) { }
    if (hasOwn(O, P))
        return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
};


/***/ }),

/***/ 53305:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_188489__) {

"use strict";

var classof = __nested_webpack_require_188489__(6285);
var toIndexedObject = __nested_webpack_require_188489__(98651);
var $getOwnPropertyNames = (__nested_webpack_require_188489__(7792).f);
var arraySlice = __nested_webpack_require_188489__(57652);
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
    ? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
    try {
        return $getOwnPropertyNames(it);
    }
    catch (error) {
        return arraySlice(windowNames);
    }
};
module.exports.f = function getOwnPropertyNames(it) {
    return windowNames && classof(it) == 'Window'
        ? getWindowNames(it)
        : $getOwnPropertyNames(toIndexedObject(it));
};


/***/ }),

/***/ 7792:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_189280__) {

"use strict";

var internalObjectKeys = __nested_webpack_require_189280__(84729);
var enumBugKeys = __nested_webpack_require_189280__(64456);
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
    return internalObjectKeys(O, hiddenKeys);
};


/***/ }),

/***/ 23953:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ 1074:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_189814__) {

"use strict";

var hasOwn = __nested_webpack_require_189814__(14434);
var isCallable = __nested_webpack_require_189814__(794);
var toObject = __nested_webpack_require_189814__(68488);
var sharedKey = __nested_webpack_require_189814__(85475);
var CORRECT_PROTOTYPE_GETTER = __nested_webpack_require_189814__(27259);
var IE_PROTO = sharedKey('IE_PROTO');
var $Object = Object;
var ObjectPrototype = $Object.prototype;
module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
    var object = toObject(O);
    if (hasOwn(object, IE_PROTO))
        return object[IE_PROTO];
    var constructor = object.constructor;
    if (isCallable(constructor) && object instanceof constructor) {
        return constructor.prototype;
    }
    return object instanceof $Object ? ObjectPrototype : null;
};


/***/ }),

/***/ 54671:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_190661__) {

"use strict";

var uncurryThis = __nested_webpack_require_190661__(90838);
module.exports = uncurryThis({}.isPrototypeOf);


/***/ }),

/***/ 84729:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_190870__) {

"use strict";

var uncurryThis = __nested_webpack_require_190870__(90838);
var hasOwn = __nested_webpack_require_190870__(14434);
var toIndexedObject = __nested_webpack_require_190870__(98651);
var indexOf = (__nested_webpack_require_190870__(79327).indexOf);
var hiddenKeys = __nested_webpack_require_190870__(48889);
var push = uncurryThis([].push);
module.exports = function (object, names) {
    var O = toIndexedObject(object);
    var i = 0;
    var result = [];
    var key;
    for (key in O)
        !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
    while (names.length > i)
        if (hasOwn(O, key = names[i++])) {
            ~indexOf(result, key) || push(result, key);
        }
    return result;
};


/***/ }),

/***/ 3385:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_191633__) {

"use strict";

var internalObjectKeys = __nested_webpack_require_191633__(84729);
var enumBugKeys = __nested_webpack_require_191633__(64456);
module.exports = Object.keys || function keys(O) {
    return internalObjectKeys(O, enumBugKeys);
};


/***/ }),

/***/ 33244:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

var $propertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
    var descriptor = getOwnPropertyDescriptor(this, V);
    return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable;


/***/ }),

/***/ 482:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_192439__) {

"use strict";

var uncurryThisAccessor = __nested_webpack_require_192439__(47448);
var anObject = __nested_webpack_require_192439__(52313);
var aPossiblePrototype = __nested_webpack_require_192439__(75839);
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
    var CORRECT_SETTER = false;
    var test = {};
    var setter;
    try {
        setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
        setter(test, []);
        CORRECT_SETTER = test instanceof Array;
    }
    catch (error) { }
    return function setPrototypeOf(O, proto) {
        anObject(O);
        aPossiblePrototype(proto);
        if (CORRECT_SETTER)
            setter(O, proto);
        else
            O.__proto__ = proto;
        return O;
    };
}() : undefined);


/***/ }),

/***/ 57555:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_193286__) {

"use strict";

var TO_STRING_TAG_SUPPORT = __nested_webpack_require_193286__(6424);
var classof = __nested_webpack_require_193286__(8652);
module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
    return '[object ' + classof(this) + ']';
};


/***/ }),

/***/ 82472:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_193622__) {

"use strict";

var call = __nested_webpack_require_193622__(9093);
var isCallable = __nested_webpack_require_193622__(794);
var isObject = __nested_webpack_require_193622__(8148);
var $TypeError = TypeError;
module.exports = function (input, pref) {
    var fn, val;
    if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))
        return val;
    if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input)))
        return val;
    if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))
        return val;
    throw $TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ 86671:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_194347__) {

"use strict";

var getBuiltIn = __nested_webpack_require_194347__(98945);
var uncurryThis = __nested_webpack_require_194347__(90838);
var getOwnPropertyNamesModule = __nested_webpack_require_194347__(7792);
var getOwnPropertySymbolsModule = __nested_webpack_require_194347__(23953);
var anObject = __nested_webpack_require_194347__(52313);
var concat = uncurryThis([].concat);
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
    var keys = getOwnPropertyNamesModule.f(anObject(it));
    var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
    return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
};


/***/ }),

/***/ 31116:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_195037__) {

"use strict";

var global = __nested_webpack_require_195037__(37042);
module.exports = global;


/***/ }),

/***/ 60265:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_195218__) {

"use strict";

var isNullOrUndefined = __nested_webpack_require_195218__(8140);
var $TypeError = TypeError;
module.exports = function (it) {
    if (isNullOrUndefined(it))
        throw $TypeError("Can't call method on " + it);
    return it;
};


/***/ }),

/***/ 44532:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_195550__) {

"use strict";

var defineProperty = (__nested_webpack_require_195550__(73252).f);
var hasOwn = __nested_webpack_require_195550__(14434);
var wellKnownSymbol = __nested_webpack_require_195550__(19517);
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
module.exports = function (target, TAG, STATIC) {
    if (target && !STATIC)
        target = target.prototype;
    if (target && !hasOwn(target, TO_STRING_TAG)) {
        defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });
    }
};


/***/ }),

/***/ 85475:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_196117__) {

"use strict";

var shared = __nested_webpack_require_196117__(95138);
var uid = __nested_webpack_require_196117__(15257);
var keys = shared('keys');
module.exports = function (key) {
    return keys[key] || (keys[key] = uid(key));
};


/***/ }),

/***/ 45752:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_196423__) {

"use strict";

var global = __nested_webpack_require_196423__(37042);
var defineGlobalProperty = __nested_webpack_require_196423__(25379);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || defineGlobalProperty(SHARED, {});
module.exports = store;


/***/ }),

/***/ 95138:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_196757__) {

"use strict";

var IS_PURE = __nested_webpack_require_196757__(70852);
var store = __nested_webpack_require_196757__(45752);
(module.exports = function (key, value) {
    return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
    version: '3.28.0',
    mode: IS_PURE ? 'pure' : 'global',
    copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
    license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',
    source: 'https://github.com/zloirock/core-js'
});


/***/ }),

/***/ 41397:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_197345__) {

"use strict";

var uncurryThis = __nested_webpack_require_197345__(90838);
var toIntegerOrInfinity = __nested_webpack_require_197345__(27876);
var toString = __nested_webpack_require_197345__(63046);
var requireObjectCoercible = __nested_webpack_require_197345__(60265);
var charAt = uncurryThis(''.charAt);
var charCodeAt = uncurryThis(''.charCodeAt);
var stringSlice = uncurryThis(''.slice);
var createMethod = function (CONVERT_TO_STRING) {
    return function ($this, pos) {
        var S = toString(requireObjectCoercible($this));
        var position = toIntegerOrInfinity(pos);
        var size = S.length;
        var first, second;
        if (position < 0 || position >= size)
            return CONVERT_TO_STRING ? '' : undefined;
        first = charCodeAt(S, position);
        return first < 0xD800 || first > 0xDBFF || position + 1 === size
            || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF
            ? CONVERT_TO_STRING
                ? charAt(S, position)
                : first
            : CONVERT_TO_STRING
                ? stringSlice(S, position, position + 2)
                : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
    };
};
module.exports = {
    codeAt: createMethod(false),
    charAt: createMethod(true)
};


/***/ }),

/***/ 73800:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_198678__) {

"use strict";

var V8_VERSION = __nested_webpack_require_198678__(65190);
var fails = __nested_webpack_require_198678__(75834);
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
    var symbol = Symbol();
    return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
        !Symbol.sham && V8_VERSION && V8_VERSION < 41;
});


/***/ }),

/***/ 13829:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_199105__) {

"use strict";

var call = __nested_webpack_require_199105__(9093);
var getBuiltIn = __nested_webpack_require_199105__(98945);
var wellKnownSymbol = __nested_webpack_require_199105__(19517);
var defineBuiltIn = __nested_webpack_require_199105__(35065);
module.exports = function () {
    var Symbol = getBuiltIn('Symbol');
    var SymbolPrototype = Symbol && Symbol.prototype;
    var valueOf = SymbolPrototype && SymbolPrototype.valueOf;
    var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
    if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {
        defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {
            return call(valueOf, this);
        }, { arity: 1 });
    }
};


/***/ }),

/***/ 31948:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_199849__) {

"use strict";

var NATIVE_SYMBOL = __nested_webpack_require_199849__(73800);
module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;


/***/ }),

/***/ 10586:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_200082__) {

"use strict";

var toIntegerOrInfinity = __nested_webpack_require_200082__(27876);
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
    var integer = toIntegerOrInfinity(index);
    return integer < 0 ? max(integer + length, 0) : min(integer, length);
};


/***/ }),

/***/ 98651:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_200458__) {

"use strict";

var IndexedObject = __nested_webpack_require_200458__(25049);
var requireObjectCoercible = __nested_webpack_require_200458__(60265);
module.exports = function (it) {
    return IndexedObject(requireObjectCoercible(it));
};


/***/ }),

/***/ 27876:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_200768__) {

"use strict";

var trunc = __nested_webpack_require_200768__(43932);
module.exports = function (argument) {
    var number = +argument;
    return number !== number || number === 0 ? 0 : trunc(number);
};


/***/ }),

/***/ 24431:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_201059__) {

"use strict";

var toIntegerOrInfinity = __nested_webpack_require_201059__(27876);
var min = Math.min;
module.exports = function (argument) {
    return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0;
};


/***/ }),

/***/ 68488:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_201374__) {

"use strict";

var requireObjectCoercible = __nested_webpack_require_201374__(60265);
var $Object = Object;
module.exports = function (argument) {
    return $Object(requireObjectCoercible(argument));
};


/***/ }),

/***/ 11261:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_201664__) {

"use strict";

var call = __nested_webpack_require_201664__(9093);
var isObject = __nested_webpack_require_201664__(8148);
var isSymbol = __nested_webpack_require_201664__(88253);
var getMethod = __nested_webpack_require_201664__(20156);
var ordinaryToPrimitive = __nested_webpack_require_201664__(82472);
var wellKnownSymbol = __nested_webpack_require_201664__(19517);
var $TypeError = TypeError;
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
module.exports = function (input, pref) {
    if (!isObject(input) || isSymbol(input))
        return input;
    var exoticToPrim = getMethod(input, TO_PRIMITIVE);
    var result;
    if (exoticToPrim) {
        if (pref === undefined)
            pref = 'default';
        result = call(exoticToPrim, input, pref);
        if (!isObject(result) || isSymbol(result))
            return result;
        throw $TypeError("Can't convert object to primitive value");
    }
    if (pref === undefined)
        pref = 'number';
    return ordinaryToPrimitive(input, pref);
};


/***/ }),

/***/ 43836:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_202699__) {

"use strict";

var toPrimitive = __nested_webpack_require_202699__(11261);
var isSymbol = __nested_webpack_require_202699__(88253);
module.exports = function (argument) {
    var key = toPrimitive(argument, 'string');
    return isSymbol(key) ? key : key + '';
};


/***/ }),

/***/ 6424:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_203034__) {

"use strict";

var wellKnownSymbol = __nested_webpack_require_203034__(19517);
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};
test[TO_STRING_TAG] = 'z';
module.exports = String(test) === '[object z]';


/***/ }),

/***/ 63046:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_203341__) {

"use strict";

var classof = __nested_webpack_require_203341__(8652);
var $String = String;
module.exports = function (argument) {
    if (classof(argument) === 'Symbol')
        throw TypeError('Cannot convert a Symbol value to a string');
    return $String(argument);
};


/***/ }),

/***/ 98418:
/***/ (function(module) {

"use strict";

var $String = String;
module.exports = function (argument) {
    try {
        return $String(argument);
    }
    catch (error) {
        return 'Object';
    }
};


/***/ }),

/***/ 15257:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_203934__) {

"use strict";

var uncurryThis = __nested_webpack_require_203934__(90838);
var id = 0;
var postfix = Math.random();
var toString = uncurryThis(1.0.toString);
module.exports = function (key) {
    return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
};


/***/ }),

/***/ 57982:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_204308__) {

"use strict";

var NATIVE_SYMBOL = __nested_webpack_require_204308__(73800);
module.exports = NATIVE_SYMBOL
    && !Symbol.sham
    && typeof Symbol.iterator == 'symbol';


/***/ }),

/***/ 63142:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_204565__) {

"use strict";

var DESCRIPTORS = __nested_webpack_require_204565__(13873);
var fails = __nested_webpack_require_204565__(75834);
module.exports = DESCRIPTORS && fails(function () {
    return Object.defineProperty(function () { }, 'prototype', {
        value: 42,
        writable: false
    }).prototype != 42;
});


/***/ }),

/***/ 95473:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_204954__) {

"use strict";

var global = __nested_webpack_require_204954__(37042);
var isCallable = __nested_webpack_require_204954__(794);
var WeakMap = global.WeakMap;
module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));


/***/ }),

/***/ 89633:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_205260__) {

"use strict";

var path = __nested_webpack_require_205260__(31116);
var hasOwn = __nested_webpack_require_205260__(14434);
var wrappedWellKnownSymbolModule = __nested_webpack_require_205260__(96767);
var defineProperty = (__nested_webpack_require_205260__(73252).f);
module.exports = function (NAME) {
    var Symbol = path.Symbol || (path.Symbol = {});
    if (!hasOwn(Symbol, NAME))
        defineProperty(Symbol, NAME, {
            value: wrappedWellKnownSymbolModule.f(NAME)
        });
};


/***/ }),

/***/ 96767:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_205799__) {

"use strict";

var wellKnownSymbol = __nested_webpack_require_205799__(19517);
exports.f = wellKnownSymbol;


/***/ }),

/***/ 19517:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_205993__) {

"use strict";

var global = __nested_webpack_require_205993__(37042);
var shared = __nested_webpack_require_205993__(95138);
var hasOwn = __nested_webpack_require_205993__(14434);
var uid = __nested_webpack_require_205993__(15257);
var NATIVE_SYMBOL = __nested_webpack_require_205993__(73800);
var USE_SYMBOL_AS_UID = __nested_webpack_require_205993__(57982);
var Symbol = global.Symbol;
var WellKnownSymbolsStore = shared('wks');
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
module.exports = function (name) {
    if (!hasOwn(WellKnownSymbolsStore, name)) {
        WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)
            ? Symbol[name]
            : createWellKnownSymbol('Symbol.' + name);
    }
    return WellKnownSymbolsStore[name];
};


/***/ }),

/***/ 54166:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_206860__) {

"use strict";

var $ = __nested_webpack_require_206860__(50791);
var fails = __nested_webpack_require_206860__(75834);
var isArray = __nested_webpack_require_206860__(36222);
var isObject = __nested_webpack_require_206860__(8148);
var toObject = __nested_webpack_require_206860__(68488);
var lengthOfArrayLike = __nested_webpack_require_206860__(15050);
var doesNotExceedSafeInteger = __nested_webpack_require_206860__(39505);
var createProperty = __nested_webpack_require_206860__(89476);
var arraySpeciesCreate = __nested_webpack_require_206860__(6429);
var arrayMethodHasSpeciesSupport = __nested_webpack_require_206860__(63833);
var wellKnownSymbol = __nested_webpack_require_206860__(19517);
var V8_VERSION = __nested_webpack_require_206860__(65190);
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
    var array = [];
    array[IS_CONCAT_SPREADABLE] = false;
    return array.concat()[0] !== array;
});
var isConcatSpreadable = function (O) {
    if (!isObject(O))
        return false;
    var spreadable = O[IS_CONCAT_SPREADABLE];
    return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');
$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
    concat: function concat(arg) {
        var O = toObject(this);
        var A = arraySpeciesCreate(O, 0);
        var n = 0;
        var i, k, length, len, E;
        for (i = -1, length = arguments.length; i < length; i++) {
            E = i === -1 ? O : arguments[i];
            if (isConcatSpreadable(E)) {
                len = lengthOfArrayLike(E);
                doesNotExceedSafeInteger(n + len);
                for (k = 0; k < len; k++, n++)
                    if (k in E)
                        createProperty(A, n, E[k]);
            }
            else {
                doesNotExceedSafeInteger(n + 1);
                createProperty(A, n++, E);
            }
        }
        A.length = n;
        return A;
    }
});


/***/ }),

/***/ 22513:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_208901__) {

"use strict";

var $ = __nested_webpack_require_208901__(50791);
var $findIndex = (__nested_webpack_require_208901__(56881).findIndex);
var addToUnscopables = __nested_webpack_require_208901__(15179);
var FIND_INDEX = 'findIndex';
var SKIPS_HOLES = true;
if (FIND_INDEX in [])
    Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
    findIndex: function findIndex(callbackfn) {
        return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
});
addToUnscopables(FIND_INDEX);


/***/ }),

/***/ 70057:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_209558__) {

"use strict";

var $ = __nested_webpack_require_209558__(50791);
var from = __nested_webpack_require_209558__(92707);
var checkCorrectnessOfIteration = __nested_webpack_require_209558__(7581);
var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
    Array.from(iterable);
});
$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
    from: from
});


/***/ }),

/***/ 67507:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_210018__) {

"use strict";

var $ = __nested_webpack_require_210018__(50791);
var getBuiltIn = __nested_webpack_require_210018__(98945);
var apply = __nested_webpack_require_210018__(55101);
var call = __nested_webpack_require_210018__(9093);
var uncurryThis = __nested_webpack_require_210018__(90838);
var fails = __nested_webpack_require_210018__(75834);
var isCallable = __nested_webpack_require_210018__(794);
var isSymbol = __nested_webpack_require_210018__(88253);
var arraySlice = __nested_webpack_require_210018__(54832);
var getReplacerFunction = __nested_webpack_require_210018__(6693);
var NATIVE_SYMBOL = __nested_webpack_require_210018__(73800);
var $String = String;
var $stringify = getBuiltIn('JSON', 'stringify');
var exec = uncurryThis(/./.exec);
var charAt = uncurryThis(''.charAt);
var charCodeAt = uncurryThis(''.charCodeAt);
var replace = uncurryThis(''.replace);
var numberToString = uncurryThis(1.0.toString);
var tester = /[\uD800-\uDFFF]/g;
var low = /^[\uD800-\uDBFF]$/;
var hi = /^[\uDC00-\uDFFF]$/;
var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {
    var symbol = getBuiltIn('Symbol')();
    return $stringify([symbol]) != '[null]'
        || $stringify({ a: symbol }) != '{}'
        || $stringify(Object(symbol)) != '{}';
});
var ILL_FORMED_UNICODE = fails(function () {
    return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
        || $stringify('\uDEAD') !== '"\\udead"';
});
var stringifyWithSymbolsFix = function (it, replacer) {
    var args = arraySlice(arguments);
    var $replacer = getReplacerFunction(replacer);
    if (!isCallable($replacer) && (it === undefined || isSymbol(it)))
        return;
    args[1] = function (key, value) {
        if (isCallable($replacer))
            value = call($replacer, this, $String(key), value);
        if (!isSymbol(value))
            return value;
    };
    return apply($stringify, null, args);
};
var fixIllFormed = function (match, offset, string) {
    var prev = charAt(string, offset - 1);
    var next = charAt(string, offset + 1);
    if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {
        return '\\u' + numberToString(charCodeAt(match, 0), 16);
    }
    return match;
};
if ($stringify) {
    $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
        stringify: function stringify(it, replacer, space) {
            var args = arraySlice(arguments);
            var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
            return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;
        }
    });
}


/***/ }),

/***/ 90217:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_212680__) {

"use strict";

var global = __nested_webpack_require_212680__(37042);
var setToStringTag = __nested_webpack_require_212680__(44532);
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ 73477:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_212945__) {

"use strict";

var setToStringTag = __nested_webpack_require_212945__(44532);
setToStringTag(Math, 'Math', true);


/***/ }),

/***/ 30165:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_213162__) {

"use strict";

var $ = __nested_webpack_require_213162__(50791);
var NATIVE_SYMBOL = __nested_webpack_require_213162__(73800);
var fails = __nested_webpack_require_213162__(75834);
var getOwnPropertySymbolsModule = __nested_webpack_require_213162__(23953);
var toObject = __nested_webpack_require_213162__(68488);
var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });
$({ target: 'Object', stat: true, forced: FORCED }, {
    getOwnPropertySymbols: function getOwnPropertySymbols(it) {
        var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
        return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];
    }
});


/***/ }),

/***/ 32044:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_213891__) {

"use strict";

var TO_STRING_TAG_SUPPORT = __nested_webpack_require_213891__(6424);
var defineBuiltIn = __nested_webpack_require_213891__(35065);
var toString = __nested_webpack_require_213891__(57555);
if (!TO_STRING_TAG_SUPPORT) {
    defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });
}


/***/ }),

/***/ 93697:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_214278__) {

"use strict";

var $ = __nested_webpack_require_214278__(50791);
var global = __nested_webpack_require_214278__(37042);
var setToStringTag = __nested_webpack_require_214278__(44532);
$({ global: true }, { Reflect: {} });
setToStringTag(global.Reflect, 'Reflect', true);


/***/ }),

/***/ 52867:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_214623__) {

"use strict";

var charAt = (__nested_webpack_require_214623__(41397).charAt);
var toString = __nested_webpack_require_214623__(63046);
var InternalStateModule = __nested_webpack_require_214623__(56113);
var defineIterator = __nested_webpack_require_214623__(13759);
var createIterResultObject = __nested_webpack_require_214623__(17427);
var STRING_ITERATOR = 'String Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
defineIterator(String, 'String', function (iterated) {
    setInternalState(this, {
        type: STRING_ITERATOR,
        string: toString(iterated),
        index: 0
    });
}, function next() {
    var state = getInternalState(this);
    var string = state.string;
    var index = state.index;
    var point;
    if (index >= string.length)
        return createIterResultObject(undefined, true);
    point = charAt(string, index);
    state.index += point.length;
    return createIterResultObject(point, false);
});


/***/ }),

/***/ 28424:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_215689__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_215689__(89633);
defineWellKnownSymbol('asyncIterator');


/***/ }),

/***/ 9656:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_215916__) {

"use strict";

var $ = __nested_webpack_require_215916__(50791);
var global = __nested_webpack_require_215916__(37042);
var call = __nested_webpack_require_215916__(9093);
var uncurryThis = __nested_webpack_require_215916__(90838);
var IS_PURE = __nested_webpack_require_215916__(70852);
var DESCRIPTORS = __nested_webpack_require_215916__(13873);
var NATIVE_SYMBOL = __nested_webpack_require_215916__(73800);
var fails = __nested_webpack_require_215916__(75834);
var hasOwn = __nested_webpack_require_215916__(14434);
var isPrototypeOf = __nested_webpack_require_215916__(54671);
var anObject = __nested_webpack_require_215916__(52313);
var toIndexedObject = __nested_webpack_require_215916__(98651);
var toPropertyKey = __nested_webpack_require_215916__(43836);
var $toString = __nested_webpack_require_215916__(63046);
var createPropertyDescriptor = __nested_webpack_require_215916__(32500);
var nativeObjectCreate = __nested_webpack_require_215916__(93503);
var objectKeys = __nested_webpack_require_215916__(3385);
var getOwnPropertyNamesModule = __nested_webpack_require_215916__(7792);
var getOwnPropertyNamesExternal = __nested_webpack_require_215916__(53305);
var getOwnPropertySymbolsModule = __nested_webpack_require_215916__(23953);
var getOwnPropertyDescriptorModule = __nested_webpack_require_215916__(36999);
var definePropertyModule = __nested_webpack_require_215916__(73252);
var definePropertiesModule = __nested_webpack_require_215916__(5770);
var propertyIsEnumerableModule = __nested_webpack_require_215916__(33244);
var defineBuiltIn = __nested_webpack_require_215916__(35065);
var defineBuiltInAccessor = __nested_webpack_require_215916__(97548);
var shared = __nested_webpack_require_215916__(95138);
var sharedKey = __nested_webpack_require_215916__(85475);
var hiddenKeys = __nested_webpack_require_215916__(48889);
var uid = __nested_webpack_require_215916__(15257);
var wellKnownSymbol = __nested_webpack_require_215916__(19517);
var wrappedWellKnownSymbolModule = __nested_webpack_require_215916__(96767);
var defineWellKnownSymbol = __nested_webpack_require_215916__(89633);
var defineSymbolToPrimitive = __nested_webpack_require_215916__(13829);
var setToStringTag = __nested_webpack_require_215916__(44532);
var InternalStateModule = __nested_webpack_require_215916__(56113);
var $forEach = (__nested_webpack_require_215916__(56881).forEach);
var HIDDEN = sharedKey('hidden');
var SYMBOL = 'Symbol';
var PROTOTYPE = 'prototype';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(SYMBOL);
var ObjectPrototype = Object[PROTOTYPE];
var $Symbol = global.Symbol;
var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
var TypeError = global.TypeError;
var QObject = global.QObject;
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
var nativeDefineProperty = definePropertyModule.f;
var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
var push = uncurryThis([].push);
var AllSymbols = shared('symbols');
var ObjectPrototypeSymbols = shared('op-symbols');
var WellKnownSymbolsStore = shared('wks');
var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
var setSymbolDescriptor = DESCRIPTORS && fails(function () {
    return nativeObjectCreate(nativeDefineProperty({}, 'a', {
        get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
    })).a != 7;
}) ? function (O, P, Attributes) {
    var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
    if (ObjectPrototypeDescriptor)
        delete ObjectPrototype[P];
    nativeDefineProperty(O, P, Attributes);
    if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
        nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
    }
} : nativeDefineProperty;
var wrap = function (tag, description) {
    var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);
    setInternalState(symbol, {
        type: SYMBOL,
        tag: tag,
        description: description
    });
    if (!DESCRIPTORS)
        symbol.description = description;
    return symbol;
};
var $defineProperty = function defineProperty(O, P, Attributes) {
    if (O === ObjectPrototype)
        $defineProperty(ObjectPrototypeSymbols, P, Attributes);
    anObject(O);
    var key = toPropertyKey(P);
    anObject(Attributes);
    if (hasOwn(AllSymbols, key)) {
        if (!Attributes.enumerable) {
            if (!hasOwn(O, HIDDEN))
                nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
            O[HIDDEN][key] = true;
        }
        else {
            if (hasOwn(O, HIDDEN) && O[HIDDEN][key])
                O[HIDDEN][key] = false;
            Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
        }
        return setSymbolDescriptor(O, key, Attributes);
    }
    return nativeDefineProperty(O, key, Attributes);
};
var $defineProperties = function defineProperties(O, Properties) {
    anObject(O);
    var properties = toIndexedObject(Properties);
    var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
    $forEach(keys, function (key) {
        if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key))
            $defineProperty(O, key, properties[key]);
    });
    return O;
};
var $create = function create(O, Properties) {
    return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
};
var $propertyIsEnumerable = function propertyIsEnumerable(V) {
    var P = toPropertyKey(V);
    var enumerable = call(nativePropertyIsEnumerable, this, P);
    if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P))
        return false;
    return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]
        ? enumerable : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
    var it = toIndexedObject(O);
    var key = toPropertyKey(P);
    if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key))
        return;
    var descriptor = nativeGetOwnPropertyDescriptor(it, key);
    if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {
        descriptor.enumerable = true;
    }
    return descriptor;
};
var $getOwnPropertyNames = function getOwnPropertyNames(O) {
    var names = nativeGetOwnPropertyNames(toIndexedObject(O));
    var result = [];
    $forEach(names, function (key) {
        if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key))
            push(result, key);
    });
    return result;
};
var $getOwnPropertySymbols = function (O) {
    var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
    var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
    var result = [];
    $forEach(names, function (key) {
        if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {
            push(result, AllSymbols[key]);
        }
    });
    return result;
};
if (!NATIVE_SYMBOL) {
    $Symbol = function Symbol() {
        if (isPrototypeOf(SymbolPrototype, this))
            throw TypeError('Symbol is not a constructor');
        var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);
        var tag = uid(description);
        var setter = function (value) {
            if (this === ObjectPrototype)
                call(setter, ObjectPrototypeSymbols, value);
            if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag))
                this[HIDDEN][tag] = false;
            setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
        };
        if (DESCRIPTORS && USE_SETTER)
            setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
        return wrap(tag, description);
    };
    SymbolPrototype = $Symbol[PROTOTYPE];
    defineBuiltIn(SymbolPrototype, 'toString', function toString() {
        return getInternalState(this).tag;
    });
    defineBuiltIn($Symbol, 'withoutSetter', function (description) {
        return wrap(uid(description), description);
    });
    propertyIsEnumerableModule.f = $propertyIsEnumerable;
    definePropertyModule.f = $defineProperty;
    definePropertiesModule.f = $defineProperties;
    getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
    getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
    getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
    wrappedWellKnownSymbolModule.f = function (name) {
        return wrap(wellKnownSymbol(name), name);
    };
    if (DESCRIPTORS) {
        defineBuiltInAccessor(SymbolPrototype, 'description', {
            configurable: true,
            get: function description() {
                return getInternalState(this).description;
            }
        });
        if (!IS_PURE) {
            defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
        }
    }
}
$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
    Symbol: $Symbol
});
$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
    defineWellKnownSymbol(name);
});
$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
    useSetter: function () { USE_SETTER = true; },
    useSimple: function () { USE_SETTER = false; }
});
$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
    create: $create,
    defineProperty: $defineProperty,
    defineProperties: $defineProperties,
    getOwnPropertyDescriptor: $getOwnPropertyDescriptor
});
$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
    getOwnPropertyNames: $getOwnPropertyNames
});
defineSymbolToPrimitive();
setToStringTag($Symbol, SYMBOL);
hiddenKeys[HIDDEN] = true;


/***/ }),

/***/ 64514:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_225582__) {

"use strict";

var $ = __nested_webpack_require_225582__(50791);
var DESCRIPTORS = __nested_webpack_require_225582__(13873);
var global = __nested_webpack_require_225582__(37042);
var uncurryThis = __nested_webpack_require_225582__(90838);
var hasOwn = __nested_webpack_require_225582__(14434);
var isCallable = __nested_webpack_require_225582__(794);
var isPrototypeOf = __nested_webpack_require_225582__(54671);
var toString = __nested_webpack_require_225582__(63046);
var defineBuiltInAccessor = __nested_webpack_require_225582__(97548);
var copyConstructorProperties = __nested_webpack_require_225582__(58392);
var NativeSymbol = global.Symbol;
var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
    NativeSymbol().description !== undefined)) {
    var EmptyStringDescriptionStore = {};
    var SymbolWrapper = function Symbol() {
        var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
        var result = isPrototypeOf(SymbolPrototype, this)
            ? new NativeSymbol(description)
            : description === undefined ? NativeSymbol() : NativeSymbol(description);
        if (description === '')
            EmptyStringDescriptionStore[result] = true;
        return result;
    };
    copyConstructorProperties(SymbolWrapper, NativeSymbol);
    SymbolWrapper.prototype = SymbolPrototype;
    SymbolPrototype.constructor = SymbolWrapper;
    var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
    var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
    var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
    var regexp = /^Symbol\((.*)\)[^)]+$/;
    var replace = uncurryThis(''.replace);
    var stringSlice = uncurryThis(''.slice);
    defineBuiltInAccessor(SymbolPrototype, 'description', {
        configurable: true,
        get: function description() {
            var symbol = thisSymbolValue(this);
            if (hasOwn(EmptyStringDescriptionStore, symbol))
                return '';
            var string = symbolDescriptiveString(symbol);
            var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
            return desc === '' ? undefined : desc;
        }
    });
    $({ global: true, constructor: true, forced: true }, {
        Symbol: SymbolWrapper
    });
}


/***/ }),

/***/ 56202:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_227995__) {

"use strict";

var $ = __nested_webpack_require_227995__(50791);
var getBuiltIn = __nested_webpack_require_227995__(98945);
var hasOwn = __nested_webpack_require_227995__(14434);
var toString = __nested_webpack_require_227995__(63046);
var shared = __nested_webpack_require_227995__(95138);
var NATIVE_SYMBOL_REGISTRY = __nested_webpack_require_227995__(31948);
var StringToSymbolRegistry = shared('string-to-symbol-registry');
var SymbolToStringRegistry = shared('symbol-to-string-registry');
$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {
    'for': function (key) {
        var string = toString(key);
        if (hasOwn(StringToSymbolRegistry, string))
            return StringToSymbolRegistry[string];
        var symbol = getBuiltIn('Symbol')(string);
        StringToSymbolRegistry[string] = symbol;
        SymbolToStringRegistry[symbol] = string;
        return symbol;
    }
});


/***/ }),

/***/ 30733:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_228942__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_228942__(89633);
defineWellKnownSymbol('hasInstance');


/***/ }),

/***/ 40327:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_229168__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_229168__(89633);
defineWellKnownSymbol('isConcatSpreadable');


/***/ }),

/***/ 53639:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_229401__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_229401__(89633);
defineWellKnownSymbol('iterator');


/***/ }),

/***/ 95661:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_229624__) {

"use strict";

__nested_webpack_require_229624__(9656);
__nested_webpack_require_229624__(56202);
__nested_webpack_require_229624__(71940);
__nested_webpack_require_229624__(67507);
__nested_webpack_require_229624__(30165);


/***/ }),

/***/ 71940:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_229895__) {

"use strict";

var $ = __nested_webpack_require_229895__(50791);
var hasOwn = __nested_webpack_require_229895__(14434);
var isSymbol = __nested_webpack_require_229895__(88253);
var tryToString = __nested_webpack_require_229895__(98418);
var shared = __nested_webpack_require_229895__(95138);
var NATIVE_SYMBOL_REGISTRY = __nested_webpack_require_229895__(31948);
var SymbolToStringRegistry = shared('symbol-to-string-registry');
$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {
    keyFor: function keyFor(sym) {
        if (!isSymbol(sym))
            throw TypeError(tryToString(sym) + ' is not a symbol');
        if (hasOwn(SymbolToStringRegistry, sym))
            return SymbolToStringRegistry[sym];
    }
});


/***/ }),

/***/ 7290:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_230665__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_230665__(89633);
defineWellKnownSymbol('matchAll');


/***/ }),

/***/ 6147:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_230887__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_230887__(89633);
defineWellKnownSymbol('match');


/***/ }),

/***/ 95122:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_231107__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_231107__(89633);
defineWellKnownSymbol('replace');


/***/ }),

/***/ 61322:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_231329__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_231329__(89633);
defineWellKnownSymbol('search');


/***/ }),

/***/ 39605:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_231550__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_231550__(89633);
defineWellKnownSymbol('species');


/***/ }),

/***/ 49341:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_231772__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_231772__(89633);
defineWellKnownSymbol('split');


/***/ }),

/***/ 28809:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_231992__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_231992__(89633);
var defineSymbolToPrimitive = __nested_webpack_require_231992__(13829);
defineWellKnownSymbol('toPrimitive');
defineSymbolToPrimitive();


/***/ }),

/***/ 82658:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_232303__) {

"use strict";

var getBuiltIn = __nested_webpack_require_232303__(98945);
var defineWellKnownSymbol = __nested_webpack_require_232303__(89633);
var setToStringTag = __nested_webpack_require_232303__(44532);
defineWellKnownSymbol('toStringTag');
setToStringTag(getBuiltIn('Symbol'), 'Symbol');


/***/ }),

/***/ 43967:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __nested_webpack_require_232671__) {

"use strict";

var defineWellKnownSymbol = __nested_webpack_require_232671__(89633);
defineWellKnownSymbol('unscopables');


/***/ }),

/***/ 690:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_232878__) {

"use strict";

module.exports = (__nested_webpack_require_232878__(26002).polyfill)();


/***/ }),

/***/ 26002:
/***/ (function(module, __unused_webpack_exports, __nested_webpack_require_233051__) {

"use strict";

/*!
 * @overview es6-promise - a tiny implementation of Promises/A+.
 * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
 * @license   Licensed under MIT license
 *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
 * @version   v4.2.8+1e68dce6
 */
(function (global, factory) {
      true ? module.exports = factory() :
        0;
}(this, (function () {
    'use strict';
    function objectOrFunction(x) {
        var type = typeof x;
        return x !== null && (type === 'object' || type === 'function');
    }
    function isFunction(x) {
        return typeof x === 'function';
    }
    var _isArray = void 0;
    if (Array.isArray) {
        _isArray = Array.isArray;
    }
    else {
        _isArray = function (x) {
            return Object.prototype.toString.call(x) === '[object Array]';
        };
    }
    var isArray = _isArray;
    var len = 0;
    var vertxNext = void 0;
    var customSchedulerFn = void 0;
    var asap = function asap(callback, arg) {
        queue[len] = callback;
        queue[len + 1] = arg;
        len += 2;
        if (len === 2) {
            if (customSchedulerFn) {
                customSchedulerFn(flush);
            }
            else {
                scheduleFlush();
            }
        }
    };
    function setScheduler(scheduleFn) {
        customSchedulerFn = scheduleFn;
    }
    function setAsap(asapFn) {
        asap = asapFn;
    }
    var browserWindow = typeof window !== 'undefined' ? window : undefined;
    var browserGlobal = browserWindow || {};
    var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
    var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
    var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
    function useNextTick() {
        return function () {
            return process.nextTick(flush);
        };
    }
    function useVertxTimer() {
        if (typeof vertxNext !== 'undefined') {
            return function () {
                vertxNext(flush);
            };
        }
        return useSetTimeout();
    }
    function useMutationObserver() {
        var iterations = 0;
        var observer = new BrowserMutationObserver(flush);
        var node = document.createTextNode('');
        observer.observe(node, { characterData: true });
        return function () {
            node.data = iterations = ++iterations % 2;
        };
    }
    function useMessageChannel() {
        var channel = new MessageChannel();
        channel.port1.onmessage = flush;
        return function () {
            return channel.port2.postMessage(0);
        };
    }
    function useSetTimeout() {
        var globalSetTimeout = setTimeout;
        return function () {
            return globalSetTimeout(flush, 1);
        };
    }
    var queue = new Array(1000);
    function flush() {
        for (var i = 0; i < len; i += 2) {
            var callback = queue[i];
            var arg = queue[i + 1];
            callback(arg);
            queue[i] = undefined;
            queue[i + 1] = undefined;
        }
        len = 0;
    }
    function attemptVertx() {
        try {
            var vertx = Function('return this')().require('vertx');
            vertxNext = vertx.runOnLoop || vertx.runOnContext;
            return useVertxTimer();
        }
        catch (e) {
            return useSetTimeout();
        }
    }
    var scheduleFlush = void 0;
    if (isNode) {
        scheduleFlush = useNextTick();
    }
    else if (BrowserMutationObserver) {
        scheduleFlush = useMutationObserver();
    }
    else if (isWorker) {
        scheduleFlush = useMessageChannel();
    }
    else if (browserWindow === undefined && "function" === 'function') {
        scheduleFlush = attemptVertx();
    }
    else {
        scheduleFlush = useSetTimeout();
    }
    function then(onFulfillment, onRejection) {
        var parent = this;
        var child = new this.constructor(noop);
        if (child[PROMISE_ID] === undefined) {
            makePromise(child);
        }
        var _state = parent._state;
        if (_state) {
            var callback = arguments[_state - 1];
            asap(function () {
                return invokeCallback(_state, child, callback, parent._result);
            });
        }
        else {
            subscribe(parent, child, onFulfillment, onRejection);
        }
        return child;
    }
    function resolve$1(object) {
        var Constructor = this;
        if (object && typeof object === 'object' && object.constructor === Constructor) {
            return object;
        }
        var promise = new Constructor(noop);
        resolve(promise, object);
        return promise;
    }
    var PROMISE_ID = Math.random().toString(36).substring(2);
    function noop() { }
    var PENDING = void 0;
    var FULFILLED = 1;
    var REJECTED = 2;
    function selfFulfillment() {
        return new TypeError("You cannot resolve a promise with itself");
    }
    function cannotReturnOwn() {
        return new TypeError('A promises callback cannot return that same promise.');
    }
    function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
        try {
            then$$1.call(value, fulfillmentHandler, rejectionHandler);
        }
        catch (e) {
            return e;
        }
    }
    function handleForeignThenable(promise, thenable, then$$1) {
        asap(function (promise) {
            var sealed = false;
            var error = tryThen(then$$1, thenable, function (value) {
                if (sealed) {
                    return;
                }
                sealed = true;
                if (thenable !== value) {
                    resolve(promise, value);
                }
                else {
                    fulfill(promise, value);
                }
            }, function (reason) {
                if (sealed) {
                    return;
                }
                sealed = true;
                reject(promise, reason);
            }, 'Settle: ' + (promise._label || ' unknown promise'));
            if (!sealed && error) {
                sealed = true;
                reject(promise, error);
            }
        }, promise);
    }
    function handleOwnThenable(promise, thenable) {
        if (thenable._state === FULFILLED) {
            fulfill(promise, thenable._result);
        }
        else if (thenable._state === REJECTED) {
            reject(promise, thenable._result);
        }
        else {
            subscribe(thenable, undefined, function (value) {
                return resolve(promise, value);
            }, function (reason) {
                return reject(promise, reason);
            });
        }
    }
    function handleMaybeThenable(promise, maybeThenable, then$$1) {
        if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
            handleOwnThenable(promise, maybeThenable);
        }
        else {
            if (then$$1 === undefined) {
                fulfill(promise, maybeThenable);
            }
            else if (isFunction(then$$1)) {
                handleForeignThenable(promise, maybeThenable, then$$1);
            }
            else {
                fulfill(promise, maybeThenable);
            }
        }
    }
    function resolve(promise, value) {
        if (promise === value) {
            reject(promise, selfFulfillment());
        }
        else if (objectOrFunction(value)) {
            var then$$1 = void 0;
            try {
                then$$1 = value.then;
            }
            catch (error) {
                reject(promise, error);
                return;
            }
            handleMaybeThenable(promise, value, then$$1);
        }
        else {
            fulfill(promise, value);
        }
    }
    function publishRejection(promise) {
        if (promise._onerror) {
            promise._onerror(promise._result);
        }
        publish(promise);
    }
    function fulfill(promise, value) {
        if (promise._state !== PENDING) {
            return;
        }
        promise._result = value;
        promise._state = FULFILLED;
        if (promise._subscribers.length !== 0) {
            asap(publish, promise);
        }
    }
    function reject(promise, reason) {
        if (promise._state !== PENDING) {
            return;
        }
        promise._state = REJECTED;
        promise._result = reason;
        asap(publishRejection, promise);
    }
    function subscribe(parent, child, onFulfillment, onRejection) {
        var _subscribers = parent._subscribers;
        var length = _subscribers.length;
        parent._onerror = null;
        _subscribers[length] = child;
        _subscribers[length + FULFILLED] = onFulfillment;
        _subscribers[length + REJECTED] = onRejection;
        if (length === 0 && parent._state) {
            asap(publish, parent);
        }
    }
    function publish(promise) {
        var subscribers = promise._subscribers;
        var settled = promise._state;
        if (subscribers.length === 0) {
            return;
        }
        var child = void 0, callback = void 0, detail = promise._result;
        for (var i = 0; i < subscribers.length; i += 3) {
            child = subscribers[i];
            callback = subscribers[i + settled];
            if (child) {
                invokeCallback(settled, child, callback, detail);
            }
            else {
                callback(detail);
            }
        }
        promise._subscribers.length = 0;
    }
    function invokeCallback(settled, promise, callback, detail) {
        var hasCallback = isFunction(callback), value = void 0, error = void 0, succeeded = true;
        if (hasCallback) {
            try {
                value = callback(detail);
            }
            catch (e) {
                succeeded = false;
                error = e;
            }
            if (promise === value) {
                reject(promise, cannotReturnOwn());
                return;
            }
        }
        else {
            value = detail;
        }
        if (promise._state !== PENDING) {
        }
        else if (hasCallback && succeeded) {
            resolve(promise, value);
        }
        else if (succeeded === false) {
            reject(promise, error);
        }
        else if (settled === FULFILLED) {
            fulfill(promise, value);
        }
        else if (settled === REJECTED) {
            reject(promise, value);
        }
    }
    function initializePromise(promise, resolver) {
        try {
            resolver(function resolvePromise(value) {
                resolve(promise, value);
            }, function rejectPromise(reason) {
                reject(promise, reason);
            });
        }
        catch (e) {
            reject(promise, e);
        }
    }
    var id = 0;
    function nextId() {
        return id++;
    }
    function makePromise(promise) {
        promise[PROMISE_ID] = id++;
        promise._state = undefined;
        promise._result = undefined;
        promise._subscribers = [];
    }
    function validationError() {
        return new Error('Array Methods must be provided an Array');
    }
    var Enumerator = function () {
        function Enumerator(Constructor, input) {
            this._instanceConstructor = Constructor;
            this.promise = new Constructor(noop);
            if (!this.promise[PROMISE_ID]) {
                makePromise(this.promise);
            }
            if (isArray(input)) {
                this.length = input.length;
                this._remaining = input.length;
                this._result = new Array(this.length);
                if (this.length === 0) {
                    fulfill(this.promise, this._result);
                }
                else {
                    this.length = this.length || 0;
                    this._enumerate(input);
                    if (this._remaining === 0) {
                        fulfill(this.promise, this._result);
                    }
                }
            }
            else {
                reject(this.promise, validationError());
            }
        }
        Enumerator.prototype._enumerate = function _enumerate(input) {
            for (var i = 0; this._state === PENDING && i < input.length; i++) {
                this._eachEntry(input[i], i);
            }
        };
        Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {
            var c = this._instanceConstructor;
            var resolve$$1 = c.resolve;
            if (resolve$$1 === resolve$1) {
                var _then = void 0;
                var error = void 0;
                var didError = false;
                try {
                    _then = entry.then;
                }
                catch (e) {
                    didError = true;
                    error = e;
                }
                if (_then === then && entry._state !== PENDING) {
                    this._settledAt(entry._state, i, entry._result);
                }
                else if (typeof _then !== 'function') {
                    this._remaining--;
                    this._result[i] = entry;
                }
                else if (c === Promise$1) {
                    var promise = new c(noop);
                    if (didError) {
                        reject(promise, error);
                    }
                    else {
                        handleMaybeThenable(promise, entry, _then);
                    }
                    this._willSettleAt(promise, i);
                }
                else {
                    this._willSettleAt(new c(function (resolve$$1) {
                        return resolve$$1(entry);
                    }), i);
                }
            }
            else {
                this._willSettleAt(resolve$$1(entry), i);
            }
        };
        Enumerator.prototype._settledAt = function _settledAt(state, i, value) {
            var promise = this.promise;
            if (promise._state === PENDING) {
                this._remaining--;
                if (state === REJECTED) {
                    reject(promise, value);
                }
                else {
                    this._result[i] = value;
                }
            }
            if (this._remaining === 0) {
                fulfill(promise, this._result);
            }
        };
        Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {
            var enumerator = this;
            subscribe(promise, undefined, function (value) {
                return enumerator._settledAt(FULFILLED, i, value);
            }, function (reason) {
                return enumerator._settledAt(REJECTED, i, reason);
            });
        };
        return Enumerator;
    }();
    function all(entries) {
        return new Enumerator(this, entries).promise;
    }
    function race(entries) {
        var Constructor = this;
        if (!isArray(entries)) {
            return new Constructor(function (_, reject) {
                return reject(new TypeError('You must pass an array to race.'));
            });
        }
        else {
            return new Constructor(function (resolve, reject) {
                var length = entries.length;
                for (var i = 0; i < length; i++) {
                    Constructor.resolve(entries[i]).then(resolve, reject);
                }
            });
        }
    }
    function reject$1(reason) {
        var Constructor = this;
        var promise = new Constructor(noop);
        reject(promise, reason);
        return promise;
    }
    function needsResolver() {
        throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
    }
    function needsNew() {
        throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
    }
    var Promise$1 = function () {
        function Promise(resolver) {
            this[PROMISE_ID] = nextId();
            this._result = this._state = undefined;
            this._subscribers = [];
            if (noop !== resolver) {
                typeof resolver !== 'function' && needsResolver();
                this instanceof Promise ? initializePromise(this, resolver) : needsNew();
            }
        }
        Promise.prototype.catch = function _catch(onRejection) {
            return this.then(null, onRejection);
        };
        Promise.prototype.finally = function _finally(callback) {
            var promise = this;
            var constructor = promise.constructor;
            if (isFunction(callback)) {
                return promise.then(function (value) {
                    return constructor.resolve(callback()).then(function () {
                        return value;
                    });
                }, function (reason) {
                    return constructor.resolve(callback()).then(function () {
                        throw reason;
                    });
                });
            }
            return promise.then(callback, callback);
        };
        return Promise;
    }();
    Promise$1.prototype.then = then;
    Promise$1.all = all;
    Promise$1.race = race;
    Promise$1.resolve = resolve$1;
    Promise$1.reject = reject$1;
    Promise$1._setScheduler = setScheduler;
    Promise$1._setAsap = setAsap;
    Promise$1._asap = asap;
    function polyfill() {
        var local = void 0;
        if (typeof __nested_webpack_require_233051__.g !== 'undefined') {
            local = __nested_webpack_require_233051__.g;
        }
        else if (typeof self !== 'undefined') {
            local = self;
        }
        else {
            try {
                local = Function('return this')();
            }
            catch (e) {
                throw new Error('polyfill failed because global object is unavailable in this environment');
            }
        }
        var P = local.Promise;
        if (P) {
            var promiseToString = null;
            try {
                promiseToString = Object.prototype.toString.call(P.resolve());
            }
            catch (e) {
            }
            if (promiseToString === '[object Promise]' && !P.cast) {
                return;
            }
        }
        local.Promise = Promise$1;
    }
    Promise$1.polyfill = polyfill;
    Promise$1.Promise = Promise$1;
    return Promise$1;
})));


/***/ }),

/***/ 20255:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.__classPrivateFieldIn = exports.__classPrivateFieldSet = exports.__classPrivateFieldGet = exports.__importDefault = exports.__importStar = exports.__makeTemplateObject = exports.__asyncValues = exports.__asyncDelegator = exports.__asyncGenerator = exports.__await = exports.__spreadArray = exports.__spreadArrays = exports.__spread = exports.__read = exports.__values = exports.__exportStar = exports.__createBinding = exports.__generator = exports.__awaiter = exports.__metadata = exports.__setFunctionName = exports.__propKey = exports.__runInitializers = exports.__esDecorate = exports.__param = exports.__decorate = exports.__rest = exports.__assign = exports.__extends = void 0;
var extendStatics = function (d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b)
            if (Object.prototype.hasOwnProperty.call(b, p))
                d[p] = b[p]; };
    return extendStatics(d, b);
};
function __extends(d, b) {
    if (typeof b !== "function" && b !== null)
        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
exports.__extends = __extends;
var __assign = function () {
    exports.__assign = Object.assign || function __assign(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s)
                if (Object.prototype.hasOwnProperty.call(s, p))
                    t[p] = s[p];
        }
        return t;
    };
    return exports.__assign.apply(this, arguments);
};
exports.__assign = __assign;
function __rest(s, e) {
    var t = {};
    for (var p in s)
        if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
            t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
}
exports.__rest = __rest;
function __decorate(decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
        r = Reflect.decorate(decorators, target, key, desc);
    else
        for (var i = decorators.length - 1; i >= 0; i--)
            if (d = decorators[i])
                r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
}
exports.__decorate = __decorate;
function __param(paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); };
}
exports.__param = __param;
function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
    function accept(f) { if (f !== void 0 && typeof f !== "function")
        throw new TypeError("Function expected"); return f; }
    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
    var _, done = false;
    for (var i = decorators.length - 1; i >= 0; i--) {
        var context = {};
        for (var p in contextIn)
            context[p] = p === "access" ? {} : contextIn[p];
        for (var p in contextIn.access)
            context.access[p] = contextIn.access[p];
        context.addInitializer = function (f) { if (done)
            throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
        if (kind === "accessor") {
            if (result === void 0)
                continue;
            if (result === null || typeof result !== "object")
                throw new TypeError("Object expected");
            if (_ = accept(result.get))
                descriptor.get = _;
            if (_ = accept(result.set))
                descriptor.set = _;
            if (_ = accept(result.init))
                initializers.push(_);
        }
        else if (_ = accept(result)) {
            if (kind === "field")
                initializers.push(_);
            else
                descriptor[key] = _;
        }
    }
    if (target)
        Object.defineProperty(target, contextIn.name, descriptor);
    done = true;
}
exports.__esDecorate = __esDecorate;
;
function __runInitializers(thisArg, initializers, value) {
    var useValue = arguments.length > 2;
    for (var i = 0; i < initializers.length; i++) {
        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
    }
    return useValue ? value : void 0;
}
exports.__runInitializers = __runInitializers;
;
function __propKey(x) {
    return typeof x === "symbol" ? x : "".concat(x);
}
exports.__propKey = __propKey;
;
function __setFunctionName(f, name, prefix) {
    if (typeof name === "symbol")
        name = name.description ? "[".concat(name.description, "]") : "";
    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}
exports.__setFunctionName = __setFunctionName;
;
function __metadata(metadataKey, metadataValue) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
        return Reflect.metadata(metadataKey, metadataValue);
}
exports.__metadata = __metadata;
function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try {
            step(generator.next(value));
        }
        catch (e) {
            reject(e);
        } }
        function rejected(value) { try {
            step(generator["throw"](value));
        }
        catch (e) {
            reject(e);
        } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}
exports.__awaiter = __awaiter;
function __generator(thisArg, body) {
    var _ = { label: 0, sent: function () { if (t[0] & 1)
            throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f)
            throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _)
            try {
                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                    return t;
                if (y = 0, t)
                    op = [op[0] & 2, t.value];
                switch (op[0]) {
                    case 0:
                    case 1:
                        t = op;
                        break;
                    case 4:
                        _.label++;
                        return { value: op[1], done: false };
                    case 5:
                        _.label++;
                        y = op[1];
                        op = [0];
                        continue;
                    case 7:
                        op = _.ops.pop();
                        _.trys.pop();
                        continue;
                    default:
                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                            _ = 0;
                            continue;
                        }
                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                            _.label = op[1];
                            break;
                        }
                        if (op[0] === 6 && _.label < t[1]) {
                            _.label = t[1];
                            t = op;
                            break;
                        }
                        if (t && _.label < t[2]) {
                            _.label = t[2];
                            _.ops.push(op);
                            break;
                        }
                        if (t[2])
                            _.ops.pop();
                        _.trys.pop();
                        continue;
                }
                op = body.call(thisArg, _);
            }
            catch (e) {
                op = [6, e];
                y = 0;
            }
            finally {
                f = t = 0;
            }
        if (op[0] & 5)
            throw op[1];
        return { value: op[0] ? op[1] : void 0, done: true };
    }
}
exports.__generator = __generator;
exports.__createBinding = Object.create ? (function (o, m, k, k2) {
    if (k2 === undefined)
        k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function () { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function (o, m, k, k2) {
    if (k2 === undefined)
        k2 = k;
    o[k2] = m[k];
});
function __exportStar(m, o) {
    for (var p in m)
        if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
            (0, exports.__createBinding)(o, m, p);
}
exports.__exportStar = __exportStar;
function __values(o) {
    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
    if (m)
        return m.call(o);
    if (o && typeof o.length === "number")
        return {
            next: function () {
                if (o && i >= o.length)
                    o = void 0;
                return { value: o && o[i++], done: !o };
            }
        };
    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
exports.__values = __values;
function __read(o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m)
        return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
            ar.push(r.value);
    }
    catch (error) {
        e = { error: error };
    }
    finally {
        try {
            if (r && !r.done && (m = i["return"]))
                m.call(i);
        }
        finally {
            if (e)
                throw e.error;
        }
    }
    return ar;
}
exports.__read = __read;
function __spread() {
    for (var ar = [], i = 0; i < arguments.length; i++)
        ar = ar.concat(__read(arguments[i]));
    return ar;
}
exports.__spread = __spread;
function __spreadArrays() {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++)
        s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
}
exports.__spreadArrays = __spreadArrays;
function __spreadArray(to, from, pack) {
    if (pack || arguments.length === 2)
        for (var i = 0, l = from.length, ar; i < l; i++) {
            if (ar || !(i in from)) {
                if (!ar)
                    ar = Array.prototype.slice.call(from, 0, i);
                ar[i] = from[i];
            }
        }
    return to.concat(ar || Array.prototype.slice.call(from));
}
exports.__spreadArray = __spreadArray;
function __await(v) {
    return this instanceof __await ? (this.v = v, this) : new __await(v);
}
exports.__await = __await;
function __asyncGenerator(thisArg, _arguments, generator) {
    if (!Symbol.asyncIterator)
        throw new TypeError("Symbol.asyncIterator is not defined.");
    var g = generator.apply(thisArg, _arguments || []), i, q = [];
    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
    function verb(n) { if (g[n])
        i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
    function resume(n, v) { try {
        step(g[n](v));
    }
    catch (e) {
        settle(q[0][3], e);
    } }
    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
    function fulfill(value) { resume("next", value); }
    function reject(value) { resume("throw", value); }
    function settle(f, v) { if (f(v), q.shift(), q.length)
        resume(q[0][0], q[0][1]); }
}
exports.__asyncGenerator = __asyncGenerator;
function __asyncDelegator(o) {
    var i, p;
    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}
exports.__asyncDelegator = __asyncDelegator;
function __asyncValues(o) {
    if (!Symbol.asyncIterator)
        throw new TypeError("Symbol.asyncIterator is not defined.");
    var m = o[Symbol.asyncIterator], i;
    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
}
exports.__asyncValues = __asyncValues;
function __makeTemplateObject(cooked, raw) {
    if (Object.defineProperty) {
        Object.defineProperty(cooked, "raw", { value: raw });
    }
    else {
        cooked.raw = raw;
    }
    return cooked;
}
exports.__makeTemplateObject = __makeTemplateObject;
;
var __setModuleDefault = Object.create ? (function (o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function (o, v) {
    o["default"] = v;
};
function __importStar(mod) {
    if (mod && mod.__esModule)
        return mod;
    var result = {};
    if (mod != null)
        for (var k in mod)
            if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
                (0, exports.__createBinding)(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
}
exports.__importStar = __importStar;
function __importDefault(mod) {
    return (mod && mod.__esModule) ? mod : { default: mod };
}
exports.__importDefault = __importDefault;
function __classPrivateFieldGet(receiver, state, kind, f) {
    if (kind === "a" && !f)
        throw new TypeError("Private accessor was defined without a getter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
        throw new TypeError("Cannot read private member from an object whose class did not declare it");
    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
exports.__classPrivateFieldGet = __classPrivateFieldGet;
function __classPrivateFieldSet(receiver, state, value, kind, f) {
    if (kind === "m")
        throw new TypeError("Private method is not writable");
    if (kind === "a" && !f)
        throw new TypeError("Private accessor was defined without a setter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
        throw new TypeError("Cannot write private member to an object whose class did not declare it");
    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}
exports.__classPrivateFieldSet = __classPrivateFieldSet;
function __classPrivateFieldIn(state, receiver) {
    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
        throw new TypeError("Cannot use 'in' operator on non-object");
    return typeof state === "function" ? receiver === state : state.has(receiver);
}
exports.__classPrivateFieldIn = __classPrivateFieldIn;


/***/ }),

/***/ 93166:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_269115__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Config = void 0;
var consts = __nested_webpack_require_269115__(86893);
var constants_1 = __nested_webpack_require_269115__(86893);
var Config = (function () {
    function Config() {
        this.defaultTimeout = 100;
        this.namespace = '';
        this.safeMode = false;
        this.width = 'auto';
        this.height = 'auto';
        this.safePluginsList = ['about', 'enter', 'backspace', 'size'];
        this.license = '';
        this.preset = 'custom';
        this.presets = {
            inline: {
                inline: true,
                toolbar: false,
                toolbarInline: true,
                toolbarInlineForSelection: true,
                showXPathInStatusbar: false,
                showCharsCounter: false,
                showWordsCounter: false,
                showPlaceholder: false
            }
        };
        this.ownerDocument = (typeof document !== 'undefined'
            ? document
            : null);
        this.ownerWindow = (typeof window !== 'undefined'
            ? window
            : null);
        this.shadowRoot = null;
        this.zIndex = 0;
        this.readonly = false;
        this.disabled = false;
        this.activeButtonsInReadOnly = [
            'source',
            'fullsize',
            'print',
            'about',
            'dots',
            'selectall'
        ];
        this.allowCommandsInReadOnly = ['selectall', 'preview', 'print'];
        this.toolbarButtonSize = 'middle';
        this.allowTabNavigation = false;
        this.inline = false;
        this.theme = 'default';
        this.saveModeInStorage = false;
        this.editorClassName = false;
        this.editorCssClass = false;
        this.className = false;
        this.style = false;
        this.containerStyle = false;
        this.styleValues = {};
        this.triggerChangeEvent = true;
        this.direction = '';
        this.language = 'auto';
        this.debugLanguage = false;
        this.i18n = false;
        this.tabIndex = -1;
        this.toolbar = true;
        this.statusbar = true;
        this.showTooltip = true;
        this.showTooltipDelay = 1000;
        this.useNativeTooltip = false;
        this.defaultActionOnPaste = constants_1.INSERT_AS_HTML;
        this.enter = consts.PARAGRAPH;
        this.iframe = false;
        this.editHTMLDocumentMode = false;
        this.enterBlock = this.enter !== 'br' ? this.enter : consts.PARAGRAPH;
        this.defaultMode = consts.MODE_WYSIWYG;
        this.useSplitMode = false;
        this.colors = {
            greyscale: [
                '#000000',
                '#434343',
                '#666666',
                '#999999',
                '#B7B7B7',
                '#CCCCCC',
                '#D9D9D9',
                '#EFEFEF',
                '#F3F3F3',
                '#FFFFFF'
            ],
            palette: [
                '#980000',
                '#FF0000',
                '#FF9900',
                '#FFFF00',
                '#00F0F0',
                '#00FFFF',
                '#4A86E8',
                '#0000FF',
                '#9900FF',
                '#FF00FF'
            ],
            full: [
                '#E6B8AF',
                '#F4CCCC',
                '#FCE5CD',
                '#FFF2CC',
                '#D9EAD3',
                '#D0E0E3',
                '#C9DAF8',
                '#CFE2F3',
                '#D9D2E9',
                '#EAD1DC',
                '#DD7E6B',
                '#EA9999',
                '#F9CB9C',
                '#FFE599',
                '#B6D7A8',
                '#A2C4C9',
                '#A4C2F4',
                '#9FC5E8',
                '#B4A7D6',
                '#D5A6BD',
                '#CC4125',
                '#E06666',
                '#F6B26B',
                '#FFD966',
                '#93C47D',
                '#76A5AF',
                '#6D9EEB',
                '#6FA8DC',
                '#8E7CC3',
                '#C27BA0',
                '#A61C00',
                '#CC0000',
                '#E69138',
                '#F1C232',
                '#6AA84F',
                '#45818E',
                '#3C78D8',
                '#3D85C6',
                '#674EA7',
                '#A64D79',
                '#85200C',
                '#990000',
                '#B45F06',
                '#BF9000',
                '#38761D',
                '#134F5C',
                '#1155CC',
                '#0B5394',
                '#351C75',
                '#733554',
                '#5B0F00',
                '#660000',
                '#783F04',
                '#7F6000',
                '#274E13',
                '#0C343D',
                '#1C4587',
                '#073763',
                '#20124D',
                '#4C1130'
            ]
        };
        this.colorPickerDefaultTab = 'background';
        this.imageDefaultWidth = 300;
        this.removeButtons = [];
        this.disablePlugins = [];
        this.extraPlugins = [];
        this.extraButtons = [];
        this.extraIcons = {};
        this.createAttributes = {
            table: {
                style: 'border-collapse:collapse;width: 100%;'
            }
        };
        this.sizeLG = 900;
        this.sizeMD = 700;
        this.sizeSM = 400;
        this.buttons = [
            {
                group: 'font-style',
                buttons: []
            },
            {
                group: 'list',
                buttons: []
            },
            {
                group: 'font',
                buttons: []
            },
            '---',
            {
                group: 'script',
                buttons: []
            },
            {
                group: 'media',
                buttons: []
            },
            '\n',
            {
                group: 'state',
                buttons: []
            },
            {
                group: 'clipboard',
                buttons: []
            },
            {
                group: 'insert',
                buttons: []
            },
            {
                group: 'indent',
                buttons: []
            },
            {
                group: 'color',
                buttons: []
            },
            {
                group: 'form',
                buttons: []
            },
            '---',
            {
                group: 'history',
                buttons: []
            },
            {
                group: 'search',
                buttons: []
            },
            {
                group: 'source',
                buttons: []
            },
            {
                group: 'other',
                buttons: []
            },
            {
                group: 'info',
                buttons: []
            }
        ];
        this.buttonsMD = [
            'bold',
            'italic',
            '|',
            'ul',
            'ol',
            'eraser',
            '|',
            'font',
            'fontsize',
            '---',
            'image',
            'table',
            '|',
            'link',
            '\n',
            'brush',
            'paragraph',
            'align',
            '|',
            'hr',
            'copyformat',
            'fullsize',
            '---',
            'undo',
            'redo',
            '|',
            'dots'
        ];
        this.buttonsSM = [
            'bold',
            'italic',
            '|',
            'ul',
            'ol',
            'eraser',
            '|',
            'fontsize',
            'brush',
            'paragraph',
            '---',
            'image',
            'table',
            '\n',
            'link',
            '|',
            'align',
            '|',
            'undo',
            'redo',
            '|',
            'copyformat',
            'fullsize',
            '---',
            'dots'
        ];
        this.buttonsXS = [
            'bold',
            'brush',
            'paragraph',
            'eraser',
            '|',
            'fontsize',
            '---',
            'image',
            '\n',
            'align',
            'undo',
            'redo',
            '|',
            'link',
            'table',
            '---',
            'dots'
        ];
        this.events = {};
        this.textIcons = false;
        this.showBrowserColorPicker = true;
    }
    Object.defineProperty(Config, "defaultOptions", {
        get: function () {
            if (!Config.__defaultOptions) {
                Config.__defaultOptions = new Config();
            }
            return Config.__defaultOptions;
        },
        enumerable: false,
        configurable: true
    });
    return Config;
}());
exports.Config = Config;
Config.prototype.controls = {};


/***/ }),

/***/ 77536:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_278330__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Async = void 0;
var tslib_1 = __nested_webpack_require_278330__(20255);
var async_1 = __nested_webpack_require_278330__(4696);
var is_function_1 = __nested_webpack_require_278330__(42096);
var is_plain_object_1 = __nested_webpack_require_278330__(79736);
var is_promise_1 = __nested_webpack_require_278330__(26335);
var is_string_1 = __nested_webpack_require_278330__(24421);
var is_number_1 = __nested_webpack_require_278330__(61817);
var assert_1 = __nested_webpack_require_278330__(52378);
var Async = (function () {
    function Async() {
        var _this = this;
        var _a, _b, _c, _d;
        this.timers = new Map();
        this.__callbacks = new Map();
        this.promisesRejections = new Set();
        this.requestsIdle = new Set();
        this.requestsRaf = new Set();
        this.requestIdleCallbackNative = (_b = (_a = window['requestIdleCallback']) === null || _a === void 0 ? void 0 : _a.bind(window)) !== null && _b !== void 0 ? _b : (function (callback, options) {
            var _a;
            var start = Date.now();
            return _this.setTimeout(function () {
                callback({
                    didTimeout: false,
                    timeRemaining: function () { return Math.max(0, 50 - (Date.now() - start)); }
                });
            }, (_a = options === null || options === void 0 ? void 0 : options.timeout) !== null && _a !== void 0 ? _a : 1);
        });
        this.cancelIdleCallbackNative = (_d = (_c = window['cancelIdleCallback']) === null || _c === void 0 ? void 0 : _c.bind(window)) !== null && _d !== void 0 ? _d : (function (request) {
            _this.clearTimeout(request);
        });
        this.isDestructed = false;
    }
    Async.prototype.delay = function (timeout) {
        var _this = this;
        return this.promise(function (resolve) { return _this.setTimeout(resolve, timeout); });
    };
    Async.prototype.setTimeout = function (callback, timeout) {
        var args = [];
        for (var _i = 2; _i < arguments.length; _i++) {
            args[_i - 2] = arguments[_i];
        }
        if (this.isDestructed) {
            return 0;
        }
        var options = {};
        if (!(0, is_number_1.isNumber)(timeout)) {
            options = timeout;
            timeout = options.timeout || 0;
        }
        if (options.label) {
            this.clearLabel(options.label);
        }
        var timer = async_1.setTimeout.apply(void 0, tslib_1.__spreadArray([callback, timeout], tslib_1.__read(args), false)), key = options.label || timer;
        this.timers.set(key, timer);
        this.__callbacks.set(key, callback);
        return timer;
    };
    Async.prototype.updateTimeout = function (label, timeout) {
        void 0;
        if (!label || !this.timers.has(label)) {
            return null;
        }
        var callback = this.__callbacks.get(label);
        void 0;
        return this.setTimeout(callback, { label: label, timeout: timeout });
    };
    Async.prototype.clearLabel = function (label) {
        if (label && this.timers.has(label)) {
            (0, async_1.clearTimeout)(this.timers.get(label));
            this.timers.delete(label);
            this.__callbacks.delete(label);
        }
    };
    Async.prototype.clearTimeout = function (timerOrLabel) {
        if ((0, is_string_1.isString)(timerOrLabel)) {
            return this.clearLabel(timerOrLabel);
        }
        (0, async_1.clearTimeout)(timerOrLabel);
        this.timers.delete(timerOrLabel);
        this.__callbacks.delete(timerOrLabel);
    };
    Async.prototype.debounce = function (fn, timeout, firstCallImmediately) {
        var _this = this;
        if (firstCallImmediately === void 0) { firstCallImmediately = false; }
        var timer = 0, fired = false;
        var promises = [];
        var callFn = function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            if (!fired) {
                timer = 0;
                var res = fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
                fired = true;
                if (promises.length) {
                    var runPromises = function () {
                        promises.forEach(function (res) { return res(); });
                        promises.length = 0;
                    };
                    (0, is_promise_1.isPromise)(res) ? res.finally(runPromises) : runPromises();
                }
            }
        };
        var onFire = function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            fired = false;
            if (!timeout) {
                callFn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
            }
            else {
                if (!timer && firstCallImmediately) {
                    callFn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
                }
                (0, async_1.clearTimeout)(timer);
                timer = _this.setTimeout(function () { return callFn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false)); }, (0, is_function_1.isFunction)(timeout) ? timeout() : timeout);
                _this.timers.set(fn, timer);
            }
        };
        return (0, is_plain_object_1.isPlainObject)(timeout) && timeout.promisify
            ? function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                var promise = _this.promise(function (res) {
                    promises.push(res);
                });
                onFire.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
                return promise;
            }
            : onFire;
    };
    Async.prototype.throttle = function (fn, timeout, ignore) {
        var _this = this;
        if (ignore === void 0) { ignore = false; }
        var timer = null, needInvoke, callee, lastArgs;
        return function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            needInvoke = true;
            lastArgs = args;
            if (!timeout) {
                fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(lastArgs), false));
                return;
            }
            if (!timer) {
                callee = function () {
                    if (needInvoke) {
                        fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(lastArgs), false));
                        needInvoke = false;
                        timer = _this.setTimeout(callee, (0, is_function_1.isFunction)(timeout) ? timeout() : timeout);
                        _this.timers.set(callee, timer);
                    }
                    else {
                        timer = null;
                    }
                };
                callee();
            }
        };
    };
    Async.prototype.promise = function (executor) {
        var _this = this;
        var rejectCallback = function () { };
        var promise = new Promise(function (resolve, reject) {
            _this.promisesRejections.add(reject);
            rejectCallback = reject;
            return executor(resolve, reject);
        });
        if (!promise.finally && "es5" !== 'es2018') {
            promise.finally = function (onfinally) {
                promise.then(onfinally).catch(onfinally);
                return promise;
            };
        }
        promise
            .finally(function () {
            _this.promisesRejections.delete(rejectCallback);
        })
            .catch(function () { return null; });
        promise.rejectCallback = rejectCallback;
        return promise;
    };
    Async.prototype.promiseState = function (p) {
        var _this = this;
        if (p.status) {
            return p.status;
        }
        if (!Promise.race) {
            return new Promise(function (resolve) {
                p.then(function (v) {
                    resolve('fulfilled');
                    return v;
                }, function (e) {
                    resolve('rejected');
                    throw e;
                });
                _this.setTimeout(function () {
                    resolve('pending');
                }, 100);
            });
        }
        var t = {};
        return Promise.race([p, t]).then(function (v) { return (v === t ? 'pending' : 'fulfilled'); }, function () { return 'rejected'; });
    };
    Async.prototype.requestIdleCallback = function (callback, options) {
        var request = this.requestIdleCallbackNative(callback, options);
        this.requestsIdle.add(request);
        return request;
    };
    Async.prototype.requestIdlePromise = function (options) {
        var _this = this;
        return this.promise(function (res) {
            var request = _this.requestIdleCallback(function () { return res(request); }, options);
        });
    };
    Async.prototype.cancelIdleCallback = function (request) {
        this.requestsIdle.delete(request);
        return this.cancelIdleCallbackNative(request);
    };
    Async.prototype.requestAnimationFrame = function (callback) {
        var request = requestAnimationFrame(callback);
        this.requestsRaf.add(request);
        return request;
    };
    Async.prototype.cancelAnimationFrame = function (request) {
        this.requestsRaf.delete(request);
        cancelAnimationFrame(request);
    };
    Async.prototype.clear = function () {
        var _this = this;
        this.requestsIdle.forEach(function (key) { return _this.cancelIdleCallback(key); });
        this.requestsRaf.forEach(function (key) { return _this.cancelAnimationFrame(key); });
        this.timers.forEach(function (key) {
            return (0, async_1.clearTimeout)(_this.timers.get(key));
        });
        this.timers.clear();
        this.promisesRejections.forEach(function (reject) { return reject(); });
        this.promisesRejections.clear();
    };
    Async.prototype.destruct = function () {
        this.clear();
        this.isDestructed = true;
    };
    return Async;
}());
exports.Async = Async;


/***/ }),

/***/ 22630:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_289022__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_289022__(20255);
tslib_1.__exportStar(__nested_webpack_require_289022__(77536), exports);


/***/ }),

/***/ 45113:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_289524__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Component = void 0;
var helpers_1 = __nested_webpack_require_289524__(40332);
var global_1 = __nested_webpack_require_289524__(17332);
var statuses_1 = __nested_webpack_require_289524__(29411);
var async_1 = __nested_webpack_require_289524__(22630);
var StatusListHandlers = new Map();
var Component = (function () {
    function Component() {
        this.async = new async_1.Async();
        this.ownerWindow = window;
        this.__componentStatus = statuses_1.STATUSES.beforeInit;
        this.uid = 'jodit-uid-' + (0, global_1.uniqueUid)();
    }
    Object.defineProperty(Component.prototype, "componentName", {
        get: function () {
            if (!this.__componentName) {
                this.__componentName =
                    'jodit-' +
                        (0, helpers_1.kebabCase)(((0, helpers_1.isFunction)(this.className) ? this.className() : '') ||
                            (0, helpers_1.getClassName)(this));
            }
            return this.__componentName;
        },
        enumerable: false,
        configurable: true
    });
    Component.prototype.getFullElName = function (elementName, mod, modValue) {
        var result = [this.componentName];
        if (elementName) {
            elementName = elementName.replace(/[^a-z0-9-]/gi, '-');
            result.push("__".concat(elementName));
        }
        if (mod) {
            result.push('_', mod);
            result.push('_', (0, helpers_1.isVoid)(modValue) ? 'true' : modValue.toString());
        }
        return result.join('');
    };
    Object.defineProperty(Component.prototype, "ownerDocument", {
        get: function () {
            return this.ow.document;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Component.prototype, "od", {
        get: function () {
            return this.ownerDocument;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Component.prototype, "ow", {
        get: function () {
            return this.ownerWindow;
        },
        enumerable: false,
        configurable: true
    });
    Component.prototype.get = function (chain, obj) {
        return (0, helpers_1.get)(chain, obj || this);
    };
    Object.defineProperty(Component.prototype, "isReady", {
        get: function () {
            return this.componentStatus === statuses_1.STATUSES.ready;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Component.prototype, "isDestructed", {
        get: function () {
            return this.componentStatus === statuses_1.STATUSES.destructed;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Component.prototype, "isInDestruct", {
        get: function () {
            return (statuses_1.STATUSES.beforeDestruct === this.componentStatus ||
                statuses_1.STATUSES.destructed === this.componentStatus);
        },
        enumerable: false,
        configurable: true
    });
    Component.prototype.bindDestruct = function (component) {
        var _this = this;
        component.hookStatus(statuses_1.STATUSES.beforeDestruct, function () { return !_this.isInDestruct && _this.destruct(); });
        return this;
    };
    Component.prototype.destruct = function () {
        this.setStatus(statuses_1.STATUSES.destructed);
        this.async.destruct();
        if (StatusListHandlers.get(this)) {
            StatusListHandlers.delete(this);
        }
    };
    Object.defineProperty(Component.prototype, "componentStatus", {
        get: function () {
            return this.__componentStatus;
        },
        set: function (componentStatus) {
            this.setStatus(componentStatus);
        },
        enumerable: false,
        configurable: true
    });
    Component.prototype.setStatus = function (componentStatus) {
        return this.setStatusComponent(componentStatus, this);
    };
    Component.prototype.setStatusComponent = function (componentStatus, component) {
        if (componentStatus === this.__componentStatus) {
            return;
        }
        if (component === this) {
            this.__componentStatus = componentStatus;
        }
        var proto = Object.getPrototypeOf(this);
        if (proto && (0, helpers_1.isFunction)(proto.setStatusComponent)) {
            proto.setStatusComponent(componentStatus, component);
        }
        var statuses = StatusListHandlers.get(this), list = statuses === null || statuses === void 0 ? void 0 : statuses[componentStatus];
        if (list && list.length) {
            list.forEach(function (cb) { return cb(component); });
        }
    };
    Component.prototype.hookStatus = function (status, callback) {
        var list = StatusListHandlers.get(this);
        if (!list) {
            list = {};
            StatusListHandlers.set(this, list);
        }
        if (!list[status]) {
            list[status] = [];
        }
        list[status].push(callback);
    };
    Component.isInstanceOf = function (c, constructorFunc) {
        return c instanceof constructorFunc;
    };
    Component.STATUSES = statuses_1.STATUSES;
    return Component;
}());
exports.Component = Component;


/***/ }),

/***/ 56562:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_295134__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_295134__(20255);
tslib_1.__exportStar(__nested_webpack_require_295134__(29411), exports);
tslib_1.__exportStar(__nested_webpack_require_295134__(45113), exports);
tslib_1.__exportStar(__nested_webpack_require_295134__(39840), exports);


/***/ }),

/***/ 29411:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.STATUSES = void 0;
exports.STATUSES = {
    beforeInit: 'beforeInit',
    ready: 'ready',
    beforeDestruct: 'beforeDestruct',
    destructed: 'destructed'
};


/***/ }),

/***/ 39840:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_296302__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ViewComponent = void 0;
var tslib_1 = __nested_webpack_require_296302__(20255);
var component_1 = __nested_webpack_require_296302__(45113);
var ViewComponent = (function (_super) {
    tslib_1.__extends(ViewComponent, _super);
    function ViewComponent(jodit) {
        var _this = _super.call(this) || this;
        _this.setParentView(jodit);
        return _this;
    }
    Object.defineProperty(ViewComponent.prototype, "j", {
        get: function () {
            return this.jodit;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(ViewComponent.prototype, "defaultTimeout", {
        get: function () {
            return this.j.defaultTimeout;
        },
        enumerable: false,
        configurable: true
    });
    ViewComponent.prototype.i18n = function (text) {
        var _a;
        var params = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            params[_i - 1] = arguments[_i];
        }
        return (_a = this.j).i18n.apply(_a, tslib_1.__spreadArray([text], tslib_1.__read(params), false));
    };
    ViewComponent.prototype.setParentView = function (jodit) {
        this.jodit = jodit;
        jodit.components.add(this);
        return this;
    };
    ViewComponent.prototype.destruct = function () {
        this.j.components.delete(this);
        return _super.prototype.destruct.call(this);
    };
    return ViewComponent;
}(component_1.Component));
exports.ViewComponent = ViewComponent;


/***/ }),

/***/ 86893:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_298177__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CLIPBOARD_ID = exports.lang = exports.TEMP_ATTR = exports.BASE_PATH = exports.KEY_ALIASES = exports.IS_MAC = exports.SAFE_COUNT_CHANGE_CALL = exports.INSERT_ONLY_TEXT = exports.INSERT_AS_TEXT = exports.INSERT_CLEAR_HTML = exports.INSERT_AS_HTML = exports.EMULATE_DBLCLICK_TIMEOUT = exports.MARKER_CLASS = exports.TEXT_RTF = exports.TEXT_HTML = exports.TEXT_PLAIN = exports.IS_IE = exports.MODE_SPLIT = exports.MODE_SOURCE = exports.MODE_WYSIWYG = exports.PARAGRAPH = exports.BR = exports.COMMAND_KEYS = exports.ACCURACY = exports.NEARBY = exports.KEY_F3 = exports.KEY_DELETE = exports.KEY_SPACE = exports.KEY_DOWN = exports.KEY_RIGHT = exports.KEY_UP = exports.KEY_LEFT = exports.KEY_ALT = exports.KEY_ESC = exports.KEY_ENTER = exports.KEY_TAB = exports.KEY_BACKSPACE = exports.KEY_META = exports.NO_EMPTY_TAGS = exports.INSEPARABLE_TAGS = exports.IS_INLINE = exports.IS_BLOCK = exports.SPACE_REG_EXP_END = exports.SPACE_REG_EXP_START = exports.SPACE_REG_EXP = exports.INVISIBLE_SPACE_REG_EXP_START = exports.INVISIBLE_SPACE_REG_EXP_END = exports.INVISIBLE_SPACE_REG_EXP = exports.NBSP_SPACE = exports.INVISIBLE_SPACE = void 0;
exports.SOURCE_CONSUMER = void 0;
var tslib_1 = __nested_webpack_require_298177__(20255);
exports.INVISIBLE_SPACE = '\uFEFF';
exports.NBSP_SPACE = '\u00A0';
var INVISIBLE_SPACE_REG_EXP = function () { return /[\uFEFF]/g; };
exports.INVISIBLE_SPACE_REG_EXP = INVISIBLE_SPACE_REG_EXP;
var INVISIBLE_SPACE_REG_EXP_END = function () { return /[\uFEFF]+$/g; };
exports.INVISIBLE_SPACE_REG_EXP_END = INVISIBLE_SPACE_REG_EXP_END;
var INVISIBLE_SPACE_REG_EXP_START = function () { return /^[\uFEFF]+/g; };
exports.INVISIBLE_SPACE_REG_EXP_START = INVISIBLE_SPACE_REG_EXP_START;
var SPACE_REG_EXP = function () { return /[\s\n\t\r\uFEFF\u200b]+/g; };
exports.SPACE_REG_EXP = SPACE_REG_EXP;
var SPACE_REG_EXP_START = function () { return /^[\s\n\t\r\uFEFF\u200b]+/g; };
exports.SPACE_REG_EXP_START = SPACE_REG_EXP_START;
var SPACE_REG_EXP_END = function () { return /[\s\n\t\r\uFEFF\u200b]+$/g; };
exports.SPACE_REG_EXP_END = SPACE_REG_EXP_END;
exports.IS_BLOCK = /^(ADDRESS|ARTICLE|ASIDE|BLOCKQUOTE|CANVAS|DD|DFN|DIV|DL|DT|FIELDSET|FIGCAPTION|FIGURE|FOOTER|FORM|H[1-6]|HEADER|HGROUP|HR|LI|MAIN|NAV|NOSCRIPT|OUTPUT|P|PRE|RUBY|SCRIPT|STYLE|OBJECT|OL|SECTION|IFRAME|JODIT|JODIT-MEDIA|UL|TR|TD|TH|TBODY|THEAD|TFOOT|TABLE|BODY|HTML|VIDEO)$/i;
exports.IS_INLINE = /^(STRONG|SPAN|I|EM|B|SUP|SUB|A|U)$/i;
var __UNSEPARABLE_TAGS = [
    'img',
    'video',
    'svg',
    'iframe',
    'script',
    'input',
    'textarea',
    'link',
    'jodit',
    'jodit-media'
];
exports.INSEPARABLE_TAGS = new Set(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(__UNSEPARABLE_TAGS), false), [
    'br',
    'hr'
], false));
exports.NO_EMPTY_TAGS = new Set(__UNSEPARABLE_TAGS);
exports.KEY_META = 'Meta';
exports.KEY_BACKSPACE = 'Backspace';
exports.KEY_TAB = 'Tab';
exports.KEY_ENTER = 'Enter';
exports.KEY_ESC = 'Escape';
exports.KEY_ALT = 'Alt';
exports.KEY_LEFT = 'ArrowLeft';
exports.KEY_UP = 'ArrowUp';
exports.KEY_RIGHT = 'ArrowRight';
exports.KEY_DOWN = 'ArrowDown';
exports.KEY_SPACE = 'Space';
exports.KEY_DELETE = 'Delete';
exports.KEY_F3 = 'F3';
exports.NEARBY = 5;
exports.ACCURACY = 10;
exports.COMMAND_KEYS = [
    exports.KEY_META,
    exports.KEY_BACKSPACE,
    exports.KEY_DELETE,
    exports.KEY_UP,
    exports.KEY_DOWN,
    exports.KEY_RIGHT,
    exports.KEY_LEFT,
    exports.KEY_ENTER,
    exports.KEY_ESC,
    exports.KEY_F3,
    exports.KEY_TAB
];
exports.BR = 'br';
exports.PARAGRAPH = 'p';
exports.MODE_WYSIWYG = 1;
exports.MODE_SOURCE = 2;
exports.MODE_SPLIT = 3;
exports.IS_IE = typeof navigator !== 'undefined' &&
    (navigator.userAgent.indexOf('MSIE') !== -1 ||
        /rv:11.0/i.test(navigator.userAgent));
exports.TEXT_PLAIN = exports.IS_IE ? 'text' : 'text/plain';
exports.TEXT_HTML = exports.IS_IE ? 'html' : 'text/html';
exports.TEXT_RTF = exports.IS_IE ? 'rtf' : 'text/rtf';
exports.MARKER_CLASS = 'jodit-selection_marker';
exports.EMULATE_DBLCLICK_TIMEOUT = 300;
exports.INSERT_AS_HTML = 'insert_as_html';
exports.INSERT_CLEAR_HTML = 'insert_clear_html';
exports.INSERT_AS_TEXT = 'insert_as_text';
exports.INSERT_ONLY_TEXT = 'insert_only_text';
exports.SAFE_COUNT_CHANGE_CALL = 10;
exports.IS_MAC = typeof window !== 'undefined' &&
    /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);
exports.KEY_ALIASES = {
    add: '+',
    break: 'pause',
    cmd: 'meta',
    command: 'meta',
    ctl: 'control',
    ctrl: 'control',
    del: 'delete',
    down: 'arrowdown',
    esc: 'escape',
    ins: 'insert',
    left: 'arrowleft',
    mod: exports.IS_MAC ? 'meta' : 'control',
    opt: 'alt',
    option: 'alt',
    return: 'enter',
    right: 'arrowright',
    space: ' ',
    spacebar: ' ',
    up: 'arrowup',
    win: 'meta',
    windows: 'meta'
};
exports.BASE_PATH = (function () {
    if (typeof document === 'undefined') {
        return '';
    }
    var script = document.currentScript, removeScriptName = function (s) {
        var parts = s.split('/');
        if (/\.js/.test(parts[parts.length - 1])) {
            return parts.slice(0, parts.length - 1).join('/') + '/';
        }
        return s;
    };
    if (script) {
        return removeScriptName(script.src);
    }
    var scripts = document.querySelectorAll('script[src]');
    if (scripts && scripts.length) {
        return removeScriptName(scripts[scripts.length - 1].src);
    }
    return window.location.href;
})();
exports.TEMP_ATTR = 'data-jodit-temp';
exports.lang = {};
exports.CLIPBOARD_ID = 'clipboard';
exports.SOURCE_CONSUMER = 'source-consumer';


/***/ }),

/***/ 31897:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_304165__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Create = void 0;
var helpers_1 = __nested_webpack_require_304165__(40332);
var assert_1 = __nested_webpack_require_304165__(52378);
var dom_1 = __nested_webpack_require_304165__(64968);
var constants_1 = __nested_webpack_require_304165__(86893);
var Create = (function () {
    function Create(document, createAttributes) {
        this.document = document;
        this.createAttributes = createAttributes;
    }
    Object.defineProperty(Create.prototype, "doc", {
        get: function () {
            return (0, helpers_1.isFunction)(this.document) ? this.document() : this.document;
        },
        enumerable: false,
        configurable: true
    });
    Create.prototype.element = function (tagName, childrenOrAttributes, children) {
        var _this = this;
        var elm = this.doc.createElement(tagName.toLowerCase());
        this.applyCreateAttributes(elm);
        if (childrenOrAttributes) {
            if ((0, helpers_1.isPlainObject)(childrenOrAttributes)) {
                (0, helpers_1.attr)(elm, childrenOrAttributes);
            }
            else {
                children = childrenOrAttributes;
            }
        }
        if (children) {
            (0, helpers_1.asArray)(children).forEach(function (child) {
                return elm.appendChild((0, helpers_1.isString)(child) ? _this.fromHTML(child) : child);
            });
        }
        return elm;
    };
    Create.prototype.div = function (className, childrenOrAttributes, children) {
        var div = this.element('div', childrenOrAttributes, children);
        if (className) {
            div.className = className;
        }
        return div;
    };
    Create.prototype.sandbox = function () {
        var _a;
        var iframe = this.element('iframe', { sandbox: 'allow-same-origin' });
        this.doc.body.appendChild(iframe);
        var doc = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document;
        void 0;
        if (!doc) {
            throw Error('Iframe error');
        }
        doc.open();
        doc.write('<!DOCTYPE html><html><head></head><body></body></html>');
        doc.close();
        return doc.body;
    };
    Create.prototype.span = function (className, childrenOrAttributes, children) {
        var span = this.element('span', childrenOrAttributes, children);
        if (className) {
            span.className = className;
        }
        return span;
    };
    Create.prototype.a = function (className, childrenOrAttributes, children) {
        var a = this.element('a', childrenOrAttributes, children);
        if (className) {
            a.className = className;
        }
        return a;
    };
    Create.prototype.text = function (value) {
        return this.doc.createTextNode(value);
    };
    Create.prototype.fake = function () {
        return this.text(constants_1.INVISIBLE_SPACE);
    };
    Create.prototype.fragment = function () {
        return this.doc.createDocumentFragment();
    };
    Create.prototype.fromHTML = function (html, refsToggleElement) {
        var div = this.div();
        div.innerHTML = html.toString();
        var child = div.firstChild !== div.lastChild || !div.firstChild
            ? div
            : div.firstChild;
        dom_1.Dom.safeRemove(child);
        if (refsToggleElement) {
            var refElements_1 = (0, helpers_1.refs)(child);
            Object.keys(refsToggleElement).forEach(function (key) {
                var elm = refElements_1[key];
                if (elm && refsToggleElement[key] === false) {
                    dom_1.Dom.hide(elm);
                }
            });
        }
        return child;
    };
    Create.prototype.applyCreateAttributes = function (elm) {
        if (this.createAttributes) {
            var ca = this.createAttributes;
            if (ca && ca[elm.tagName.toLowerCase()]) {
                var attrsOpt = ca[elm.tagName.toLowerCase()];
                if ((0, helpers_1.isFunction)(attrsOpt)) {
                    attrsOpt(elm);
                }
                else if ((0, helpers_1.isPlainObject)(attrsOpt)) {
                    (0, helpers_1.attr)(elm, attrsOpt);
                }
            }
        }
    };
    return Create;
}());
exports.Create = Create;


/***/ }),

/***/ 42841:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_308781__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_308781__(20255);
tslib_1.__exportStar(__nested_webpack_require_308781__(31897), exports);


/***/ }),

/***/ 32358:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_309283__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.cache = void 0;
var helpers_1 = __nested_webpack_require_309283__(40332);
function cache(target, name, descriptor) {
    var getter = descriptor.get;
    if (!getter) {
        throw (0, helpers_1.error)('Getter property descriptor expected');
    }
    descriptor.get = function () {
        var value = getter.call(this);
        if (value && value.noCache === true) {
            return value;
        }
        Object.defineProperty(this, name, {
            configurable: descriptor.configurable,
            enumerable: descriptor.enumerable,
            writable: false,
            value: value
        });
        return value;
    };
}
exports.cache = cache;


/***/ }),

/***/ 11441:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_310347__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.component = void 0;
var tslib_1 = __nested_webpack_require_310347__(20255);
function component(constructorFunction) {
    var newConstructorFunction = (function (_super) {
        tslib_1.__extends(newConstructorFunction, _super);
        function newConstructorFunction() {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            var _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(args), false)) || this;
            var isRootConstructor = _this.constructor === newConstructorFunction;
            if (isRootConstructor) {
                if (!(_this instanceof newConstructorFunction)) {
                    Object.setPrototypeOf(_this, newConstructorFunction.prototype);
                }
                _this.setStatus('ready');
            }
            return _this;
        }
        return newConstructorFunction;
    }(constructorFunction));
    return newConstructorFunction;
}
exports.component = component;


/***/ }),

/***/ 55773:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_311783__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.throttle = exports.debounce = void 0;
var checker_1 = __nested_webpack_require_311783__(10172);
var component_1 = __nested_webpack_require_311783__(56562);
var error_1 = __nested_webpack_require_311783__(56964);
var assert_1 = __nested_webpack_require_311783__(52378);
function debounce(timeout, firstCallImmediately, method) {
    if (firstCallImmediately === void 0) { firstCallImmediately = false; }
    if (method === void 0) { method = 'debounce'; }
    return function (target, propertyKey) {
        var fn = target[propertyKey];
        if (!(0, checker_1.isFunction)(fn)) {
            throw (0, error_1.error)('Handler must be a Function');
        }
        target.hookStatus(component_1.STATUSES.ready, function (component) {
            var async = component.async;
            void 0;
            var realTimeout = (0, checker_1.isFunction)(timeout)
                ? timeout(component)
                : timeout;
            Object.defineProperty(component, propertyKey, {
                configurable: true,
                value: async[method](component[propertyKey].bind(component), (0, checker_1.isNumber)(realTimeout) || (0, checker_1.isPlainObject)(realTimeout)
                    ? realTimeout
                    : component.defaultTimeout, firstCallImmediately)
            });
        });
        return {
            configurable: true,
            get: function () {
                return fn.bind(this);
            }
        };
    };
}
exports.debounce = debounce;
function throttle(timeout, firstCallImmediately) {
    if (firstCallImmediately === void 0) { firstCallImmediately = false; }
    return debounce(timeout, firstCallImmediately, 'throttle');
}
exports.throttle = throttle;


/***/ }),

/***/ 70669:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_313853__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.derive = void 0;
var tslib_1 = __nested_webpack_require_313853__(20255);
var checker_1 = __nested_webpack_require_313853__(10172);
function derive() {
    var traits = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        traits[_i] = arguments[_i];
    }
    return function (target) {
        var origin = target.prototype;
        for (var i = 0; i < traits.length; i++) {
            var trait = traits[i];
            var keys = Object.getOwnPropertyNames(trait.prototype);
            var _loop_1 = function (j) {
                var key = keys[j], method = Object.getOwnPropertyDescriptor(trait.prototype, key);
                var canDerive = method != null &&
                    (0, checker_1.isFunction)(method.value) &&
                    !(0, checker_1.isFunction)(origin[key]);
                if (canDerive) {
                    Object.defineProperty(origin, key, {
                        enumerable: true,
                        configurable: true,
                        writable: true,
                        value: function () {
                            var _a;
                            var args = [];
                            for (var _i = 0; _i < arguments.length; _i++) {
                                args[_i] = arguments[_i];
                            }
                            return (_a = method.value).call.apply(_a, tslib_1.__spreadArray([this], tslib_1.__read(args), false));
                        }
                    });
                }
            };
            for (var j = 0; j < keys.length; j++) {
                _loop_1(j);
            }
        }
    };
}
exports.derive = derive;


/***/ }),

/***/ 64522:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_315893__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hook = void 0;
var checker_1 = __nested_webpack_require_315893__(10172);
var error_1 = __nested_webpack_require_315893__(56964);
function hook(status) {
    return function (target, propertyKey) {
        if (!(0, checker_1.isFunction)(target[propertyKey])) {
            throw (0, error_1.error)('Handler must be a Function');
        }
        target.hookStatus(status, function (component) {
            component[propertyKey].call(component);
        });
    };
}
exports.hook = hook;


/***/ }),

/***/ 58682:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_316763__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.idle = void 0;
var tslib_1 = __nested_webpack_require_316763__(20255);
var component_1 = __nested_webpack_require_316763__(56562);
var helpers_1 = __nested_webpack_require_316763__(40332);
function idle() {
    return function (target, propertyKey) {
        if (!(0, helpers_1.isFunction)(target[propertyKey])) {
            throw (0, helpers_1.error)('Handler must be a Function');
        }
        target.hookStatus(component_1.STATUSES.ready, function (component) {
            var async = component.async;
            var originalMethod = component[propertyKey];
            component[propertyKey] = function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return async.requestIdleCallback(originalMethod.bind.apply(originalMethod, tslib_1.__spreadArray([component], tslib_1.__read(args), false)));
            };
        });
    };
}
exports.idle = idle;


/***/ }),

/***/ 43441:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_318124__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.autobind = void 0;
var tslib_1 = __nested_webpack_require_318124__(20255);
tslib_1.__exportStar(__nested_webpack_require_318124__(32358), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(11441), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(55773), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(58682), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(64522), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(91627), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(31418), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(67587), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(46163), exports);
tslib_1.__exportStar(__nested_webpack_require_318124__(70669), exports);
var autobind_decorator_1 = __nested_webpack_require_318124__(70631);
Object.defineProperty(exports, "autobind", ({ enumerable: true, get: function () { return autobind_decorator_1.default; } }));


/***/ }),

/***/ 91627:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.nonenumerable = void 0;
var nonenumerable = function (target, propertyKey) {
    var descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
    if (descriptor.enumerable !== false) {
        Object.defineProperty(target, propertyKey, {
            enumerable: false,
            set: function (value) {
                Object.defineProperty(this, propertyKey, {
                    enumerable: false,
                    writable: true,
                    value: value
                });
            }
        });
    }
};
exports.nonenumerable = nonenumerable;


/***/ }),

/***/ 31418:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_320336__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.persistent = void 0;
var component_1 = __nested_webpack_require_320336__(56562);
var is_view_object_1 = __nested_webpack_require_320336__(96574);
function persistent(target, propertyKey) {
    target.hookStatus(component_1.STATUSES.ready, function (component) {
        var jodit = (0, is_view_object_1.isViewObject)(component)
            ? component
            : component.jodit, storageKey = "".concat(jodit.options.namespace).concat(component.componentName, "_prop_").concat(propertyKey), initialValue = component[propertyKey];
        Object.defineProperty(component, propertyKey, {
            get: function () {
                var _a;
                return (_a = jodit.storage.get(storageKey)) !== null && _a !== void 0 ? _a : initialValue;
            },
            set: function (value) {
                jodit.storage.set(storageKey, value);
            }
        });
    });
}
exports.persistent = persistent;


/***/ }),

/***/ 67587:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_321642__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.wait = void 0;
var tslib_1 = __nested_webpack_require_321642__(20255);
var helpers_1 = __nested_webpack_require_321642__(40332);
var component_1 = __nested_webpack_require_321642__(56562);
function wait(condition) {
    return function (target, propertyKey) {
        var fn = target[propertyKey];
        if (!(0, helpers_1.isFunction)(fn)) {
            throw (0, helpers_1.error)('Handler must be a Function');
        }
        target.hookStatus(component_1.STATUSES.ready, function (component) {
            var async = component.async;
            var realMethod = component[propertyKey];
            var timeout = 0;
            Object.defineProperty(component, propertyKey, {
                configurable: true,
                value: function callProxy() {
                    var args = [];
                    for (var _i = 0; _i < arguments.length; _i++) {
                        args[_i] = arguments[_i];
                    }
                    async.clearTimeout(timeout);
                    if (condition(component)) {
                        realMethod.apply(component, args);
                    }
                    else {
                        timeout = async.setTimeout(function () { return callProxy.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false)); }, 10);
                    }
                }
            });
        });
    };
}
exports.wait = wait;


/***/ }),

/***/ 46163:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_323414__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.watch = exports.getPropertyDescriptor = void 0;
var tslib_1 = __nested_webpack_require_323414__(20255);
var is_function_1 = __nested_webpack_require_323414__(42096);
var is_plain_object_1 = __nested_webpack_require_323414__(79736);
var is_view_object_1 = __nested_webpack_require_323414__(96574);
var observable_1 = __nested_webpack_require_323414__(88418);
var statuses_1 = __nested_webpack_require_323414__(29411);
var split_array_1 = __nested_webpack_require_323414__(14556);
var error_1 = __nested_webpack_require_323414__(56964);
function getPropertyDescriptor(obj, prop) {
    var desc;
    do {
        desc = Object.getOwnPropertyDescriptor(obj, prop);
        obj = Object.getPrototypeOf(obj);
    } while (!desc && obj);
    return desc;
}
exports.getPropertyDescriptor = getPropertyDescriptor;
function watch(observeFields, context) {
    return function (target, propertyKey) {
        if (!(0, is_function_1.isFunction)(target[propertyKey])) {
            throw (0, error_1.error)('Handler must be a Function');
        }
        var process = function (component) {
            var callback = function (key) {
                var _a;
                var args = [];
                for (var _i = 1; _i < arguments.length; _i++) {
                    args[_i - 1] = arguments[_i];
                }
                if (!component.isInDestruct) {
                    return (_a = component)[propertyKey].apply(_a, tslib_1.__spreadArray([key], tslib_1.__read(args), false));
                }
            };
            (0, split_array_1.splitArray)(observeFields).forEach(function (field) {
                if (/:/.test(field)) {
                    var _a = tslib_1.__read(field.split(':'), 2), objectPath = _a[0], eventName_1 = _a[1];
                    var ctx_1 = context;
                    var view_1 = (0, is_view_object_1.isViewObject)(component)
                        ? component
                        : component.jodit;
                    if (objectPath.length) {
                        ctx_1 = component.get(objectPath);
                    }
                    if ((0, is_function_1.isFunction)(ctx_1)) {
                        ctx_1 = ctx_1(component);
                    }
                    view_1.events.on(ctx_1 || component, eventName_1, callback);
                    if (!ctx_1) {
                        view_1.events.on(eventName_1, callback);
                    }
                    component.hookStatus('beforeDestruct', function () {
                        view_1.events
                            .off(ctx_1 || component, eventName_1, callback)
                            .off(eventName_1, callback);
                    });
                    return;
                }
                var parts = field.split('.'), _b = tslib_1.__read(parts, 1), key = _b[0], teil = parts.slice(1);
                var value = component[key];
                if ((0, is_plain_object_1.isPlainObject)(value)) {
                    var observableValue = (0, observable_1.observable)(value);
                    observableValue.on("change.".concat(teil.join('.')), callback);
                }
                var descriptor = getPropertyDescriptor(target, key);
                Object.defineProperty(component, key, {
                    configurable: true,
                    set: function (v) {
                        var oldValue = value;
                        if (oldValue === v) {
                            return;
                        }
                        value = v;
                        if (descriptor && descriptor.set) {
                            descriptor.set.call(component, v);
                        }
                        if ((0, is_plain_object_1.isPlainObject)(value)) {
                            value = (0, observable_1.observable)(value);
                            value.on("change.".concat(teil.join('.')), callback);
                        }
                        callback(key, oldValue, value);
                    },
                    get: function () {
                        if (descriptor && descriptor.get) {
                            return descriptor.get.call(component);
                        }
                        return value;
                    }
                });
            });
        };
        if ((0, is_function_1.isFunction)(target.hookStatus)) {
            target.hookStatus(statuses_1.STATUSES.ready, process);
        }
        else {
            process(target);
        }
    };
}
exports.watch = watch;
exports["default"] = watch;


/***/ }),

/***/ 24263:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_328273__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Dom = void 0;
var tslib_1 = __nested_webpack_require_328273__(20255);
var consts = __nested_webpack_require_328273__(86893);
var checker_1 = __nested_webpack_require_328273__(10172);
var array_1 = __nested_webpack_require_328273__(12557);
var string_1 = __nested_webpack_require_328273__(19035);
var utils_1 = __nested_webpack_require_328273__(76502);
var is_marker_1 = __nested_webpack_require_328273__(37204);
var constants_1 = __nested_webpack_require_328273__(86893);
var Dom = (function () {
    function Dom() {
    }
    Dom.detach = function (node) {
        while (node.firstChild) {
            node.removeChild(node.firstChild);
        }
    };
    Dom.wrapInline = function (current, tag, editor) {
        var tmp, first = current, last = current;
        editor.s.save();
        var needFindNext = false;
        do {
            needFindNext = false;
            tmp = first.previousSibling;
            if (tmp && !Dom.isBlock(tmp)) {
                needFindNext = true;
                first = tmp;
            }
        } while (needFindNext);
        do {
            needFindNext = false;
            tmp = last.nextSibling;
            if (tmp && !Dom.isBlock(tmp)) {
                needFindNext = true;
                last = tmp;
            }
        } while (needFindNext);
        var wrapper = (0, checker_1.isString)(tag) ? editor.createInside.element(tag) : tag;
        if (first.parentNode) {
            first.parentNode.insertBefore(wrapper, first);
        }
        var next = first;
        while (next) {
            next = first.nextSibling;
            wrapper.appendChild(first);
            if (first === last || !next) {
                break;
            }
            first = next;
        }
        editor.s.restore();
        return wrapper;
    };
    Dom.wrap = function (current, tag, create) {
        var wrapper = (0, checker_1.isString)(tag) ? create.element(tag) : tag;
        if (Dom.isNode(current)) {
            if (!current.parentNode) {
                throw (0, utils_1.error)('Element should be in DOM');
            }
            current.parentNode.insertBefore(wrapper, current);
            wrapper.appendChild(current);
        }
        else {
            var fragment = current.extractContents();
            current.insertNode(wrapper);
            wrapper.appendChild(fragment);
        }
        return wrapper;
    };
    Dom.unwrap = function (node) {
        var parent = node.parentNode;
        if (parent) {
            while (node.firstChild) {
                parent.insertBefore(node.firstChild, node);
            }
            Dom.safeRemove(node);
        }
    };
    Dom.between = function (start, end, callback) {
        var next = start;
        while (next && next !== end) {
            if (start !== next && callback(next)) {
                break;
            }
            var step = next.firstChild || next.nextSibling;
            if (!step) {
                while (next && !next.nextSibling) {
                    next = next.parentNode;
                }
                step = next === null || next === void 0 ? void 0 : next.nextSibling;
            }
            next = step;
        }
    };
    Dom.replace = function (elm, newTagName, create, withAttributes, notMoveContent) {
        if (withAttributes === void 0) { withAttributes = false; }
        if (notMoveContent === void 0) { notMoveContent = false; }
        if ((0, checker_1.isHTML)(newTagName)) {
            newTagName = create.fromHTML(newTagName);
        }
        var tag = (0, checker_1.isString)(newTagName)
            ? create.element(newTagName)
            : newTagName;
        if (!notMoveContent) {
            while (elm.firstChild) {
                tag.appendChild(elm.firstChild);
            }
        }
        if (withAttributes && Dom.isElement(elm) && Dom.isElement(tag)) {
            (0, array_1.toArray)(elm.attributes).forEach(function (attr) {
                tag.setAttribute(attr.name, attr.value);
            });
        }
        if (elm.parentNode) {
            elm.parentNode.replaceChild(tag, elm);
        }
        return tag;
    };
    Dom.isEmptyTextNode = function (node) {
        return (Dom.isText(node) &&
            (!node.nodeValue ||
                node.nodeValue
                    .replace(consts.INVISIBLE_SPACE_REG_EXP(), '')
                    .trim().length === 0));
    };
    Dom.isEmptyContent = function (node) {
        return Dom.each(node, function (elm) {
            return Dom.isEmptyTextNode(elm);
        });
    };
    Dom.isContentEditable = function (node, root) {
        return (Dom.isNode(node) &&
            !Dom.closest(node, function (elm) {
                return Dom.isElement(elm) &&
                    elm.getAttribute('contenteditable') === 'false';
            }, root));
    };
    Dom.isEmpty = function (node, condNoEmptyElement) {
        if (condNoEmptyElement === void 0) { condNoEmptyElement = constants_1.NO_EMPTY_TAGS; }
        if (!node) {
            return true;
        }
        var cond;
        if (!(0, checker_1.isFunction)(condNoEmptyElement)) {
            cond = function (elm) {
                return condNoEmptyElement.has(elm.nodeName.toLowerCase());
            };
        }
        else {
            cond = condNoEmptyElement;
        }
        var emptyText = function (node) {
            return node.nodeValue == null || (0, string_1.trim)(node.nodeValue).length === 0;
        };
        if (Dom.isText(node)) {
            return emptyText(node);
        }
        return (!(Dom.isElement(node) && cond(node)) &&
            Dom.each(node, function (elm) {
                if ((Dom.isText(elm) && !emptyText(elm)) ||
                    (Dom.isElement(elm) && cond(elm))) {
                    return false;
                }
            }));
    };
    Dom.isNode = function (object) {
        return Boolean(object &&
            (0, checker_1.isString)(object.nodeName) &&
            typeof object.nodeType === 'number' &&
            object.childNodes &&
            (0, checker_1.isFunction)(object.appendChild));
    };
    Dom.isCell = function (elm) {
        return Dom.isNode(elm) && /^(td|th)$/i.test(elm.nodeName);
    };
    Dom.isImage = function (elm) {
        return (Dom.isNode(elm) && /^(img|svg|picture|canvas)$/i.test(elm.nodeName));
    };
    Dom.isBlock = function (node) {
        return (!(0, checker_1.isVoid)(node) &&
            typeof node === 'object' &&
            Dom.isNode(node) &&
            consts.IS_BLOCK.test(node.nodeName));
    };
    Dom.isText = function (node) {
        return Boolean(node && node.nodeType === Node.TEXT_NODE);
    };
    Dom.isElement = function (node) {
        var _a;
        if (!Dom.isNode(node)) {
            return false;
        }
        var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
        return Boolean(win && node.nodeType === Node.ELEMENT_NODE);
    };
    Dom.isFragment = function (node) {
        var _a;
        if (!Dom.isNode(node)) {
            return false;
        }
        var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
        return Boolean(win && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE);
    };
    Dom.isHTMLElement = function (node) {
        var _a;
        if (!Dom.isNode(node)) {
            return false;
        }
        var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
        return Boolean(win && node instanceof win.HTMLElement);
    };
    Dom.isInlineBlock = function (node) {
        return (Dom.isElement(node) &&
            !/^(BR|HR)$/i.test(node.tagName) &&
            ['inline', 'inline-block'].indexOf((0, utils_1.css)(node, 'display').toString()) !== -1);
    };
    Dom.canSplitBlock = function (node) {
        return (!(0, checker_1.isVoid)(node) &&
            Dom.isHTMLElement(node) &&
            Dom.isBlock(node) &&
            !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) &&
            node.style !== undefined &&
            !/^(fixed|absolute)/i.test(node.style.position));
    };
    Dom.last = function (root, condition) {
        var last = root === null || root === void 0 ? void 0 : root.lastChild;
        if (!last) {
            return null;
        }
        do {
            if (condition(last)) {
                return last;
            }
            var next = last.lastChild;
            if (!next) {
                next = last.previousSibling;
            }
            if (!next && last.parentNode !== root) {
                do {
                    last = last.parentNode;
                } while (last &&
                    !(last === null || last === void 0 ? void 0 : last.previousSibling) &&
                    last.parentNode !== root);
                next = last === null || last === void 0 ? void 0 : last.previousSibling;
            }
            last = next;
        } while (last);
        return null;
    };
    Dom.prev = function (node, condition, root, withChild) {
        if (withChild === void 0) { withChild = true; }
        return Dom.find(node, condition, root, false, withChild);
    };
    Dom.next = function (node, condition, root, withChild) {
        if (withChild === void 0) { withChild = true; }
        return Dom.find(node, condition, root, true, withChild);
    };
    Dom.prevWithClass = function (node, className) {
        return Dom.prev(node, function (node) {
            return (Dom.isElement(node) && node.classList.contains(className));
        }, node.parentNode);
    };
    Dom.nextWithClass = function (node, className) {
        return Dom.next(node, function (elm) { return Dom.isElement(elm) && elm.classList.contains(className); }, node.parentNode);
    };
    Dom.find = function (node, condition, root, leftToRight, withChild) {
        if (leftToRight === void 0) { leftToRight = true; }
        if (withChild === void 0) { withChild = true; }
        var gen = this.nextGen(node, root, leftToRight, withChild);
        var item = gen.next();
        while (!item.done) {
            if (condition(item.value)) {
                return item.value;
            }
            item = gen.next();
        }
        return null;
    };
    Dom.nextGen = function (start, root, leftToRight, withChild) {
        var stack, currentNode, next;
        if (leftToRight === void 0) { leftToRight = true; }
        if (withChild === void 0) { withChild = true; }
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0:
                    stack = [];
                    currentNode = start;
                    _a.label = 1;
                case 1:
                    next = leftToRight
                        ? currentNode.nextSibling
                        : currentNode.previousSibling;
                    while (next) {
                        stack.unshift(next);
                        next = leftToRight ? next.nextSibling : next.previousSibling;
                    }
                    return [5, tslib_1.__values(this.runInStack(start, stack, leftToRight, withChild))];
                case 2:
                    _a.sent();
                    currentNode = currentNode.parentNode;
                    _a.label = 3;
                case 3:
                    if (currentNode && currentNode !== root) return [3, 1];
                    _a.label = 4;
                case 4: return [2, null];
            }
        });
    };
    Dom.each = function (elm, callback, leftToRight) {
        if (leftToRight === void 0) { leftToRight = true; }
        var gen = this.eachGen(elm, leftToRight);
        var item = gen.next();
        while (!item.done) {
            if (callback(item.value) === false) {
                return false;
            }
            item = gen.next();
        }
        return true;
    };
    Dom.eachGen = function (root, leftToRight) {
        if (leftToRight === void 0) { leftToRight = true; }
        return this.runInStack(root, [root], leftToRight);
    };
    Dom.runInStack = function (start, stack, leftToRight, withChild) {
        var item, child;
        if (withChild === void 0) { withChild = true; }
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0:
                    if (!stack.length) return [3, 3];
                    item = stack.pop();
                    if (withChild) {
                        child = leftToRight ? item.lastChild : item.firstChild;
                        while (child) {
                            stack.push(child);
                            child = leftToRight
                                ? child.previousSibling
                                : child.nextSibling;
                        }
                    }
                    if (!(start !== item)) return [3, 2];
                    return [4, item];
                case 1:
                    _a.sent();
                    _a.label = 2;
                case 2: return [3, 0];
                case 3: return [2];
            }
        });
    };
    Dom.findWithCurrent = function (node, condition, root, sibling, child) {
        if (sibling === void 0) { sibling = 'nextSibling'; }
        if (child === void 0) { child = 'firstChild'; }
        var next = node;
        do {
            if (condition(next)) {
                return next || null;
            }
            if (child && next && next[child]) {
                var nextOne = Dom.findWithCurrent(next[child], condition, next, sibling, child);
                if (nextOne) {
                    return nextOne;
                }
            }
            while (next && !next[sibling] && next !== root) {
                next = next.parentNode;
            }
            if (next && next[sibling] && next !== root) {
                next = next[sibling];
            }
        } while (next && next !== root);
        return null;
    };
    Dom.findSibling = function (node, left, cond) {
        if (left === void 0) { left = true; }
        if (cond === void 0) { cond = function (n) {
            return !Dom.isEmptyTextNode(n);
        }; }
        var sibling = Dom.sibling(node, left);
        while (sibling && !cond(sibling)) {
            sibling = Dom.sibling(sibling, left);
        }
        return sibling && cond(sibling) ? sibling : null;
    };
    Dom.findNotEmptySibling = function (node, left) {
        return Dom.findSibling(node, left, function (n) {
            var _a;
            return (!Dom.isEmptyTextNode(n) &&
                Boolean(!Dom.isText(n) || (((_a = n.nodeValue) === null || _a === void 0 ? void 0 : _a.length) && (0, string_1.trim)(n.nodeValue))));
        });
    };
    Dom.findNotEmptyNeighbor = function (node, left, root) {
        return (0, utils_1.call)(left ? Dom.prev : Dom.next, node, function (n) {
            return Boolean(n && (!Dom.isText(n) || (0, string_1.trim)((n === null || n === void 0 ? void 0 : n.nodeValue) || '').length));
        }, root);
    };
    Dom.sibling = function (node, left) {
        return left ? node.previousSibling : node.nextSibling;
    };
    Dom.up = function (node, condition, root, checkRoot) {
        if (checkRoot === void 0) { checkRoot = false; }
        var start = node;
        if (!start) {
            return null;
        }
        do {
            if (condition(start)) {
                return start;
            }
            if (start === root || !start.parentNode) {
                break;
            }
            start = start.parentNode;
        } while (start && start !== root);
        if (start === root && checkRoot && condition(start)) {
            return start;
        }
        return null;
    };
    Dom.closest = function (node, tagsOrCondition, root) {
        var condition;
        var lc = function (s) { return s.toLowerCase(); };
        if ((0, checker_1.isFunction)(tagsOrCondition)) {
            condition = tagsOrCondition;
        }
        else if ((0, checker_1.isArray)(tagsOrCondition)) {
            var set_1 = new Set(tagsOrCondition.map(lc));
            condition = function (tag) {
                return Boolean(tag && set_1.has(lc(tag.nodeName)));
            };
        }
        else {
            condition = function (tag) {
                return Boolean(tag && lc(tagsOrCondition) === lc(tag.nodeName));
            };
        }
        return Dom.up(node, condition, root);
    };
    Dom.furthest = function (node, condition, root) {
        var matchedParent = null, current = node === null || node === void 0 ? void 0 : node.parentElement;
        while (current && current !== root) {
            if (condition(current)) {
                matchedParent = current;
            }
            current = current === null || current === void 0 ? void 0 : current.parentElement;
        }
        return matchedParent;
    };
    Dom.appendChildFirst = function (root, newElement) {
        var child = root.firstChild;
        if (child) {
            if (child !== newElement) {
                root.insertBefore(newElement, child);
            }
        }
        else {
            root.appendChild(newElement);
        }
    };
    Dom.after = function (elm, newElement) {
        var parentNode = elm.parentNode;
        if (!parentNode) {
            return;
        }
        if (parentNode.lastChild === elm) {
            parentNode.appendChild(newElement);
        }
        else {
            parentNode.insertBefore(newElement, elm.nextSibling);
        }
    };
    Dom.before = function (elm, newElement) {
        var parentNode = elm.parentNode;
        if (!parentNode) {
            return;
        }
        parentNode.insertBefore(newElement, elm);
    };
    Dom.prepend = function (root, newElement) {
        root.insertBefore(newElement, root.firstChild);
    };
    Dom.append = function (root, newElement) {
        var _this = this;
        if ((0, checker_1.isArray)(newElement)) {
            newElement.forEach(function (node) {
                _this.append(root, node);
            });
        }
        else {
            root.appendChild(newElement);
        }
    };
    Dom.moveContent = function (from, to, inStart, filter) {
        if (inStart === void 0) { inStart = false; }
        if (filter === void 0) { filter = function () { return true; }; }
        var fragment = (from.ownerDocument || document).createDocumentFragment();
        (0, array_1.toArray)(from.childNodes)
            .filter(function (elm) {
            if (filter(elm)) {
                return true;
            }
            Dom.safeRemove(elm);
            return false;
        })
            .forEach(function (node) {
            fragment.appendChild(node);
        });
        if (!inStart || !to.firstChild) {
            to.appendChild(fragment);
        }
        else {
            to.insertBefore(fragment, to.firstChild);
        }
    };
    Dom.isOrContains = function (root, child, onlyContains) {
        if (onlyContains === void 0) { onlyContains = false; }
        if (root === child) {
            return !onlyContains;
        }
        return Boolean(child && root && this.up(child, function (nd) { return nd === root; }, root, true));
    };
    Dom.safeRemove = function () {
        var nodes = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            nodes[_i] = arguments[_i];
        }
        nodes.forEach(function (node) {
            return Dom.isNode(node) &&
                node.parentNode &&
                node.parentNode.removeChild(node);
        });
    };
    Dom.safeInsertNode = function (range, node) {
        range.collapsed || range.deleteContents();
        range.insertNode(node);
        range.setStartBefore(node);
        range.collapse(true);
        [node.nextSibling, node.previousSibling].forEach(function (n) { return Dom.isText(n) && !n.nodeValue && Dom.safeRemove(n); });
    };
    Dom.hide = function (node) {
        if (!node) {
            return;
        }
        (0, utils_1.dataBind)(node, '__old_display', node.style.display);
        node.style.display = 'none';
    };
    Dom.show = function (node) {
        if (!node) {
            return;
        }
        var display = (0, utils_1.dataBind)(node, '__old_display');
        if (node.style.display === 'none') {
            node.style.display = display || '';
        }
    };
    Dom.isTag = function (node, tagNames) {
        if (!this.isElement(node)) {
            return false;
        }
        var nameL = node.tagName.toLowerCase();
        var nameU = node.tagName.toUpperCase();
        if (tagNames instanceof Set) {
            return tagNames.has(nameL) || tagNames.has(nameU);
        }
        var tags = (0, array_1.asArray)(tagNames).map(function (s) { return String(s).toLowerCase(); });
        for (var i = 0; i < tags.length; i += 1) {
            if (nameL === tags[i] || nameU === tags[i]) {
                return true;
            }
        }
        return false;
    };
    Dom.markTemporary = function (element, attributes) {
        attributes && (0, utils_1.attr)(element, attributes);
        (0, utils_1.attr)(element, constants_1.TEMP_ATTR, true);
        return element;
    };
    Dom.isTemporary = function (element) {
        if (!Dom.isElement(element)) {
            return false;
        }
        return (0, is_marker_1.isMarker)(element) || (0, utils_1.attr)(element, constants_1.TEMP_ATTR) === 'true';
    };
    Dom.replaceTemporaryFromString = function (value) {
        return value.replace(/<([a-z]+)[^>]+data-jodit-temp[^>]+>(.+?)<\/\1>/gi, '$2');
    };
    Dom.temporaryList = function (root) {
        return (0, utils_1.$$)("[".concat(constants_1.TEMP_ATTR, "]"), root);
    };
    return Dom;
}());
exports.Dom = Dom;


/***/ }),

/***/ 64968:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_350426__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_350426__(20255);
tslib_1.__exportStar(__nested_webpack_require_350426__(24263), exports);
tslib_1.__exportStar(__nested_webpack_require_350426__(33841), exports);


/***/ }),

/***/ 33841:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_350987__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.LazyWalker = void 0;
var tslib_1 = __nested_webpack_require_350987__(20255);
var eventify_1 = __nested_webpack_require_350987__(73852);
var decorators_1 = __nested_webpack_require_350987__(43441);
var dom_1 = __nested_webpack_require_350987__(24263);
var LazyWalker = (function (_super) {
    tslib_1.__extends(LazyWalker, _super);
    function LazyWalker(async, options) {
        if (options === void 0) { options = {}; }
        var _this = _super.call(this) || this;
        _this.async = async;
        _this.options = options;
        _this.workNodes = null;
        _this.hadAffect = false;
        _this.isWorked = false;
        _this.isFinished = false;
        _this.idleId = 0;
        return _this;
    }
    LazyWalker.prototype.setWork = function (root) {
        if (this.isWorked) {
            this.break();
        }
        this.workNodes = dom_1.Dom.eachGen(root, !this.options.reverse);
        this.isFinished = false;
        this.startIdleRequest();
        return this;
    };
    LazyWalker.prototype.startIdleRequest = function () {
        var _a;
        this.idleId = this.async.requestIdleCallback(this.workPerform, {
            timeout: (_a = this.options.timeout) !== null && _a !== void 0 ? _a : 10
        });
    };
    LazyWalker.prototype.break = function (reason) {
        if (this.isWorked) {
            this.stop();
            this.emit('break', reason);
        }
    };
    LazyWalker.prototype.end = function () {
        if (this.isWorked) {
            this.stop();
            this.emit('end', this.hadAffect);
            this.hadAffect = false;
        }
    };
    LazyWalker.prototype.stop = function () {
        this.isWorked = false;
        this.isFinished = true;
        this.workNodes = null;
        this.async.cancelIdleCallback(this.idleId);
    };
    LazyWalker.prototype.destruct = function () {
        _super.prototype.destruct.call(this);
        this.stop();
    };
    LazyWalker.prototype.workPerform = function (deadline) {
        var _a;
        if (this.workNodes) {
            this.isWorked = true;
            var count = 0;
            var chunkSize = (_a = this.options.timeoutChunkSize) !== null && _a !== void 0 ? _a : 50;
            while (!this.isFinished &&
                (deadline.timeRemaining() > 0 ||
                    (deadline.didTimeout && count <= chunkSize))) {
                var item = this.workNodes.next();
                count += 1;
                if (this.visitNode(item.value)) {
                    this.hadAffect = true;
                }
                if (item.done) {
                    this.end();
                    return;
                }
            }
        }
        else {
            this.end();
        }
        if (!this.isFinished) {
            this.startIdleRequest();
        }
    };
    LazyWalker.prototype.visitNode = function (nodeElm) {
        var _a;
        if (!nodeElm ||
            (this.options.whatToShow !== undefined &&
                nodeElm.nodeType !== this.options.whatToShow)) {
            return false;
        }
        return (_a = this.emit('visit', nodeElm)) !== null && _a !== void 0 ? _a : false;
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], LazyWalker.prototype, "workPerform", null);
    return LazyWalker;
}(eventify_1.Eventify));
exports.LazyWalker = LazyWalker;


/***/ }),

/***/ 3808:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_354700__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.EventEmitter = void 0;
var tslib_1 = __nested_webpack_require_354700__(20255);
var store_1 = __nested_webpack_require_354700__(83611);
var is_string_1 = __nested_webpack_require_354700__(24421);
var is_function_1 = __nested_webpack_require_354700__(42096);
var is_array_1 = __nested_webpack_require_354700__(49781);
var error_1 = __nested_webpack_require_354700__(56964);
var split_array_1 = __nested_webpack_require_354700__(14556);
var EventEmitter = (function () {
    function EventEmitter(doc) {
        var _this = this;
        this.__mutedEvents = new Set();
        this.__key = '__JoditEventEmitterNamespaces';
        this.__doc = document;
        this.__prepareEvent = function (e) {
            if (e.cancelBubble) {
                return;
            }
            if (e.composed && (0, is_function_1.isFunction)(e.composedPath) && e.composedPath()[0]) {
                Object.defineProperty(e, 'target', {
                    value: e.composedPath()[0],
                    configurable: true,
                    enumerable: true
                });
            }
            if (e.type.match(/^touch/) &&
                e.changedTouches &&
                e.changedTouches.length) {
                ['clientX', 'clientY', 'pageX', 'pageY'].forEach(function (key) {
                    Object.defineProperty(e, key, {
                        value: e.changedTouches[0][key],
                        configurable: true,
                        enumerable: true
                    });
                });
            }
            if (!e.originalEvent) {
                e.originalEvent = e;
            }
            if (e.type === 'paste' &&
                e.clipboardData === undefined &&
                _this.__doc.defaultView.clipboardData) {
                Object.defineProperty(e, 'clipboardData', {
                    get: function () {
                        return _this.__doc.defaultView.clipboardData;
                    },
                    configurable: true,
                    enumerable: true
                });
            }
        };
        this.currents = [];
        this.__stopped = [];
        this.__isDestructed = false;
        if (doc) {
            this.__doc = doc;
        }
        this.__key += new Date().getTime();
    }
    EventEmitter.prototype.mute = function (event) {
        this.__mutedEvents.add(event !== null && event !== void 0 ? event : '*');
        return this;
    };
    EventEmitter.prototype.isMuted = function (event) {
        if (event && this.__mutedEvents.has(event)) {
            return true;
        }
        return this.__mutedEvents.has('*');
    };
    EventEmitter.prototype.unmute = function (event) {
        this.__mutedEvents.delete(event !== null && event !== void 0 ? event : '*');
        return this;
    };
    EventEmitter.prototype.__eachEvent = function (events, callback) {
        var _this = this;
        var eventParts = (0, split_array_1.splitArray)(events).map(function (e) { return e.trim(); });
        eventParts.forEach(function (eventNameSpace) {
            var eventAndNameSpace = eventNameSpace.split('.');
            var namespace = eventAndNameSpace[1] || store_1.defaultNameSpace;
            callback.call(_this, eventAndNameSpace[0], namespace);
        });
    };
    EventEmitter.prototype.__getStore = function (subject) {
        if (!subject) {
            throw (0, error_1.error)('Need subject');
        }
        if (subject[this.__key] === undefined) {
            var store = new store_1.EventHandlersStore();
            Object.defineProperty(subject, this.__key, {
                enumerable: false,
                configurable: true,
                writable: true,
                value: store
            });
        }
        return subject[this.__key];
    };
    EventEmitter.prototype.__removeStoreFromSubject = function (subject) {
        if (subject[this.__key] !== undefined) {
            Object.defineProperty(subject, this.__key, {
                enumerable: false,
                configurable: true,
                writable: true,
                value: undefined
            });
        }
    };
    EventEmitter.prototype.__triggerNativeEvent = function (element, event) {
        var evt = this.__doc.createEvent('HTMLEvents');
        if ((0, is_string_1.isString)(event)) {
            evt.initEvent(event, true, true);
        }
        else {
            evt.initEvent(event.type, event.bubbles, event.cancelable);
            [
                'screenX',
                'screenY',
                'clientX',
                'clientY',
                'target',
                'srcElement',
                'currentTarget',
                'timeStamp',
                'which',
                'keyCode'
            ].forEach(function (property) {
                Object.defineProperty(evt, property, {
                    value: event[property],
                    enumerable: true
                });
            });
            Object.defineProperty(evt, 'originalEvent', {
                value: event,
                enumerable: true
            });
        }
        element.dispatchEvent(evt);
    };
    Object.defineProperty(EventEmitter.prototype, "current", {
        get: function () {
            return this.currents[this.currents.length - 1];
        },
        enumerable: false,
        configurable: true
    });
    EventEmitter.prototype.on = function (eventsOrSubjects, callbackOrEvents, optionsOrCallback, opts) {
        var _this = this;
        var subjects;
        var events;
        var callback;
        var options;
        if ((0, is_string_1.isString)(eventsOrSubjects) || (0, is_string_1.isStringArray)(eventsOrSubjects)) {
            subjects = this;
            events = eventsOrSubjects;
            callback = callbackOrEvents;
            options = optionsOrCallback;
        }
        else {
            subjects = eventsOrSubjects;
            events = callbackOrEvents;
            callback = optionsOrCallback;
            options = opts;
        }
        if (!((0, is_string_1.isString)(events) || (0, is_string_1.isStringArray)(events)) ||
            events.length === 0) {
            throw (0, error_1.error)('Need events names');
        }
        if (!(0, is_function_1.isFunction)(callback)) {
            throw (0, error_1.error)('Need event handler');
        }
        if ((0, is_array_1.isArray)(subjects)) {
            subjects.forEach(function (subj) {
                _this.on(subj, events, callback, options);
            });
            return this;
        }
        var subject = subjects;
        var store = this.__getStore(subject);
        var isDOMElement = (0, is_function_1.isFunction)(subject.addEventListener), self = this;
        var syntheticCallback = function (event) {
            var args = [];
            for (var _i = 1; _i < arguments.length; _i++) {
                args[_i - 1] = arguments[_i];
            }
            if (self.isMuted(event)) {
                return;
            }
            return callback && callback.call.apply(callback, tslib_1.__spreadArray([this], tslib_1.__read(args), false));
        };
        if (isDOMElement) {
            syntheticCallback = function (event) {
                if (self.isMuted(event.type)) {
                    return;
                }
                self.__prepareEvent(event);
                if (callback && callback.call(this, event) === false) {
                    event.preventDefault();
                    event.stopImmediatePropagation();
                    return false;
                }
                return;
            };
        }
        this.__eachEvent(events, function (event, namespace) {
            if (event.length === 0) {
                throw (0, error_1.error)('Need event name');
            }
            if (store.indexOf(event, namespace, callback) === false) {
                var block = {
                    event: event,
                    originalCallback: callback,
                    syntheticCallback: syntheticCallback
                };
                store.set(event, namespace, block, options === null || options === void 0 ? void 0 : options.top);
                if (isDOMElement) {
                    var options_1 = [
                        'touchstart',
                        'touchend',
                        'scroll',
                        'mousewheel',
                        'mousemove',
                        'touchmove'
                    ].includes(event)
                        ? {
                            passive: true
                        }
                        : false;
                    subject.addEventListener(event, syntheticCallback, options_1);
                }
            }
        });
        return this;
    };
    EventEmitter.prototype.one = function (eventsOrSubjects, callbackOrEvents, optionsOrCallback, opts) {
        var _this = this;
        var subjects;
        var events;
        var callback;
        var options;
        if ((0, is_string_1.isString)(eventsOrSubjects) || (0, is_string_1.isStringArray)(eventsOrSubjects)) {
            subjects = this;
            events = eventsOrSubjects;
            callback = callbackOrEvents;
            options = optionsOrCallback;
        }
        else {
            subjects = eventsOrSubjects;
            events = callbackOrEvents;
            callback = optionsOrCallback;
            options = opts;
        }
        var newCallback = function () {
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            _this.off(subjects, events, newCallback);
            return callback.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
        };
        this.on(subjects, events, newCallback, options);
        return this;
    };
    EventEmitter.prototype.off = function (eventsOrSubjects, callbackOrEvents, handler) {
        var _this = this;
        var subjects;
        var events;
        var callback;
        if ((0, is_string_1.isString)(eventsOrSubjects) || (0, is_string_1.isStringArray)(eventsOrSubjects)) {
            subjects = this;
            events = eventsOrSubjects;
            callback = callbackOrEvents;
        }
        else {
            subjects = eventsOrSubjects;
            events = callbackOrEvents;
            callback = handler;
        }
        if ((0, is_array_1.isArray)(subjects)) {
            subjects.forEach(function (subj) {
                _this.off(subj, events, callback);
            });
            return this;
        }
        var subject = subjects;
        var store = this.__getStore(subject);
        if (!((0, is_string_1.isString)(events) || (0, is_string_1.isStringArray)(events)) ||
            events.length === 0) {
            store.namespaces().forEach(function (namespace) {
                _this.off(subject, '.' + namespace);
            });
            this.__removeStoreFromSubject(subject);
            return this;
        }
        var isDOMElement = (0, is_function_1.isFunction)(subject.removeEventListener), removeEventListener = function (block) {
            if (isDOMElement) {
                subject.removeEventListener(block.event, block.syntheticCallback, false);
            }
        }, removeCallbackFromNameSpace = function (event, namespace) {
            if (event === '') {
                store.events(namespace).forEach(function (eventName) {
                    if (eventName !== '') {
                        removeCallbackFromNameSpace(eventName, namespace);
                    }
                });
                return;
            }
            var blocks = store.get(event, namespace);
            if (!blocks || !blocks.length) {
                return;
            }
            if (!(0, is_function_1.isFunction)(callback)) {
                blocks.forEach(removeEventListener);
                blocks.length = 0;
                store.clearEvents(namespace, event);
            }
            else {
                var index = store.indexOf(event, namespace, callback);
                if (index !== false) {
                    removeEventListener(blocks[index]);
                    blocks.splice(index, 1);
                    if (!blocks.length) {
                        store.clearEvents(namespace, event);
                    }
                }
            }
        };
        this.__eachEvent(events, function (event, namespace) {
            if (namespace === store_1.defaultNameSpace) {
                store.namespaces().forEach(function (namespace) {
                    removeCallbackFromNameSpace(event, namespace);
                });
            }
            else {
                removeCallbackFromNameSpace(event, namespace);
            }
        });
        if (store.isEmpty()) {
            this.__removeStoreFromSubject(subject);
        }
        return this;
    };
    EventEmitter.prototype.stopPropagation = function (subjectOrEvents, eventsList) {
        var _this = this;
        var subject = (0, is_string_1.isString)(subjectOrEvents)
            ? this
            : subjectOrEvents;
        var events = (0, is_string_1.isString)(subjectOrEvents)
            ? subjectOrEvents
            : eventsList;
        if (typeof events !== 'string') {
            throw (0, error_1.error)('Need event names');
        }
        var store = this.__getStore(subject);
        this.__eachEvent(events, function (event, namespace) {
            var blocks = store.get(event, namespace);
            if (blocks) {
                _this.__stopped.push(blocks);
            }
            if (namespace === store_1.defaultNameSpace) {
                store
                    .namespaces(true)
                    .forEach(function (ns) {
                    return _this.stopPropagation(subject, event + '.' + ns);
                });
            }
        });
    };
    EventEmitter.prototype.__removeStop = function (currentBlocks) {
        if (currentBlocks) {
            var index = this.__stopped.indexOf(currentBlocks);
            index !== -1 && this.__stopped.splice(0, index + 1);
        }
    };
    EventEmitter.prototype.__isStopped = function (currentBlocks) {
        return (currentBlocks !== undefined &&
            this.__stopped.indexOf(currentBlocks) !== -1);
    };
    EventEmitter.prototype.fire = function (subjectOrEvents, eventsList) {
        var _this = this;
        var args = [];
        for (var _i = 2; _i < arguments.length; _i++) {
            args[_i - 2] = arguments[_i];
        }
        var result, result_value;
        var subject = (0, is_string_1.isString)(subjectOrEvents)
            ? this
            : subjectOrEvents;
        var events = (0, is_string_1.isString)(subjectOrEvents)
            ? subjectOrEvents
            : eventsList;
        var argumentsList = (0, is_string_1.isString)(subjectOrEvents)
            ? tslib_1.__spreadArray([eventsList], tslib_1.__read(args), false) : args;
        var isDOMElement = (0, is_function_1.isFunction)(subject.dispatchEvent);
        if (!isDOMElement && !(0, is_string_1.isString)(events)) {
            throw (0, error_1.error)('Need events names');
        }
        var store = this.__getStore(subject);
        if (!(0, is_string_1.isString)(events) && isDOMElement) {
            this.__triggerNativeEvent(subject, eventsList);
        }
        else {
            this.__eachEvent(events, function (event, namespace) {
                if (isDOMElement) {
                    _this.__triggerNativeEvent(subject, event);
                }
                else {
                    var blocks_1 = store.get(event, namespace);
                    if (blocks_1) {
                        try {
                            tslib_1.__spreadArray([], tslib_1.__read(blocks_1), false).every(function (block) {
                                var _a;
                                if (_this.__isStopped(blocks_1)) {
                                    return false;
                                }
                                _this.currents.push(event);
                                result_value = (_a = block.syntheticCallback).call.apply(_a, tslib_1.__spreadArray([subject,
                                    event], tslib_1.__read(argumentsList), false));
                                _this.currents.pop();
                                if (result_value !== undefined) {
                                    result = result_value;
                                }
                                return true;
                            });
                        }
                        finally {
                            _this.__removeStop(blocks_1);
                        }
                    }
                    if (namespace === store_1.defaultNameSpace && !isDOMElement) {
                        store
                            .namespaces()
                            .filter(function (ns) { return ns !== namespace; })
                            .forEach(function (ns) {
                            var result_second = _this.fire.apply(_this, tslib_1.__spreadArray([
                                subject,
                                event + '.' + ns
                            ], tslib_1.__read(argumentsList), false));
                            if (result_second !== undefined) {
                                result = result_second;
                            }
                        });
                    }
                }
            });
        }
        return result;
    };
    EventEmitter.prototype.destruct = function () {
        if (!this.__isDestructed) {
            return;
        }
        this.__isDestructed = true;
        this.off(this);
        this.__getStore(this).clear();
        this.__removeStoreFromSubject(this);
    };
    return EventEmitter;
}());
exports.EventEmitter = EventEmitter;


/***/ }),

/***/ 73852:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_373029__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Eventify = void 0;
var tslib_1 = __nested_webpack_require_373029__(20255);
var Eventify = (function () {
    function Eventify() {
        this.__map = new Map();
    }
    Eventify.prototype.on = function (name, func) {
        var _a;
        if (!this.__map.has(name)) {
            this.__map.set(name, new Set());
        }
        (_a = this.__map.get(name)) === null || _a === void 0 ? void 0 : _a.add(func);
        return this;
    };
    Eventify.prototype.off = function (name, func) {
        var _a;
        if (this.__map.has(name)) {
            (_a = this.__map.get(name)) === null || _a === void 0 ? void 0 : _a.delete(func);
        }
        return this;
    };
    Eventify.prototype.destruct = function () {
        this.__map.clear();
    };
    Eventify.prototype.emit = function (name) {
        var _a;
        var args = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            args[_i - 1] = arguments[_i];
        }
        var result;
        if (this.__map.has(name)) {
            (_a = this.__map.get(name)) === null || _a === void 0 ? void 0 : _a.forEach(function (cb) {
                result = cb.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
            });
        }
        return result;
    };
    return Eventify;
}());
exports.Eventify = Eventify;


/***/ }),

/***/ 55395:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_374754__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_374754__(20255);
tslib_1.__exportStar(__nested_webpack_require_374754__(3808), exports);
tslib_1.__exportStar(__nested_webpack_require_374754__(73852), exports);
tslib_1.__exportStar(__nested_webpack_require_374754__(88418), exports);
tslib_1.__exportStar(__nested_webpack_require_374754__(83611), exports);


/***/ }),

/***/ 88418:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_375432__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.observable = void 0;
var tslib_1 = __nested_webpack_require_375432__(20255);
var is_array_1 = __nested_webpack_require_375432__(49781);
var is_equal_1 = __nested_webpack_require_375432__(32756);
var is_plain_object_1 = __nested_webpack_require_375432__(79736);
var watch_1 = __nested_webpack_require_375432__(46163);
var OBSERVABLE_OBJECT = Symbol('observable-object');
function isObservableObject(obj) {
    return obj[OBSERVABLE_OBJECT] !== undefined;
}
function observable(obj) {
    if (isObservableObject(obj)) {
        return obj;
    }
    var __lockEvent = {};
    var __onEvents = {};
    var on = function (event, callback) {
        if ((0, is_array_1.isArray)(event)) {
            event.map(function (e) { return on(e, callback); });
            return obj;
        }
        if (!__onEvents[event]) {
            __onEvents[event] = [];
        }
        __onEvents[event].push(callback);
        return obj;
    };
    var fire = function (event) {
        var attr = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            attr[_i - 1] = arguments[_i];
        }
        if ((0, is_array_1.isArray)(event)) {
            event.map(function (e) { return fire.apply(void 0, tslib_1.__spreadArray([e], tslib_1.__read(attr), false)); });
            return;
        }
        try {
            if (!__lockEvent[event] && __onEvents[event]) {
                __lockEvent[event] = true;
                __onEvents[event].forEach(function (clb) { return clb.call.apply(clb, tslib_1.__spreadArray([obj], tslib_1.__read(attr), false)); });
            }
        }
        finally {
            __lockEvent[event] = false;
        }
    };
    var initAccessors = function (dict, prefixes) {
        if (prefixes === void 0) { prefixes = []; }
        var store = {};
        if (isObservableObject(dict)) {
            return;
        }
        Object.defineProperty(dict, OBSERVABLE_OBJECT, {
            enumerable: false,
            value: true
        });
        Object.keys(dict).forEach(function (_key) {
            var key = _key;
            var prefix = prefixes.concat(key).filter(function (a) { return a.length; });
            store[key] = dict[key];
            var descriptor = (0, watch_1.getPropertyDescriptor)(dict, key);
            Object.defineProperty(dict, key, {
                set: function (value) {
                    var oldValue = store[key];
                    if (!(0, is_equal_1.isFastEqual)(store[key], value)) {
                        fire([
                            'beforeChange',
                            "beforeChange.".concat(prefix.join('.'))
                        ], key, value);
                        if ((0, is_plain_object_1.isPlainObject)(value)) {
                            initAccessors(value, prefix);
                        }
                        if (descriptor && descriptor.set) {
                            descriptor.set.call(obj, value);
                        }
                        else {
                            store[key] = value;
                        }
                        var sum_1 = [];
                        fire(tslib_1.__spreadArray([
                            'change'
                        ], tslib_1.__read(prefix.reduce(function (rs, p) {
                            sum_1.push(p);
                            rs.push("change.".concat(sum_1.join('.')));
                            return rs;
                        }, [])), false), prefix.join('.'), oldValue, (value === null || value === void 0 ? void 0 : value.valueOf)
                            ? value.valueOf()
                            : value);
                    }
                },
                get: function () {
                    if (descriptor && descriptor.get) {
                        return descriptor.get.call(obj);
                    }
                    return store[key];
                },
                enumerable: true,
                configurable: true
            });
            if ((0, is_plain_object_1.isPlainObject)(store[key])) {
                initAccessors(store[key], prefix);
            }
        });
        Object.defineProperty(obj, 'on', {
            value: on
        });
    };
    initAccessors(obj);
    return obj;
}
exports.observable = observable;


/***/ }),

/***/ 83611:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_380073__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.EventHandlersStore = exports.defaultNameSpace = void 0;
var assert_1 = __nested_webpack_require_380073__(52378);
var to_array_1 = __nested_webpack_require_380073__(1853);
exports.defaultNameSpace = 'JoditEventDefaultNamespace';
var EventHandlersStore = (function () {
    function EventHandlersStore() {
        this.__store = new Map();
    }
    EventHandlersStore.prototype.get = function (event, namespace) {
        if (this.__store.has(namespace)) {
            var ns = this.__store.get(namespace);
            void 0;
            return ns[event];
        }
    };
    EventHandlersStore.prototype.indexOf = function (event, namespace, originalCallback) {
        var blocks = this.get(event, namespace);
        if (blocks) {
            for (var i = 0; i < blocks.length; i += 1) {
                if (blocks[i].originalCallback === originalCallback) {
                    return i;
                }
            }
        }
        return false;
    };
    EventHandlersStore.prototype.namespaces = function (withoutDefault) {
        if (withoutDefault === void 0) { withoutDefault = false; }
        var nss = (0, to_array_1.toArray)(this.__store.keys());
        return withoutDefault ? nss.filter(function (ns) { return ns !== exports.defaultNameSpace; }) : nss;
    };
    EventHandlersStore.prototype.events = function (namespace) {
        var ns = this.__store.get(namespace);
        return ns ? Object.keys(ns) : [];
    };
    EventHandlersStore.prototype.set = function (event, namespace, data, onTop) {
        if (onTop === void 0) { onTop = false; }
        var ns = this.__store.get(namespace);
        if (!ns) {
            ns = {};
            this.__store.set(namespace, ns);
        }
        if (ns[event] === undefined) {
            ns[event] = [];
        }
        if (!onTop) {
            ns[event].push(data);
        }
        else {
            ns[event].unshift(data);
        }
    };
    EventHandlersStore.prototype.clear = function () {
        this.__store.clear();
    };
    EventHandlersStore.prototype.clearEvents = function (namespace, event) {
        var ns = this.__store.get(namespace);
        if (ns && ns[event]) {
            delete ns[event];
            if (!Object.keys(ns).length) {
                this.__store.delete(namespace);
            }
        }
    };
    EventHandlersStore.prototype.isEmpty = function () {
        return this.__store.size === 0;
    };
    return EventHandlersStore;
}());
exports.EventHandlersStore = EventHandlersStore;


/***/ }),

/***/ 17332:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_382971__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.eventEmitter = exports.getContainer = exports.extendLang = exports.modules = exports.pluginSystem = exports.uniqueUid = exports.instances = void 0;
var plugin_system_1 = __nested_webpack_require_382971__(44540);
var dom_1 = __nested_webpack_require_382971__(64968);
var event_emitter_1 = __nested_webpack_require_382971__(55395);
var is_jodit_object_1 = __nested_webpack_require_382971__(77892);
var is_view_object_1 = __nested_webpack_require_382971__(96574);
var get_class_name_1 = __nested_webpack_require_382971__(87247);
var kebab_case_1 = __nested_webpack_require_382971__(11278);
var constants_1 = __nested_webpack_require_382971__(86893);
exports.instances = {};
var counter = 1;
var uuids = new Set();
function uniqueUid() {
    function gen() {
        counter += 10 * (Math.random() + 1);
        return Math.round(counter).toString(16);
    }
    var uid = gen();
    while (uuids.has(uid)) {
        uid = gen();
    }
    uuids.add(uid);
    return uid;
}
exports.uniqueUid = uniqueUid;
exports.pluginSystem = new plugin_system_1.PluginSystem();
exports.modules = {};
var extendLang = function (langs) {
    Object.keys(langs).forEach(function (key) {
        if (constants_1.lang[key]) {
            Object.assign(constants_1.lang[key], langs[key]);
        }
        else {
            constants_1.lang[key] = langs[key];
        }
    });
};
exports.extendLang = extendLang;
var boxes = new WeakMap();
function getContainer(jodit, classFunc, tag, createInsideEditor) {
    if (tag === void 0) { tag = 'div'; }
    if (createInsideEditor === void 0) { createInsideEditor = false; }
    var name = classFunc ? (0, get_class_name_1.getClassName)(classFunc.prototype) : 'jodit-utils';
    var data = boxes.get(jodit) || {}, key = name + tag;
    var view = (0, is_view_object_1.isViewObject)(jodit) ? jodit : jodit.j;
    if (!data[key]) {
        var c = view.c, body = (0, is_jodit_object_1.isJoditObject)(jodit) && jodit.o.shadowRoot
            ? jodit.o.shadowRoot
            : jodit.od.body;
        if (createInsideEditor &&
            (0, is_jodit_object_1.isJoditObject)(jodit) &&
            jodit.od !== jodit.ed) {
            c = jodit.createInside;
            var place = tag === 'style' ? jodit.ed.head : jodit.ed.body;
            body =
                (0, is_jodit_object_1.isJoditObject)(jodit) && jodit.o.shadowRoot
                    ? jodit.o.shadowRoot
                    : place;
        }
        var box_1 = c.element(tag, {
            className: "jodit jodit-".concat((0, kebab_case_1.kebabCase)(name), "-container jodit-box")
        });
        box_1.classList.add("jodit_theme_".concat(view.o.theme || 'default'));
        body.appendChild(box_1);
        data[key] = box_1;
        jodit.hookStatus('beforeDestruct', function () {
            dom_1.Dom.safeRemove(box_1);
            delete data[key];
            if (Object.keys(data).length) {
                boxes.delete(jodit);
            }
        });
        boxes.set(jodit, data);
    }
    data[key].classList.remove('jodit_theme_default', 'jodit_theme_dark');
    data[key].classList.add("jodit_theme_".concat(view.o.theme || 'default'));
    return data[key];
}
exports.getContainer = getContainer;
exports.eventEmitter = new event_emitter_1.EventEmitter();


/***/ }),

/***/ 34578:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_386539__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.asArray = void 0;
var is_array_1 = __nested_webpack_require_386539__(49781);
var asArray = function (a) { return ((0, is_array_1.isArray)(a) ? a : [a]); };
exports.asArray = asArray;


/***/ }),

/***/ 12557:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_387117__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.toArray = exports.splitArray = exports.asArray = void 0;
var as_array_1 = __nested_webpack_require_387117__(34578);
Object.defineProperty(exports, "asArray", ({ enumerable: true, get: function () { return as_array_1.asArray; } }));
var split_array_1 = __nested_webpack_require_387117__(14556);
Object.defineProperty(exports, "splitArray", ({ enumerable: true, get: function () { return split_array_1.splitArray; } }));
var to_array_1 = __nested_webpack_require_387117__(1853);
Object.defineProperty(exports, "toArray", ({ enumerable: true, get: function () { return to_array_1.toArray; } }));


/***/ }),

/***/ 14556:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.splitArray = void 0;
function splitArray(a) {
    return Array.isArray(a) ? a : a.split(/[,\s]+/);
}
exports.splitArray = splitArray;


/***/ }),

/***/ 1853:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_388598__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.toArray = void 0;
var reset_1 = __nested_webpack_require_388598__(80861);
var is_native_function_1 = __nested_webpack_require_388598__(28069);
exports.toArray = function toArray() {
    var _a;
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    var func = (0, is_native_function_1.isNativeFunction)(Array.from)
        ? Array.from
        : (_a = (0, reset_1.reset)('Array.from')) !== null && _a !== void 0 ? _a : Array.from;
    return func.apply(Array, args);
};


/***/ }),

/***/ 4696:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_389508__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_389508__(20255);
tslib_1.__exportStar(__nested_webpack_require_389508__(27512), exports);


/***/ }),

/***/ 27512:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_390010__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.clearTimeout = exports.setTimeout = void 0;
var tslib_1 = __nested_webpack_require_390010__(20255);
function setTimeout(callback, timeout) {
    var args = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        args[_i - 2] = arguments[_i];
    }
    if (!timeout) {
        callback.call.apply(callback, tslib_1.__spreadArray([null], tslib_1.__read(args), false));
    }
    else {
        return window.setTimeout.apply(window, tslib_1.__spreadArray([callback, timeout], tslib_1.__read(args), false));
    }
    return 0;
}
exports.setTimeout = setTimeout;
function clearTimeout(timer) {
    window.clearTimeout(timer);
}
exports.clearTimeout = clearTimeout;


/***/ }),

/***/ 31553:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasBrowserColorPicker = void 0;
function hasBrowserColorPicker() {
    var supportsColor = true;
    try {
        var a = document.createElement('input');
        a.type = 'color';
        a.value = '!';
        supportsColor = a.type === 'color' && a.value !== '!';
    }
    catch (e) {
        supportsColor = false;
    }
    return supportsColor;
}
exports.hasBrowserColorPicker = hasBrowserColorPicker;


/***/ }),

/***/ 10172:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_391873__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_391873__(20255);
tslib_1.__exportStar(__nested_webpack_require_391873__(31553), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(49781), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(67749), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(32756), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(42096), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(66869), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(72543), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(33156), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(93578), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(77892), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(96574), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(60280), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(28069), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(61817), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(57649), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(79736), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(26335), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(24421), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(64350), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(19179), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(24021), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(85994), exports);
tslib_1.__exportStar(__nested_webpack_require_391873__(37204), exports);


/***/ }),

/***/ 49781:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isArray = void 0;
function isArray(elm) {
    return Array.isArray(elm);
}
exports.isArray = isArray;


/***/ }),

/***/ 67749:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isBoolean = void 0;
function isBoolean(elm) {
    return typeof elm === 'boolean';
}
exports.isBoolean = isBoolean;


/***/ }),

/***/ 32756:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_394667__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isFastEqual = exports.isEqual = void 0;
var stringify_1 = __nested_webpack_require_394667__(42554);
function isEqual(a, b) {
    return a === b || (0, stringify_1.stringify)(a) === (0, stringify_1.stringify)(b);
}
exports.isEqual = isEqual;
function isFastEqual(a, b) {
    return a === b;
}
exports.isFastEqual = isFastEqual;


/***/ }),

/***/ 42096:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isFunction = void 0;
function isFunction(value) {
    return typeof value === 'function';
}
exports.isFunction = isFunction;


/***/ }),

/***/ 72543:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isHtmlFromWord = void 0;
function isHtmlFromWord(data) {
    return (data.search(/<meta.*?Microsoft Excel\s[\d].*?>/) !== -1 ||
        data.search(/<meta.*?Microsoft Word\s[\d].*?>/) !== -1 ||
        (data.search(/style="[^"]*mso-/) !== -1 && data.search(/<font/) !== -1));
}
exports.isHtmlFromWord = isHtmlFromWord;


/***/ }),

/***/ 66869:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_396609__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isHTML = void 0;
var is_string_1 = __nested_webpack_require_396609__(24421);
var isHTML = function (str) {
    return (0, is_string_1.isString)(str) &&
        /<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/m.test(str.replace(/[\r\n]/g, ''));
};
exports.isHTML = isHTML;


/***/ }),

/***/ 33156:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_397272__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasContainer = exports.isDestructable = exports.isInitable = void 0;
var is_function_1 = __nested_webpack_require_397272__(42096);
var dom_1 = __nested_webpack_require_397272__(24263);
var is_void_1 = __nested_webpack_require_397272__(24021);
function isInitable(value) {
    return !(0, is_void_1.isVoid)(value) && (0, is_function_1.isFunction)(value.init);
}
exports.isInitable = isInitable;
function isDestructable(value) {
    return !(0, is_void_1.isVoid)(value) && (0, is_function_1.isFunction)(value.destruct);
}
exports.isDestructable = isDestructable;
function hasContainer(value) {
    return !(0, is_void_1.isVoid)(value) && dom_1.Dom.isElement(value.container);
}
exports.hasContainer = hasContainer;


/***/ }),

/***/ 93578:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_398352__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isInt = void 0;
var is_numeric_1 = __nested_webpack_require_398352__(57649);
var is_string_1 = __nested_webpack_require_398352__(24421);
function isInt(value) {
    if ((0, is_string_1.isString)(value) && (0, is_numeric_1.isNumeric)(value)) {
        value = parseFloat(value);
    }
    return typeof value === 'number' && Number.isFinite(value) && !(value % 1);
}
exports.isInt = isInt;


/***/ }),

/***/ 77892:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_399122__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isJoditObject = void 0;
var is_function_1 = __nested_webpack_require_399122__(42096);
function isJoditObject(jodit) {
    return Boolean(jodit &&
        jodit instanceof Object &&
        (0, is_function_1.isFunction)(jodit.constructor) &&
        ((typeof Jodit !== 'undefined' && jodit instanceof Jodit) ||
            jodit.isJodit));
}
exports.isJoditObject = isJoditObject;


/***/ }),

/***/ 60280:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_399897__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isLicense = void 0;
var is_string_1 = __nested_webpack_require_399897__(24421);
var isLicense = function (license) {
    return (0, is_string_1.isString)(license) &&
        license.length === 23 &&
        /^[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{5}$/i.test(license);
};
exports.isLicense = isLicense;


/***/ }),

/***/ 37204:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_400601__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isMarker = void 0;
var dom_1 = __nested_webpack_require_400601__(24263);
var constants_1 = __nested_webpack_require_400601__(86893);
function isMarker(elm) {
    return (dom_1.Dom.isNode(elm) &&
        dom_1.Dom.isTag(elm, 'span') &&
        elm.hasAttribute('data-' + constants_1.MARKER_CLASS));
}
exports.isMarker = isMarker;


/***/ }),

/***/ 28069:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isNativeFunction = void 0;
function isNativeFunction(f) {
    return (Boolean(f) &&
        (typeof f).toLowerCase() === 'function' &&
        (f === Function.prototype ||
            /^\s*function\s*(\b[a-z$_][a-z0-9$_]*\b)*\s*\((|([a-z$_][a-z0-9$_]*)(\s*,[a-z$_][a-z0-9$_]*)*)\)\s*{\s*\[native code]\s*}\s*$/i.test(String(f))));
}
exports.isNativeFunction = isNativeFunction;


/***/ }),

/***/ 61817:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isNumber = void 0;
function isNumber(value) {
    return typeof value === 'number' && !isNaN(value) && isFinite(value);
}
exports.isNumber = isNumber;


/***/ }),

/***/ 57649:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_402616__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isNumeric = void 0;
var is_string_1 = __nested_webpack_require_402616__(24421);
function isNumeric(value) {
    if ((0, is_string_1.isString)(value)) {
        if (!value.match(/^([+-])?[0-9]+(\.?)([0-9]+)?(e[0-9]+)?$/)) {
            return false;
        }
        value = parseFloat(value);
    }
    return typeof value === 'number' && !isNaN(value) && isFinite(value);
}
exports.isNumeric = isNumeric;


/***/ }),

/***/ 79736:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_403418__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isPlainObject = void 0;
var is_window_1 = __nested_webpack_require_403418__(85994);
function isPlainObject(obj) {
    if (!obj || typeof obj !== 'object' || obj.nodeType || (0, is_window_1.isWindow)(obj)) {
        return false;
    }
    return !(obj.constructor &&
        !{}.hasOwnProperty.call(obj.constructor.prototype, 'isPrototypeOf'));
}
exports.isPlainObject = isPlainObject;


/***/ }),

/***/ 26335:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isPromise = void 0;
function isPromise(val) {
    return val && typeof val.then === 'function';
}
exports.isPromise = isPromise;


/***/ }),

/***/ 24421:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_404716__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isStringArray = exports.isString = void 0;
var is_array_1 = __nested_webpack_require_404716__(49781);
function isString(value) {
    return typeof value === 'string';
}
exports.isString = isString;
function isStringArray(value) {
    return (0, is_array_1.isArray)(value) && isString(value[0]);
}
exports.isStringArray = isStringArray;


/***/ }),

/***/ 64350:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isURL = void 0;
function isURL(str) {
    if (str.includes(' ')) {
        return false;
    }
    if (typeof URL !== 'undefined') {
        try {
            var url = new URL(str);
            return ['https:', 'http:', 'ftp:', 'file:', 'rtmp:'].includes(url.protocol);
        }
        catch (e) {
            return false;
        }
    }
    var a = document.createElement('a');
    a.href = str;
    return Boolean(a.hostname);
}
exports.isURL = isURL;


/***/ }),

/***/ 19179:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isValidName = void 0;
function isValidName(name) {
    if (!name.length) {
        return false;
    }
    return !/[^0-9A-Za-zа-яА-ЯЁё\w\-_.]/.test(name);
}
exports.isValidName = isValidName;


/***/ }),

/***/ 96574:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_406876__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isViewObject = void 0;
var is_function_1 = __nested_webpack_require_406876__(42096);
function isViewObject(jodit) {
    return Boolean(jodit &&
        jodit instanceof Object &&
        (0, is_function_1.isFunction)(jodit.constructor) &&
        jodit.isView);
}
exports.isViewObject = isViewObject;


/***/ }),

/***/ 24021:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isVoid = void 0;
function isVoid(value) {
    return value === undefined || value === null;
}
exports.isVoid = isVoid;


/***/ }),

/***/ 85994:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isWindow = void 0;
function isWindow(obj) {
    return obj != null && obj === obj.window;
}
exports.isWindow = isWindow;


/***/ }),

/***/ 13203:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.colorToHex = void 0;
var colorToHex = function (color) {
    if (color === 'rgba(0, 0, 0, 0)' || color === '') {
        return false;
    }
    if (!color) {
        return '#000000';
    }
    if (color.substr(0, 1) === '#') {
        return color;
    }
    var digits = /([\s\n\t\r]*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color) ||
        /([\s\n\t\r]*?)rgba\((\d+), (\d+), (\d+), ([\d.]+)\)/.exec(color);
    if (!digits) {
        return '#000000';
    }
    var red = parseInt(digits[2], 10), green = parseInt(digits[3], 10), blue = parseInt(digits[4], 10), rgb = blue | (green << 8) | (red << 16);
    var hex = rgb.toString(16).toUpperCase();
    while (hex.length < 6) {
        hex = '0' + hex;
    }
    return digits[1] + '#' + hex;
};
exports.colorToHex = colorToHex;


/***/ }),

/***/ 61354:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_409755__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_409755__(20255);
tslib_1.__exportStar(__nested_webpack_require_409755__(13203), exports);


/***/ }),

/***/ 66546:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_410257__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.applyStyles = void 0;
var dom_1 = __nested_webpack_require_410257__(24263);
var utils_1 = __nested_webpack_require_410257__(76502);
var trim_1 = __nested_webpack_require_410257__(33941);
function normalizeCSS(s) {
    return s
        .replace(/mso-[a-z-]+:[\s]*[^;]+;/gi, '')
        .replace(/mso-[a-z-]+:[\s]*[^";']+$/gi, '')
        .replace(/border[a-z-]*:[\s]*[^;]+;/gi, '')
        .replace(/([0-9.]+)(pt|cm)/gi, function (match, units, metrics) {
        switch (metrics.toLowerCase()) {
            case 'pt':
                return (parseFloat(units) * 1.328).toFixed(0) + 'px';
            case 'cm':
                return (parseFloat(units) * 0.02645833).toFixed(0) + 'px';
        }
        return match;
    });
}
function applyStyles(html) {
    if (html.indexOf('<html ') === -1) {
        return html;
    }
    html = html.substring(html.indexOf('<html '), html.length);
    html = html.substring(0, html.lastIndexOf('</html>') + '</html>'.length);
    var iframe = document.createElement('iframe');
    iframe.style.display = 'none';
    document.body.appendChild(iframe);
    var convertedString = '', collection = [];
    try {
        var iframeDoc = iframe.contentDocument ||
            (iframe.contentWindow ? iframe.contentWindow.document : null);
        if (iframeDoc) {
            iframeDoc.open();
            iframeDoc.write(html);
            iframeDoc.close();
            try {
                var _loop_1 = function (i) {
                    var rules = iframeDoc.styleSheets[i].cssRules;
                    var _loop_2 = function (idx) {
                        if (rules[idx].selectorText === '') {
                            return "continue";
                        }
                        collection = (0, utils_1.$$)(rules[idx].selectorText, iframeDoc.body);
                        collection.forEach(function (elm) {
                            elm.style.cssText = normalizeCSS(rules[idx].style.cssText +
                                ';' +
                                elm.style.cssText);
                        });
                    };
                    for (var idx = 0; idx < rules.length; idx += 1) {
                        _loop_2(idx);
                    }
                };
                for (var i = 0; i < iframeDoc.styleSheets.length; i += 1) {
                    _loop_1(i);
                }
            }
            catch (e) {
                if (false) // removed by dead control flow
{}
            }
            dom_1.Dom.each(iframeDoc.body, function (node) {
                if (dom_1.Dom.isElement(node)) {
                    var elm = node;
                    var css = elm.getAttribute('style');
                    if (css) {
                        elm.style.cssText = normalizeCSS(css);
                    }
                    if (elm.hasAttribute('style') &&
                        !elm.getAttribute('style')) {
                        elm.removeAttribute('style');
                    }
                }
            });
            convertedString = iframeDoc.firstChild
                ? (0, trim_1.trim)(iframeDoc.body.innerHTML)
                : '';
        }
    }
    catch (_a) {
    }
    finally {
        dom_1.Dom.safeRemove(iframe);
    }
    if (convertedString) {
        html = convertedString;
    }
    return (0, trim_1.trim)(html
        .replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '')
        .replace(/<!--[^>]*>/g, ''));
}
exports.applyStyles = applyStyles;


/***/ }),

/***/ 33316:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_414078__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.cleanFromWord = void 0;
var dom_1 = __nested_webpack_require_414078__(24263);
var trim_1 = __nested_webpack_require_414078__(33941);
var to_array_1 = __nested_webpack_require_414078__(1853);
function cleanFromWord(html) {
    if (html.indexOf('<html ') !== -1) {
        html = html.substring(html.indexOf('<html '), html.length);
        html = html.substring(0, html.lastIndexOf('</html>') + '</html>'.length);
    }
    var convertedString = '';
    try {
        var div = document.createElement('div');
        div.innerHTML = html;
        var marks_1 = [];
        if (div.firstChild) {
            dom_1.Dom.each(div, function (node) {
                if (!node) {
                    return;
                }
                switch (node.nodeType) {
                    case Node.ELEMENT_NODE:
                        switch (node.nodeName) {
                            case 'STYLE':
                            case 'LINK':
                            case 'META':
                                marks_1.push(node);
                                break;
                            case 'W:SDT':
                            case 'W:SDTPR':
                            case 'FONT':
                                dom_1.Dom.unwrap(node);
                                break;
                            default:
                                (0, to_array_1.toArray)(node.attributes).forEach(function (attr) {
                                    if ([
                                        'src',
                                        'href',
                                        'rel',
                                        'content'
                                    ].indexOf(attr.name.toLowerCase()) === -1) {
                                        node.removeAttribute(attr.name);
                                    }
                                });
                        }
                        break;
                    case Node.TEXT_NODE:
                        break;
                    default:
                        marks_1.push(node);
                }
            });
        }
        dom_1.Dom.safeRemove.apply(null, marks_1);
        convertedString = div.innerHTML;
    }
    catch (e) { }
    if (convertedString) {
        html = convertedString;
    }
    html = html.split(/(\n)/).filter(trim_1.trim).join('\n');
    return html
        .replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '')
        .replace(/<!--[^>]*>/g, '');
}
exports.cleanFromWord = cleanFromWord;


/***/ }),

/***/ 46639:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.htmlspecialchars = void 0;
function htmlspecialchars(html) {
    var tmp = document.createElement('div');
    tmp.textContent = html;
    return tmp.innerHTML;
}
exports.htmlspecialchars = htmlspecialchars;


/***/ }),

/***/ 13098:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_417572__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_417572__(20255);
tslib_1.__exportStar(__nested_webpack_require_417572__(66546), exports);
tslib_1.__exportStar(__nested_webpack_require_417572__(33316), exports);
tslib_1.__exportStar(__nested_webpack_require_417572__(46639), exports);
tslib_1.__exportStar(__nested_webpack_require_417572__(11336), exports);
tslib_1.__exportStar(__nested_webpack_require_417572__(67128), exports);
tslib_1.__exportStar(__nested_webpack_require_417572__(86645), exports);


/***/ }),

/***/ 86645:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.nl2br = void 0;
function nl2br(html) {
    return html.replace(/\r\n|\r|\n/g, '<br/>');
}
exports.nl2br = nl2br;


/***/ }),

/***/ 67128:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_418870__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.sanitizeHTMLElement = exports.safeHTML = void 0;
var utils_1 = __nested_webpack_require_418870__(76502);
var dom_1 = __nested_webpack_require_418870__(24263);
function safeHTML(box, options) {
    if (!dom_1.Dom.isElement(box) && !dom_1.Dom.isFragment(box)) {
        return;
    }
    if (options.removeOnError) {
        sanitizeHTMLElement(box);
        (0, utils_1.$$)('[onerror]', box).forEach(function (elm) { return sanitizeHTMLElement(elm, options); });
    }
    if (options.safeJavaScriptLink) {
        sanitizeHTMLElement(box);
        (0, utils_1.$$)('a[href^="javascript"]', box).forEach(function (elm) {
            return sanitizeHTMLElement(elm, options);
        });
    }
}
exports.safeHTML = safeHTML;
function sanitizeHTMLElement(elm, _a) {
    var _b = _a === void 0 ? {
        safeJavaScriptLink: true,
        removeOnError: true
    } : _a, safeJavaScriptLink = _b.safeJavaScriptLink, removeOnError = _b.removeOnError;
    if (!dom_1.Dom.isElement(elm)) {
        return false;
    }
    var effected = false;
    if (removeOnError && elm.hasAttribute('onerror')) {
        (0, utils_1.attr)(elm, 'onerror', null);
        effected = true;
    }
    var href = elm.getAttribute('href');
    if (safeJavaScriptLink && href && href.trim().indexOf('javascript') === 0) {
        (0, utils_1.attr)(elm, 'href', location.protocol + '//' + href);
        effected = true;
    }
    return effected;
}
exports.sanitizeHTMLElement = sanitizeHTMLElement;


/***/ }),

/***/ 11336:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_420723__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.stripTags = void 0;
var is_string_1 = __nested_webpack_require_420723__(24421);
var utils_1 = __nested_webpack_require_420723__(76502);
var trim_1 = __nested_webpack_require_420723__(33941);
var dom_1 = __nested_webpack_require_420723__(24263);
var NEW_LINE_TAGS = new Set([
    'div',
    'p',
    'br',
    'h1',
    'h2',
    'h3',
    'h4',
    'h5',
    'h6',
    'hr'
]);
var INVISIBLE_TAGS = new Set(['script', 'style']);
function stripTags(html, doc, exclude) {
    if (doc === void 0) { doc = document; }
    if (exclude === void 0) { exclude = null; }
    var tmp = doc.createElement('div');
    if ((0, is_string_1.isString)(html)) {
        tmp.innerHTML = html;
    }
    else {
        tmp.appendChild(html);
    }
    (0, utils_1.$$)('*', tmp).forEach(function (p) {
        var pr = p.parentNode;
        if (!pr) {
            return;
        }
        if (exclude && dom_1.Dom.isTag(p, exclude)) {
            var tag = p.nodeName.toLowerCase();
            var text = !dom_1.Dom.isTag(p, ['br', 'hr', 'input'])
                ? "%%%jodit-".concat(tag, "%%%").concat(stripTags(p.innerHTML, doc, exclude), "%%%/jodit-").concat(tag, "%%%")
                : "%%%jodit-single-".concat(tag, "%%%");
            dom_1.Dom.before(p, doc.createTextNode(text));
            dom_1.Dom.safeRemove(p);
            return;
        }
        if (dom_1.Dom.isTag(p, INVISIBLE_TAGS)) {
            dom_1.Dom.safeRemove(p);
            return;
        }
        if (!dom_1.Dom.isTag(p, NEW_LINE_TAGS)) {
            return;
        }
        var nx = p.nextSibling;
        if (dom_1.Dom.isText(nx) && /^\s/.test(nx.nodeValue || '')) {
            return;
        }
        if (nx) {
            pr.insertBefore(doc.createTextNode(' '), nx);
        }
    });
    return restoreTags((0, trim_1.trim)(tmp.innerText));
}
exports.stripTags = stripTags;
function restoreTags(content) {
    return content.replace(/%%%(\/)?jodit(-single)?-([\w\n]+)%%%/g, function (_, isClosed, isSingle, tag) { return "<".concat(isClosed ? '/' : '').concat(tag, ">"); });
}


/***/ }),

/***/ 40332:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_423132__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_423132__(20255);
tslib_1.__exportStar(__nested_webpack_require_423132__(76502), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(12557), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(4696), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(10172), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(61354), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(13098), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(89693), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(90954), exports);
tslib_1.__exportStar(__nested_webpack_require_423132__(19035), exports);


/***/ }),

/***/ 89693:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_424105__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_424105__(20255);
tslib_1.__exportStar(__nested_webpack_require_424105__(48926), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(78648), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(74504), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(50870), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(76787), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(93251), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(91518), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(49353), exports);
tslib_1.__exportStar(__nested_webpack_require_424105__(64274), exports);


/***/ }),

/***/ 64274:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_425079__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeColor = void 0;
var color_1 = __nested_webpack_require_425079__(61354);
var string_1 = __nested_webpack_require_425079__(19035);
var normalizeColor = function (colorInput) {
    var newcolor = ['#'];
    var color = (0, color_1.colorToHex)(colorInput);
    if (!color) {
        return false;
    }
    color = (0, string_1.trim)(color.toUpperCase());
    color = color.substr(1);
    if (color.length === 3) {
        for (var i = 0; i < 3; i += 1) {
            newcolor.push(color[i]);
            newcolor.push(color[i]);
        }
        return newcolor.join('');
    }
    if (color.length > 6) {
        color = color.substr(0, 6);
    }
    return '#' + color;
};
exports.normalizeColor = normalizeColor;


/***/ }),

/***/ 49353:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_426183__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeCssValue = exports.normalizeCssNumericValue = exports.NUMBER_FIELDS_REG = void 0;
var is_numeric_1 = __nested_webpack_require_426183__(57649);
var kebab_case_1 = __nested_webpack_require_426183__(11278);
var color_to_hex_1 = __nested_webpack_require_426183__(13203);
var is_void_1 = __nested_webpack_require_426183__(24021);
exports.NUMBER_FIELDS_REG = /^(left|top|bottom|right|width|min|max|height|margin|padding|fontsize|font-size)/i;
function normalizeCssNumericValue(key, value) {
    if (!(0, is_void_1.isVoid)(value) &&
        exports.NUMBER_FIELDS_REG.test(key) &&
        (0, is_numeric_1.isNumeric)(value.toString())) {
        return parseInt(value.toString(), 10) + 'px';
    }
    return value;
}
exports.normalizeCssNumericValue = normalizeCssNumericValue;
function normalizeCssValue(key, value) {
    switch ((0, kebab_case_1.kebabCase)(key)) {
        case 'font-weight':
            switch (value.toString().toLowerCase()) {
                case '700':
                case 'bold':
                    return 700;
                case '400':
                case 'normal':
                    return 400;
                case '900':
                case 'heavy':
                    return 900;
            }
            return (0, is_numeric_1.isNumeric)(value) ? Number(value) : value;
    }
    if (/color/i.test(key) && /^rgb/i.test(value.toString())) {
        return (0, color_to_hex_1.colorToHex)(value.toString()) || value;
    }
    return value;
}
exports.normalizeCssValue = normalizeCssValue;


/***/ }),

/***/ 48926:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_428067__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeKeyAliases = void 0;
var trim_1 = __nested_webpack_require_428067__(33941);
var constants_1 = __nested_webpack_require_428067__(86893);
function normalizeKeyAliases(keys) {
    var memory = {};
    var order = {
        meta: 1,
        ctrl: 2,
        control: 2,
        alt: 3,
        shift: 4
    };
    return keys
        .replace(/\+\+/g, '+add')
        .split(/[\s]*\+[\s]*/)
        .map(function (key) { return (0, trim_1.trim)(key.toLowerCase()); })
        .map(function (key) { return constants_1.KEY_ALIASES[key] || key; })
        .sort(function (a, b) {
        if (order[a] && !order[b]) {
            return -1;
        }
        if (!order[a] && order[b]) {
            return 1;
        }
        if (order[a] && order[b]) {
            return order[a] - order[b];
        }
        return a > b ? 1 : -1;
    })
        .filter(function (key) { return !memory[key] && key !== '' && (memory[key] = true); })
        .join('+');
}
exports.normalizeKeyAliases = normalizeKeyAliases;


/***/ }),

/***/ 78648:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeLicense = void 0;
var normalizeLicense = function (license, count) {
    if (count === void 0) { count = 8; }
    var parts = [];
    while (license.length) {
        parts.push(license.substr(0, count));
        license = license.substr(count);
    }
    parts[1] = parts[1].replace(/./g, '*');
    parts[2] = parts[2].replace(/./g, '*');
    return parts.join('-');
};
exports.normalizeLicense = normalizeLicense;


/***/ }),

/***/ 74504:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_430274__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeNode = void 0;
var constants_1 = __nested_webpack_require_430274__(86893);
var dom_1 = __nested_webpack_require_430274__(24263);
function normalizeNode(node) {
    if (!node) {
        return;
    }
    if (dom_1.Dom.isText(node) && node.nodeValue != null && node.parentNode) {
        while (dom_1.Dom.isText(node.nextSibling)) {
            if (node.nextSibling.nodeValue != null) {
                node.nodeValue += node.nextSibling.nodeValue;
            }
            node.nodeValue = node.nodeValue.replace((0, constants_1.INVISIBLE_SPACE_REG_EXP)(), '');
            dom_1.Dom.safeRemove(node.nextSibling);
        }
    }
    else {
        normalizeNode(node.firstChild);
    }
    normalizeNode(node.nextSibling);
}
exports.normalizeNode = normalizeNode;


/***/ }),

/***/ 50870:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_431429__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizePath = void 0;
var string_1 = __nested_webpack_require_431429__(19035);
var normalizePath = function () {
    var path = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        path[_i] = arguments[_i];
    }
    return path
        .filter(function (part) { return (0, string_1.trim)(part).length; })
        .map(function (part, index) {
        part = part.replace(/([^:])[\\/]+/g, '$1/');
        if (index) {
            part = part.replace(/^\//, '');
        }
        if (index !== path.length - 1) {
            part = part.replace(/\/$/, '');
        }
        return part;
    })
        .join('/');
};
exports.normalizePath = normalizePath;


/***/ }),

/***/ 76787:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeRelativePath = void 0;
var normalizeRelativePath = function (path) {
    var sections = path.split('/'), builder = sections.reduce(function (builder, section) {
        switch (section) {
            case '': {
                break;
            }
            case '.': {
                break;
            }
            case '..': {
                builder.pop();
                break;
            }
            default: {
                builder.push(section);
                break;
            }
        }
        return builder;
    }, []);
    return builder.join('/') + (path.endsWith('/') ? '/' : '');
};
exports.normalizeRelativePath = normalizeRelativePath;


/***/ }),

/***/ 93251:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeSize = void 0;
var normalizeSize = function (value) {
    if (/^[0-9]+$/.test(value.toString())) {
        return value + 'px';
    }
    return value.toString();
};
exports.normalizeSize = normalizeSize;


/***/ }),

/***/ 91518:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeUrl = void 0;
var normalizeUrl = function () {
    var urls = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        urls[_i] = arguments[_i];
    }
    return urls
        .filter(function (url) { return url.length; })
        .map(function (url) { return url.replace(/\/$/, ''); })
        .join('/')
        .replace(/([^:])[\\/]+/g, '$1/');
};
exports.normalizeUrl = normalizeUrl;


/***/ }),

/***/ 1684:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getContentWidth = void 0;
var getContentWidth = function (element, win) {
    var pi = function (value) { return parseInt(value, 10); }, style = win.getComputedStyle(element), width = element.offsetWidth, paddingLeft = pi(style.getPropertyValue('padding-left') || '0'), paddingRight = pi(style.getPropertyValue('padding-right') || '0');
    return width - paddingLeft - paddingRight;
};
exports.getContentWidth = getContentWidth;


/***/ }),

/***/ 73874:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_435770__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getScrollParent = void 0;
var utils_1 = __nested_webpack_require_435770__(76502);
var dom_1 = __nested_webpack_require_435770__(24263);
function getScrollParent(node) {
    if (!node) {
        return null;
    }
    var isElement = dom_1.Dom.isHTMLElement(node);
    var overflowY = isElement && (0, utils_1.css)(node, 'overflowY');
    var isScrollable = isElement && overflowY !== 'visible' && overflowY !== 'hidden';
    if (isScrollable && node.scrollHeight >= node.clientHeight) {
        return node;
    }
    return (getScrollParent(node.parentNode) ||
        document.scrollingElement ||
        document.body);
}
exports.getScrollParent = getScrollParent;


/***/ }),

/***/ 90954:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_436819__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_436819__(20255);
tslib_1.__exportStar(__nested_webpack_require_436819__(1684), exports);
tslib_1.__exportStar(__nested_webpack_require_436819__(73874), exports);
tslib_1.__exportStar(__nested_webpack_require_436819__(83810), exports);
tslib_1.__exportStar(__nested_webpack_require_436819__(98701), exports);
tslib_1.__exportStar(__nested_webpack_require_436819__(81710), exports);
tslib_1.__exportStar(__nested_webpack_require_436819__(16492), exports);


/***/ }),

/***/ 83810:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.innerWidth = void 0;
var innerWidth = function (element, win) {
    var computedStyle = win.getComputedStyle(element);
    var elementWidth = element.clientWidth;
    elementWidth -=
        parseFloat(computedStyle.paddingLeft || '0') +
            parseFloat(computedStyle.paddingRight || '0');
    return elementWidth;
};
exports.innerWidth = innerWidth;


/***/ }),

/***/ 16492:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_438361__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.size = void 0;
var checker_1 = __nested_webpack_require_438361__(10172);
function size(subject) {
    if ((0, checker_1.isString)(subject) || (0, checker_1.isArray)(subject)) {
        return subject.length;
    }
    if ((0, checker_1.isPlainObject)(subject)) {
        return Object.keys(subject).length;
    }
    return 0;
}
exports.size = size;


/***/ }),

/***/ 98701:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.offset = void 0;
var offset = function (elm, jodit, doc, recurse) {
    if (recurse === void 0) { recurse = false; }
    var rect;
    try {
        rect = elm.getBoundingClientRect();
    }
    catch (e) {
        rect = {
            top: 0,
            bottom: 0,
            left: 0,
            right: 0,
            width: 0,
            height: 0
        };
    }
    var body = doc.body, docElem = doc.documentElement || {
        clientTop: 0,
        clientLeft: 0,
        scrollTop: 0,
        scrollLeft: 0
    }, win = doc.defaultView || doc.parentWindow, scrollTop = win.pageYOffset || docElem.scrollTop || body.scrollTop, scrollLeft = win.pageXOffset || docElem.scrollLeft || body.scrollLeft, clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0;
    var topValue, leftValue;
    var iframe = jodit.iframe;
    if (!recurse && jodit && jodit.options && jodit.o.iframe && iframe) {
        var _a = (0, exports.offset)(iframe, jodit, jodit.od, true), top = _a.top, left = _a.left;
        topValue = rect.top + top;
        leftValue = rect.left + left;
    }
    else {
        topValue = rect.top + scrollTop - clientTop;
        leftValue = rect.left + scrollLeft - clientLeft;
    }
    return {
        top: Math.round(topValue),
        left: Math.round(leftValue),
        width: rect.width,
        height: rect.height
    };
};
exports.offset = offset;


/***/ }),

/***/ 81710:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_440928__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.position = void 0;
var is_jodit_object_1 = __nested_webpack_require_440928__(77892);
function position(elm, jodit, recurse) {
    if (recurse === void 0) { recurse = false; }
    var rect = elm.getBoundingClientRect();
    var xPos = rect.left, yPos = rect.top;
    if ((0, is_jodit_object_1.isJoditObject)(jodit) &&
        jodit.iframe &&
        jodit.ed.body.contains(elm) &&
        !recurse) {
        var _a = position(jodit.iframe, jodit, true), left = _a.left, top = _a.top;
        xPos += left;
        yPos += top;
    }
    return {
        left: Math.round(xPos),
        top: Math.round(yPos),
        width: Math.round(elm.offsetWidth),
        height: Math.round(elm.offsetHeight)
    };
}
exports.position = position;


/***/ }),

/***/ 26596:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.camelCase = void 0;
var camelCase = function (key) {
    return key.replace(/([-_])(.)/g, function (m, code, letter) {
        return letter.toUpperCase();
    });
};
exports.camelCase = camelCase;


/***/ }),

/***/ 93163:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_442645__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.fuzzySearchIndex = void 0;
var constants_1 = __nested_webpack_require_442645__(86893);
function fuzzySearchIndex(needle, haystack, offset, maxDistance) {
    if (offset === void 0) { offset = 0; }
    if (maxDistance === void 0) { maxDistance = 1; }
    var i = 0, j = 0, startIndex = -1, len = 0, errorDistance = 0;
    for (j = offset; i < needle.length && j < haystack.length;) {
        if (needle[i].toLowerCase() === haystack[j].toLowerCase()) {
            i++;
            len++;
            errorDistance = 0;
            if (startIndex === -1) {
                startIndex = j;
            }
        }
        else if (i > 0) {
            if (errorDistance >= maxDistance &&
                haystack[j] !== constants_1.INVISIBLE_SPACE) {
                i = 0;
                startIndex = -1;
                len = 0;
                errorDistance = 0;
                j--;
            }
            else {
                errorDistance++;
                len++;
            }
        }
        j++;
    }
    return i === needle.length ? [startIndex, len] : [-1, 0];
}
exports.fuzzySearchIndex = fuzzySearchIndex;


/***/ }),

/***/ 11625:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_444167__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.i18n = exports.sprintf = void 0;
var config_1 = __nested_webpack_require_444167__(93166);
var utils_1 = __nested_webpack_require_444167__(76502);
var is_string_1 = __nested_webpack_require_444167__(24421);
var ucfirst_1 = __nested_webpack_require_444167__(13449);
var constants_1 = __nested_webpack_require_444167__(86893);
var sprintf = function (str, args) {
    if (!args || !args.length) {
        return str;
    }
    var reg = /%([sd])/g;
    var fnd = reg.exec(str);
    var res = str, i = 0;
    while (fnd && args[i] !== undefined) {
        res = res.replace(fnd[0], args[i].toString());
        i += 1;
        fnd = reg.exec(str);
    }
    return res;
};
exports.sprintf = sprintf;
function i18n(key, params, options) {
    if (!(0, is_string_1.isString)(key)) {
        throw (0, utils_1.error)('i18n: Need string in first argument');
    }
    if (!key.length) {
        return key;
    }
    var debug = Boolean(options === null || options === void 0 ? void 0 : options.debugLanguage);
    var store = {};
    var parse = function (value) {
        return params && params.length ? (0, exports.sprintf)(value, params) : value;
    }, defaultLanguage = (0, utils_1.defaultLanguage)(config_1.Config.defaultOptions.language, config_1.Config.defaultOptions.language), language = (0, utils_1.defaultLanguage)(options === null || options === void 0 ? void 0 : options.language, defaultLanguage), tryGet = function (store) {
        if (!store) {
            return;
        }
        if ((0, is_string_1.isString)(store[key])) {
            return parse(store[key]);
        }
        var lcKey = key.toLowerCase();
        if ((0, is_string_1.isString)(store[lcKey])) {
            return parse(store[lcKey]);
        }
        var ucfKey = (0, ucfirst_1.ucfirst)(key);
        if ((0, is_string_1.isString)(store[ucfKey])) {
            return parse(store[ucfKey]);
        }
        return;
    };
    if (constants_1.lang[language] !== undefined) {
        store = constants_1.lang[language];
    }
    else if (!debug) {
        if (constants_1.lang[defaultLanguage] !== undefined) {
            store = constants_1.lang[defaultLanguage];
        }
        else {
            store = constants_1.lang.en;
        }
    }
    var i18nOvr = options === null || options === void 0 ? void 0 : options.i18n;
    if (i18nOvr && i18nOvr[language]) {
        var result_1 = tryGet(i18nOvr[language]);
        if (result_1) {
            return result_1;
        }
    }
    var result = tryGet(store);
    if (result) {
        return result;
    }
    if (!debug && constants_1.lang.en && (0, is_string_1.isString)(constants_1.lang.en[key]) && constants_1.lang.en[key]) {
        return parse(constants_1.lang.en[key]);
    }
    if (debug) {
        return '{' + key + '}';
    }
    if (false) // removed by dead control flow
{}
    return parse(key);
}
exports.i18n = i18n;


/***/ }),

/***/ 19035:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_447360__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_447360__(20255);
tslib_1.__exportStar(__nested_webpack_require_447360__(26596), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(93163), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(11625), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(11278), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(42554), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(33941), exports);
tslib_1.__exportStar(__nested_webpack_require_447360__(13449), exports);


/***/ }),

/***/ 11278:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CamelCaseToKebabCase = exports.kebabCase = void 0;
var kebabCase = function (key) {
    return key
        .replace(/([A-Z])([A-Z])([a-z])/g, '$1-$2$3')
        .replace(/([a-z])([A-Z])/g, '$1-$2')
        .replace(/[\s_]+/g, '-')
        .toLowerCase();
};
exports.kebabCase = kebabCase;
var CamelCaseToKebabCase = function (key) {
    return key
        .replace(/([A-Z])([A-Z])([a-z])/g, '$1-$2$3')
        .replace(/([a-z])([A-Z])/g, '$1-$2')
        .toLowerCase();
};
exports.CamelCaseToKebabCase = CamelCaseToKebabCase;


/***/ }),

/***/ 42554:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.stringify = void 0;
function stringify(value, options) {
    if (options === void 0) { options = {}; }
    if (typeof value !== 'object') {
        return String(value);
    }
    var excludeKeys = new Set(options.excludeKeys);
    var map = new WeakMap();
    var r = function (k, v) {
        if (excludeKeys.has(k)) {
            return;
        }
        if (typeof v === 'object' && v != null) {
            if (map.get(v)) {
                return '[refObject]';
            }
            map.set(v, true);
        }
        return v;
    };
    return JSON.stringify(value, r, options.prettify);
}
exports.stringify = stringify;


/***/ }),

/***/ 33941:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_450155__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.trimInv = exports.trim = void 0;
var constants_1 = __nested_webpack_require_450155__(86893);
function trim(value) {
    return value
        .replace((0, constants_1.SPACE_REG_EXP_END)(), '')
        .replace((0, constants_1.SPACE_REG_EXP_START)(), '');
}
exports.trim = trim;
function trimInv(value) {
    return value
        .replace((0, constants_1.INVISIBLE_SPACE_REG_EXP_END)(), '')
        .replace((0, constants_1.INVISIBLE_SPACE_REG_EXP_START)(), '');
}
exports.trimInv = trimInv;


/***/ }),

/***/ 13449:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ucfirst = void 0;
function ucfirst(value) {
    if (!value.length) {
        return '';
    }
    return value[0].toUpperCase() + value.substr(1);
}
exports.ucfirst = ucfirst;


/***/ }),

/***/ 60303:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_451604__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.alignElement = exports.clearAlign = exports.hAlignElement = void 0;
var dom_1 = __nested_webpack_require_451604__(64968);
var css_1 = __nested_webpack_require_451604__(26911);
function hAlignElement(image, align) {
    if (align && align !== 'normal') {
        if (align !== 'center') {
            (0, css_1.css)(image, 'float', align);
            (0, css_1.clearCenterAlign)(image);
        }
        else {
            (0, css_1.css)(image, {
                float: '',
                display: 'block',
                marginLeft: 'auto',
                marginRight: 'auto'
            });
        }
    }
    else {
        if ((0, css_1.css)(image, 'float') &&
            ['right', 'left'].indexOf((0, css_1.css)(image, 'float').toString().toLowerCase()) !== -1) {
            (0, css_1.css)(image, 'float', '');
        }
        (0, css_1.clearCenterAlign)(image);
    }
}
exports.hAlignElement = hAlignElement;
function clearAlign(node) {
    dom_1.Dom.each(node, function (elm) {
        if (dom_1.Dom.isHTMLElement(elm)) {
            if (elm.style.textAlign) {
                elm.style.textAlign = '';
                if (!elm.style.cssText.trim().length) {
                    elm.removeAttribute('style');
                }
            }
        }
    });
}
exports.clearAlign = clearAlign;
function alignElement(command, box) {
    if (dom_1.Dom.isNode(box) && dom_1.Dom.isElement(box)) {
        clearAlign(box);
        switch (command.toLowerCase()) {
            case 'justifyfull':
                box.style.textAlign = 'justify';
                break;
            case 'justifyright':
                box.style.textAlign = 'right';
                break;
            case 'justifyleft':
                box.style.textAlign = 'left';
                break;
            case 'justifycenter':
                box.style.textAlign = 'center';
                break;
        }
    }
}
exports.alignElement = alignElement;


/***/ }),

/***/ 62462:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_453928__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.loadNextStyle = exports.loadNext = exports.appendStyleAsync = exports.appendScriptAsync = exports.appendScript = void 0;
var tslib_1 = __nested_webpack_require_453928__(20255);
var complete_url_1 = __nested_webpack_require_453928__(48240);
var is_function_1 = __nested_webpack_require_453928__(42096);
var is_string_1 = __nested_webpack_require_453928__(24421);
var alreadyLoadedList = new Map();
var cacheLoaders = function (loader) {
    return function (jodit, url) { return tslib_1.__awaiter(void 0, void 0, Promise, function () {
        var promise;
        return tslib_1.__generator(this, function (_a) {
            if (alreadyLoadedList.has(url)) {
                return [2, alreadyLoadedList.get(url)];
            }
            promise = loader(jodit, url);
            alreadyLoadedList.set(url, promise);
            return [2, promise];
        });
    }); };
};
var appendScript = function (jodit, url, callback) {
    var script = jodit.c.element('script');
    script.type = 'text/javascript';
    script.async = true;
    if ((0, is_function_1.isFunction)(callback) && !jodit.isInDestruct) {
        jodit.e.on(script, 'load', callback);
    }
    if (!script.src) {
        script.src = (0, complete_url_1.completeUrl)(url);
    }
    jodit.od.body.appendChild(script);
    return {
        callback: callback,
        element: script
    };
};
exports.appendScript = appendScript;
exports.appendScriptAsync = cacheLoaders(function (jodit, url) {
    return new Promise(function (resolve, reject) {
        var element = (0, exports.appendScript)(jodit, url, resolve).element;
        !jodit.isInDestruct && jodit.e.on(element, 'error', reject);
    });
});
exports.appendStyleAsync = cacheLoaders(function (jodit, url) {
    return new Promise(function (resolve, reject) {
        var link = jodit.c.element('link');
        link.rel = 'stylesheet';
        link.media = 'all';
        link.crossOrigin = 'anonymous';
        var callback = function () { return resolve(link); };
        !jodit.isInDestruct &&
            jodit.e.on(link, 'load', callback).on(link, 'error', reject);
        link.href = (0, complete_url_1.completeUrl)(url);
        if (jodit.o.shadowRoot) {
            jodit.o.shadowRoot.appendChild(link);
        }
        else {
            jodit.od.body.appendChild(link);
        }
    });
});
var loadNext = function (jodit, urls, i) {
    if (i === void 0) { i = 0; }
    if (!(0, is_string_1.isString)(urls[i])) {
        return Promise.resolve();
    }
    return (0, exports.appendScriptAsync)(jodit, urls[i]).then(function () {
        return (0, exports.loadNext)(jodit, urls, i + 1);
    });
};
exports.loadNext = loadNext;
var loadNextStyle = function (jodit, urls, i) {
    if (i === void 0) { i = 0; }
    if (!(0, is_string_1.isString)(urls[i])) {
        return Promise.resolve();
    }
    return (0, exports.appendStyleAsync)(jodit, urls[i]).then(function () {
        return (0, exports.loadNextStyle)(jodit, urls, i + 1);
    });
};
exports.loadNextStyle = loadNextStyle;


/***/ }),

/***/ 603:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_457315__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.assert = void 0;
var tslib_1 = __nested_webpack_require_457315__(20255);
var AssertionError = (function (_super) {
    tslib_1.__extends(AssertionError, _super);
    function AssertionError(message) {
        var _this = _super.call(this, message) || this;
        _this.name = 'AssertionError';
        return _this;
    }
    return AssertionError;
}(Error));
function assert(condition, message) {
    if (!condition) {
        throw new AssertionError("Assertion failed: ".concat(message));
    }
}
exports.assert = assert;


/***/ }),

/***/ 37682:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.browser = void 0;
var browser = function (browser) {
    var ua = navigator.userAgent.toLowerCase(), match = /(firefox)[\s/]([\w.]+)/.exec(ua) ||
        /(chrome)[\s/]([\w.]+)/.exec(ua) ||
        /(webkit)[\s/]([\w.]+)/.exec(ua) ||
        /(opera)(?:.*version)[\s/]([\w.]+)/.exec(ua) ||
        /(msie)[\s]([\w.]+)/.exec(ua) ||
        /(trident)\/([\w.]+)/.exec(ua) ||
        ua.indexOf('compatible') < 0 ||
        [];
    if (browser === 'version') {
        return match[2];
    }
    if (browser === 'webkit') {
        return match[1] === 'chrome' || match[1] === 'webkit';
    }
    if (browser === 'ff') {
        return match[1] === 'firefox';
    }
    if (browser === 'msie') {
        return match[1] === 'trident' || match[1] === 'msie';
    }
    return match[1] === browser;
};
exports.browser = browser;


/***/ }),

/***/ 71567:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_459449__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.buildQuery = void 0;
var is_plain_object_1 = __nested_webpack_require_459449__(79736);
var buildQuery = function (data, prefix) {
    var str = [];
    var enc = encodeURIComponent;
    for (var dataKey in data) {
        if (Object.prototype.hasOwnProperty.call(data, dataKey)) {
            var k = prefix ? prefix + '[' + dataKey + ']' : dataKey;
            var v = data[dataKey];
            str.push((0, is_plain_object_1.isPlainObject)(v) ? (0, exports.buildQuery)(v, k) : enc(k) + '=' + enc(v));
        }
    }
    return str.join('&');
};
exports.buildQuery = buildQuery;


/***/ }),

/***/ 48240:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.completeUrl = void 0;
var completeUrl = function (url) {
    if (window.location.protocol === 'file:' && /^\/\//.test(url)) {
        url = 'https:' + url;
    }
    return url;
};
exports.completeUrl = completeUrl;


/***/ }),

/***/ 64981:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_461030__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ConfigFlatten = exports.ConfigProto = void 0;
var tslib_1 = __nested_webpack_require_461030__(20255);
var extend_1 = __nested_webpack_require_461030__(7935);
var is_array_1 = __nested_webpack_require_461030__(49781);
var is_plain_object_1 = __nested_webpack_require_461030__(79736);
var is_string_1 = __nested_webpack_require_461030__(24421);
var is_void_1 = __nested_webpack_require_461030__(24021);
var config_1 = __nested_webpack_require_461030__(93166);
var utils_1 = __nested_webpack_require_461030__(67309);
function ConfigProto(options, proto, deep) {
    if (deep === void 0) { deep = 0; }
    if (Object.getPrototypeOf(options) !== Object.prototype) {
        return options;
    }
    var def = config_1.Config.defaultOptions;
    if ((0, is_string_1.isString)(options.preset)) {
        if (def.presets[options.preset] !== undefined) {
            var preset_1 = def.presets[options.preset];
            Object.keys(preset_1).forEach(function (subKey) {
                if ((0, is_void_1.isVoid)(options[subKey])) {
                    options[subKey] = preset_1[subKey];
                }
            });
        }
        delete options.preset;
    }
    var newOpt = {};
    Object.keys(options).forEach(function (key) {
        var opt = options[key], protoKey = proto ? proto[key] : null;
        if ((0, is_plain_object_1.isPlainObject)(opt) && (0, is_plain_object_1.isPlainObject)(protoKey) && !(0, extend_1.isAtom)(opt)) {
            newOpt[key] = ConfigProto(opt, protoKey, deep + 1);
            return;
        }
        if (deep !== 0 && (0, is_array_1.isArray)(opt) && !(0, extend_1.isAtom)(opt) && (0, is_array_1.isArray)(protoKey)) {
            newOpt[key] = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(opt), false), tslib_1.__read(protoKey.slice(opt.length)), false);
            return;
        }
        newOpt[key] = opt;
    });
    Object.setPrototypeOf(newOpt, proto);
    return newOpt;
}
exports.ConfigProto = ConfigProto;
function ConfigFlatten(obj) {
    return (0, utils_1.keys)(obj, false).reduce(function (app, key) {
        app[key] = obj[key];
        return app;
    }, {});
}
exports.ConfigFlatten = ConfigFlatten;


/***/ }),

/***/ 42051:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_463508__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.convertMediaUrlToVideoEmbed = void 0;
var is_url_1 = __nested_webpack_require_463508__(64350);
var parse_query_1 = __nested_webpack_require_463508__(67285);
var convertMediaUrlToVideoEmbed = function (url, width, height) {
    if (width === void 0) { width = 400; }
    if (height === void 0) { height = 345; }
    if (!(0, is_url_1.isURL)(url)) {
        return url;
    }
    var parser = document.createElement('a'), pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
    parser.href = url;
    if (!width) {
        width = 400;
    }
    if (!height) {
        height = 345;
    }
    var protocol = parser.protocol || '';
    switch (parser.hostname) {
        case 'www.vimeo.com':
        case 'vimeo.com':
            return pattern1.test(url)
                ? url.replace(pattern1, '<iframe width="' +
                    width +
                    '" height="' +
                    height +
                    '" src="' +
                    protocol +
                    '//player.vimeo.com/video/$1" frameborder="0" allowfullscreen></iframe>')
                : url;
        case 'youtube.com':
        case 'www.youtube.com':
        case 'youtu.be':
        case 'www.youtu.be': {
            var query = parser.search
                ? (0, parse_query_1.parseQuery)(parser.search)
                : { v: parser.pathname.substr(1) };
            return query.v
                ? '<iframe width="' +
                    width +
                    '" height="' +
                    height +
                    '" src="' +
                    protocol +
                    '//www.youtube.com/embed/' +
                    query.v +
                    '" frameborder="0" allowfullscreen></iframe>'
                : url;
        }
    }
    return url;
};
exports.convertMediaUrlToVideoEmbed = convertMediaUrlToVideoEmbed;


/***/ }),

/***/ 26911:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_465746__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.clearCenterAlign = exports.css = void 0;
var is_plain_object_1 = __nested_webpack_require_465746__(79736);
var is_boolean_1 = __nested_webpack_require_465746__(67749);
var normalize_css_value_1 = __nested_webpack_require_465746__(49353);
var camel_case_1 = __nested_webpack_require_465746__(26596);
var kebab_case_1 = __nested_webpack_require_465746__(11278);
function css(element, key, value, onlyStyleMode) {
    if (onlyStyleMode === void 0) { onlyStyleMode = false; }
    if ((0, is_boolean_1.isBoolean)(value)) {
        onlyStyleMode = value;
        value = undefined;
    }
    if ((0, is_plain_object_1.isPlainObject)(key) || value !== undefined) {
        var setValue = function (elm, _key, _value) {
            _value = (0, normalize_css_value_1.normalizeCssNumericValue)(_key, _value);
            if (_value !== undefined &&
                (_value == null ||
                    css(elm, _key, true) !== (0, normalize_css_value_1.normalizeCssValue)(_key, _value))) {
                elm.style[_key] = _value;
            }
        };
        if ((0, is_plain_object_1.isPlainObject)(key)) {
            var keys = Object.keys(key);
            for (var j = 0; j < keys.length; j += 1) {
                setValue(element, (0, camel_case_1.camelCase)(keys[j]), key[keys[j]]);
            }
        }
        else {
            setValue(element, (0, camel_case_1.camelCase)(key), value);
        }
        return '';
    }
    var key2 = (0, kebab_case_1.kebabCase)(key), doc = element.ownerDocument || document, win = doc ? doc.defaultView || doc.parentWindow : false;
    var currentValue = element.style[key];
    var result = '';
    if (currentValue !== undefined && currentValue !== '') {
        result = currentValue;
    }
    else if (win && !onlyStyleMode) {
        result = win.getComputedStyle(element).getPropertyValue(key2);
    }
    if (normalize_css_value_1.NUMBER_FIELDS_REG.test(key) &&
        /^[-+]?[0-9.]+px$/.test(result.toString())) {
        result = parseInt(result.toString(), 10);
    }
    return (0, normalize_css_value_1.normalizeCssValue)(key, result);
}
exports.css = css;
var clearCenterAlign = function (image) {
    if (css(image, 'display') === 'block') {
        css(image, 'display', '');
    }
    var style = image.style;
    if (style.marginLeft === 'auto' && style.marginRight === 'auto') {
        style.marginLeft = '';
        style.marginRight = '';
    }
};
exports.clearCenterAlign = clearCenterAlign;


/***/ }),

/***/ 2522:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ctrlKey = void 0;
var ctrlKey = function (e) {
    if (typeof navigator !== 'undefined' &&
        navigator.userAgent.indexOf('Mac OS X') !== -1) {
        if (e.metaKey && !e.altKey) {
            return true;
        }
    }
    else if (e.ctrlKey && !e.altKey) {
        return true;
    }
    return false;
};
exports.ctrlKey = ctrlKey;


/***/ }),

/***/ 63122:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_469281__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.dataBind = void 0;
var is_view_object_1 = __nested_webpack_require_469281__(96574);
var store = new WeakMap();
var dataBind = function (elm, key, value) {
    var itemStore = store.get(elm);
    if (!itemStore) {
        itemStore = {};
        store.set(elm, itemStore);
        var e = null;
        if ((0, is_view_object_1.isViewObject)(elm.j)) {
            e = elm.j.e;
        }
        if ((0, is_view_object_1.isViewObject)(elm)) {
            e = elm.e;
        }
        e &&
            e.on('beforeDestruct', function () {
                store.delete(elm);
            });
    }
    if (value === undefined) {
        return itemStore[key];
    }
    itemStore[key] = value;
    return value;
};
exports.dataBind = dataBind;


/***/ }),

/***/ 93351:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_470415__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.defaultLanguage = void 0;
var is_string_1 = __nested_webpack_require_470415__(24421);
var defaultLanguage = function (language, defaultLanguage) {
    if (defaultLanguage === void 0) { defaultLanguage = 'en'; }
    if (language !== 'auto' && (0, is_string_1.isString)(language)) {
        return language;
    }
    if (document.documentElement && document.documentElement.lang) {
        return document.documentElement.lang;
    }
    if (navigator.language) {
        return navigator.language.substring(0, 2);
    }
    return defaultLanguage;
};
exports.defaultLanguage = defaultLanguage;


/***/ }),

/***/ 41579:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_471404__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isAbort = exports.abort = exports.options = exports.connection = exports.error = void 0;
var errors_1 = __nested_webpack_require_471404__(45339);
function error(message) {
    return new TypeError(message);
}
exports.error = error;
function connection(message) {
    return new errors_1.ConnectionError(message);
}
exports.connection = connection;
function options(message) {
    return new errors_1.OptionsError(message);
}
exports.options = options;
function abort(message) {
    return new errors_1.AbortError(message);
}
exports.abort = abort;
function isAbort(error) {
    return error instanceof errors_1.AbortError;
}
exports.isAbort = isAbort;


/***/ }),

/***/ 86768:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_472451__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.AbortError = void 0;
var tslib_1 = __nested_webpack_require_472451__(20255);
var AbortError = (function (_super) {
    tslib_1.__extends(AbortError, _super);
    function AbortError(m) {
        var _this = _super.call(this, m) || this;
        Object.setPrototypeOf(_this, AbortError.prototype);
        return _this;
    }
    return AbortError;
}(Error));
exports.AbortError = AbortError;


/***/ }),

/***/ 43380:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_473238__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ConnectionError = void 0;
var tslib_1 = __nested_webpack_require_473238__(20255);
var ConnectionError = (function (_super) {
    tslib_1.__extends(ConnectionError, _super);
    function ConnectionError(m) {
        var _this = _super.call(this, m) || this;
        Object.setPrototypeOf(_this, ConnectionError.prototype);
        return _this;
    }
    return ConnectionError;
}(Error));
exports.ConnectionError = ConnectionError;


/***/ }),

/***/ 45339:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_474065__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_474065__(20255);
tslib_1.__exportStar(__nested_webpack_require_474065__(86768), exports);
tslib_1.__exportStar(__nested_webpack_require_474065__(43380), exports);
tslib_1.__exportStar(__nested_webpack_require_474065__(47403), exports);


/***/ }),

/***/ 47403:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_474685__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.OptionsError = void 0;
var tslib_1 = __nested_webpack_require_474685__(20255);
var OptionsError = (function (_super) {
    tslib_1.__extends(OptionsError, _super);
    function OptionsError(m) {
        var _this = _super.call(this, m) || this;
        Object.setPrototypeOf(_this, OptionsError.prototype);
        return _this;
    }
    return OptionsError;
}(TypeError));
exports.OptionsError = OptionsError;


/***/ }),

/***/ 56964:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_475492__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_475492__(20255);
tslib_1.__exportStar(__nested_webpack_require_475492__(41579), exports);
tslib_1.__exportStar(__nested_webpack_require_475492__(45339), exports);


/***/ }),

/***/ 7935:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_476052__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.fastClone = exports.markAsAtomic = exports.isAtom = void 0;
var stringify_1 = __nested_webpack_require_476052__(42554);
function isAtom(obj) {
    return obj && obj.isAtom;
}
exports.isAtom = isAtom;
function markAsAtomic(obj) {
    Object.defineProperty(obj, 'isAtom', {
        enumerable: false,
        value: true,
        configurable: false
    });
    return obj;
}
exports.markAsAtomic = markAsAtomic;
function fastClone(object) {
    return JSON.parse((0, stringify_1.stringify)(object));
}
exports.fastClone = fastClone;


/***/ }),

/***/ 87247:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_476979__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getClassName = exports.keepNames = void 0;
var is_function_1 = __nested_webpack_require_476979__(42096);
exports.keepNames = new Map();
var getClassName = function (obj) {
    var _a;
    if ((0, is_function_1.isFunction)(obj.className)) {
        return obj.className();
    }
    var constructor = ((_a = obj.constructor) === null || _a === void 0 ? void 0 : _a.originalConstructor) || obj.constructor;
    if (exports.keepNames.has(constructor)) {
        return exports.keepNames.get(constructor);
    }
    if (constructor.name) {
        return constructor.name;
    }
    var regex = new RegExp(/^\s*function\s*(\S*)\s*\(/);
    var res = constructor.toString().match(regex);
    return res ? res[1] : '';
};
exports.getClassName = getClassName;


/***/ }),

/***/ 69384:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_478127__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.get = void 0;
var tslib_1 = __nested_webpack_require_478127__(20255);
var is_string_1 = __nested_webpack_require_478127__(24421);
var is_void_1 = __nested_webpack_require_478127__(24021);
function get(chain, obj) {
    var e_1, _a;
    if (!(0, is_string_1.isString)(chain) || !chain.length) {
        return null;
    }
    var parts = chain.split('.');
    var result = obj;
    try {
        try {
            for (var parts_1 = tslib_1.__values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
                var part = parts_1_1.value;
                if ((0, is_void_1.isVoid)(result[part])) {
                    return null;
                }
                result = result[part];
            }
        }
        catch (e_1_1) { e_1 = { error: e_1_1 }; }
        finally {
            try {
                if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
            }
            finally { if (e_1) throw e_1.error; }
        }
    }
    catch (_b) {
        return null;
    }
    if ((0, is_void_1.isVoid)(result)) {
        return null;
    }
    return result;
}
exports.get = get;


/***/ }),

/***/ 6102:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.humanSizeToBytes = void 0;
var humanSizeToBytes = function (human) {
    if (/^[0-9.]+$/.test(human.toString())) {
        return parseFloat(human);
    }
    var format = human.substr(-2, 2).toUpperCase(), formats = ['KB', 'MB', 'GB', 'TB'], number = parseFloat(human.substr(0, human.length - 2));
    return formats.indexOf(format) !== -1
        ? number * Math.pow(1024, formats.indexOf(format) + 1)
        : parseInt(human, 10);
};
exports.humanSizeToBytes = humanSizeToBytes;


/***/ }),

/***/ 76502:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_480524__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_480524__(20255);
tslib_1.__exportStar(__nested_webpack_require_480524__(60303), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(62462), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(52378), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(37682), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(71567), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(48240), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(64981), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(42051), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(26911), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(2522), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(63122), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(93351), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(56964), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(7935), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(69384), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(87247), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(6102), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(47580), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(67285), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(21498), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(80861), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(9005), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(54188), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(21518), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(37228), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(67309), exports);
tslib_1.__exportStar(__nested_webpack_require_480524__(22362), exports);


/***/ }),

/***/ 47580:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_482556__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.markDeprecated = exports.cns = void 0;
var tslib_1 = __nested_webpack_require_482556__(20255);
exports.cns = console;
function markDeprecated(method, names, ctx) {
    if (names === void 0) { names = ['']; }
    if (ctx === void 0) { ctx = null; }
    return function () {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        exports.cns.warn("Method \"".concat(names[0], "\" deprecated.") +
            (names[1] ? " Use \"".concat(names[1], "\" instead") : ''));
        return method.call.apply(method, tslib_1.__spreadArray([ctx], tslib_1.__read(args), false));
    };
}
exports.markDeprecated = markDeprecated;


/***/ }),

/***/ 67285:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.parseQuery = void 0;
var parseQuery = function (queryString) {
    var query = {}, a = queryString.substring(1).split('&');
    for (var i = 0; i < a.length; i += 1) {
        var keyValue = a[i].split('=');
        query[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1] || '');
    }
    return query;
};
exports.parseQuery = parseQuery;


/***/ }),

/***/ 21498:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_484393__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.previewBox = void 0;
var is_string_1 = __nested_webpack_require_484393__(24421);
var dom_1 = __nested_webpack_require_484393__(24263);
var css_1 = __nested_webpack_require_484393__(26911);
var utils_1 = __nested_webpack_require_484393__(67309);
var selector_1 = __nested_webpack_require_484393__(54188);
function fixedAssetsSizeAndAbsoluteLinks(editor, points) {
    var restoreAttributes = [];
    try {
        (0, selector_1.$$)('img', editor.editor).forEach(function (item) {
            var previousAttrs = [
                (0, utils_1.attr)(item, 'width'),
                (0, utils_1.attr)(item, 'height'),
                item.src
            ];
            (0, utils_1.attr)(item, {
                width: item.offsetWidth + points,
                height: item.offsetHeight + points
            });
            var a = editor.createInside.a();
            editor.ed.body.appendChild(a);
            a.href = item.src;
            item.src = a.href;
            dom_1.Dom.safeRemove(a);
            restoreAttributes.push(function () {
                var _a;
                item.src = (_a = previousAttrs[2]) !== null && _a !== void 0 ? _a : '';
                (0, utils_1.attr)(item, {
                    width: previousAttrs[0] || null,
                    height: previousAttrs[1] || null
                });
            });
        });
    }
    catch (e) {
        restoreAttributes.forEach(function (c) { return c(); });
        restoreAttributes.length = 0;
        throw e;
    }
    return restoreAttributes;
}
function previewBox(editor, defaultValue, points, container) {
    if (points === void 0) { points = 'px'; }
    if (container === void 0) { container = null; }
    var restoreAttributes = fixedAssetsSizeAndAbsoluteLinks(editor, points);
    try {
        var res = editor.e.fire('beforePreviewBox', defaultValue, points);
        if (res != null) {
            return res;
        }
        var div = editor.c.div('jodit__preview-box jodit-context');
        if (container) {
            container.appendChild(div);
        }
        (0, css_1.css)(div, {
            position: 'relative',
            padding: 16
        });
        var value = editor.value ||
            "<div style='position: absolute;left:50%;top:50%;transform: translateX(-50%) translateY(-50%);color:#ccc;'>".concat(editor.i18n('Empty'), "</div>");
        if (editor.iframe) {
            var iframe_1 = editor.create.element('iframe');
            (0, css_1.css)(iframe_1, {
                minWidth: 800,
                minHeight: 600,
                border: 0
            });
            div.appendChild(iframe_1);
            var myWindow_1 = iframe_1.contentWindow;
            if (myWindow_1) {
                editor.e.fire('generateDocumentStructure.iframe', myWindow_1.document, editor);
                div = myWindow_1.document.body;
                if (typeof ResizeObserver === 'function') {
                    var resizeObserver_1 = new ResizeObserver(function (entries) {
                        iframe_1.style.height =
                            myWindow_1.document.body.offsetHeight + 20 + 'px';
                    });
                    resizeObserver_1.observe(myWindow_1.document.body);
                    editor.e.on('beforeDestruct', function () {
                        resizeObserver_1.unobserve(myWindow_1.document.body);
                    });
                }
            }
        }
        else {
            (0, css_1.css)(div, {
                minWidth: 1024,
                minHeight: 600,
                border: 0
            });
        }
        var setHTML_1 = function (box, value) {
            var dv = (0, is_string_1.isString)(value) ? editor.c.div() : value;
            if ((0, is_string_1.isString)(value)) {
                dv.innerHTML = value;
            }
            for (var i = 0; i < dv.childNodes.length; i += 1) {
                var c = dv.childNodes[i];
                if (dom_1.Dom.isElement(c)) {
                    var newNode = box.ownerDocument.createElement(c.nodeName);
                    for (var j = 0; j < c.attributes.length; j += 1) {
                        (0, utils_1.attr)(newNode, c.attributes[j].nodeName, c.attributes[j].nodeValue);
                    }
                    if (c.childNodes.length === 0 || dom_1.Dom.isTag(c, ['table'])) {
                        switch (c.nodeName) {
                            case 'SCRIPT':
                                if (c.textContent) {
                                    newNode.textContent = c.textContent;
                                }
                                break;
                            default:
                                if (c.innerHTML) {
                                    newNode.innerHTML = c.innerHTML;
                                }
                                break;
                        }
                    }
                    else {
                        setHTML_1(newNode, c);
                    }
                    try {
                        box.appendChild(newNode);
                    }
                    catch (_a) { }
                }
                else {
                    try {
                        box.appendChild(c.cloneNode(true));
                    }
                    catch (_b) { }
                }
            }
        };
        setHTML_1(div, value);
        editor.e.fire('afterPreviewBox', div);
        return div;
    }
    finally {
        restoreAttributes.forEach(function (clb) { return clb(); });
    }
}
exports.previewBox = previewBox;


/***/ }),

/***/ 80861:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_490325__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.reset = void 0;
var get_1 = __nested_webpack_require_490325__(69384);
var is_function_1 = __nested_webpack_require_490325__(42096);
var map = {};
var reset = function (key) {
    var _a, _b;
    if (!(key in map)) {
        var iframe = document.createElement('iframe');
        try {
            iframe.src = 'about:blank';
            document.body.appendChild(iframe);
            if (!iframe.contentWindow) {
                return null;
            }
            var func = (0, get_1.get)(key, iframe.contentWindow), bind = (0, get_1.get)(key.split('.').slice(0, -1).join('.'), iframe.contentWindow);
            if ((0, is_function_1.isFunction)(func)) {
                map[key] = func.bind(bind);
            }
        }
        catch (e) {
            if (false) // removed by dead control flow
{}
        }
        finally {
            (_a = iframe.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(iframe);
        }
    }
    return (_b = map[key]) !== null && _b !== void 0 ? _b : null;
};
exports.reset = reset;


/***/ }),

/***/ 9005:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_491714__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.scrollIntoViewIfNeeded = exports.inView = void 0;
var dom_1 = __nested_webpack_require_491714__(24263);
var inView = function (elm, root, doc) {
    var rect = elm.getBoundingClientRect(), el = elm;
    var top = rect.top, height = rect.height;
    do {
        if (el && el.parentNode) {
            el = el.parentNode;
            rect = el.getBoundingClientRect();
            if (!(top <= rect.bottom)) {
                return false;
            }
            if (top + height <= rect.top) {
                return false;
            }
        }
    } while (el && el !== root && el.parentNode);
    return (top <= ((doc.documentElement && doc.documentElement.clientHeight) || 0));
};
exports.inView = inView;
function scrollIntoViewIfNeeded(elm, root, doc) {
    if (dom_1.Dom.isHTMLElement(elm) && !(0, exports.inView)(elm, root, doc)) {
        if (root.clientHeight !== root.scrollHeight) {
            root.scrollTop = elm.offsetTop;
        }
        if (!(0, exports.inView)(elm, root, doc)) {
            elm.scrollIntoView();
        }
    }
}
exports.scrollIntoViewIfNeeded = scrollIntoViewIfNeeded;


/***/ }),

/***/ 54188:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_493224__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.resolveElement = exports.cssPath = exports.refs = exports.getXPathByElement = exports.$$ = void 0;
var constants_1 = __nested_webpack_require_493224__(86893);
var is_string_1 = __nested_webpack_require_493224__(24421);
var utils_1 = __nested_webpack_require_493224__(76502);
var dom_1 = __nested_webpack_require_493224__(24263);
var camel_case_1 = __nested_webpack_require_493224__(26596);
var to_array_1 = __nested_webpack_require_493224__(1853);
var element_1 = __nested_webpack_require_493224__(53929);
var component_1 = __nested_webpack_require_493224__(45113);
var temp = 1;
var $$temp = function () {
    temp++;
    return temp;
};
function $$(selector, root) {
    var result;
    if (  true &&
        /:scope/.test(selector) &&
        constants_1.IS_IE &&
        !(root && root.nodeType === Node.DOCUMENT_NODE)) {
        var id = root.id, temp_id = id ||
            '_selector_id_' + String(Math.random()).slice(2) + $$temp();
        selector = selector.replace(/:scope/g, '#' + temp_id);
        !id && root.setAttribute('id', temp_id);
        result = root.parentNode.querySelectorAll(selector);
        if (!id) {
            root.removeAttribute('id');
        }
    }
    else {
        result = root.querySelectorAll(selector);
    }
    return [].slice.call(result);
}
exports.$$ = $$;
var getXPathByElement = function (element, root) {
    if (!element || element.nodeType !== Node.ELEMENT_NODE) {
        return '';
    }
    if (!element.parentNode || root === element) {
        return '';
    }
    if (element.id) {
        return "//*[@id='" + element.id + "']";
    }
    var sames = [].filter.call(element.parentNode.childNodes, function (x) { return x.nodeName === element.nodeName; });
    return ((0, exports.getXPathByElement)(element.parentNode, root) +
        '/' +
        element.nodeName.toLowerCase() +
        (sames.length > 1
            ? '[' + ((0, to_array_1.toArray)(sames).indexOf(element) + 1) + ']'
            : ''));
};
exports.getXPathByElement = getXPathByElement;
var refs = function (root) {
    if (component_1.Component.isInstanceOf(root, element_1.UIElement)) {
        root = root.container;
    }
    return $$('[ref],[data-ref]', root).reduce(function (def, child) {
        var key = (0, utils_1.attr)(child, '-ref');
        if (key && (0, is_string_1.isString)(key)) {
            def[(0, camel_case_1.camelCase)(key)] = child;
            def[key] = child;
        }
        return def;
    }, {});
};
exports.refs = refs;
var cssPath = function (el) {
    if (!dom_1.Dom.isElement(el)) {
        return null;
    }
    var path = [];
    var start = el;
    while (start && start.nodeType === Node.ELEMENT_NODE) {
        var selector = start.nodeName.toLowerCase();
        if (start.id) {
            selector += '#' + start.id;
            path.unshift(selector);
            break;
        }
        else {
            var sib = start, nth = 1;
            do {
                sib = sib.previousElementSibling;
                if (sib && sib.nodeName.toLowerCase() === selector) {
                    nth++;
                }
            } while (sib);
            selector += ':nth-of-type(' + nth + ')';
        }
        path.unshift(selector);
        start = start.parentNode;
    }
    return path.join(' > ');
};
exports.cssPath = cssPath;
function resolveElement(element, od) {
    var resolved = element;
    if ((0, is_string_1.isString)(element)) {
        try {
            resolved = od.querySelector(element);
        }
        catch (_a) {
            throw (0, utils_1.error)('String "' + element + '" should be valid HTML selector');
        }
    }
    if (!resolved ||
        typeof resolved !== 'object' ||
        !dom_1.Dom.isElement(resolved) ||
        !resolved.cloneNode) {
        throw (0, utils_1.error)('Element "' + element + '" should be string or HTMLElement instance');
    }
    return resolved;
}
exports.resolveElement = resolveElement;


/***/ }),

/***/ 21518:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_497470__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.set = void 0;
var is_string_1 = __nested_webpack_require_497470__(24421);
var is_numeric_1 = __nested_webpack_require_497470__(57649);
var is_array_1 = __nested_webpack_require_497470__(49781);
var is_plain_object_1 = __nested_webpack_require_497470__(79736);
function set(chain, value, obj) {
    if (!(0, is_string_1.isString)(chain) || !chain.length) {
        return;
    }
    var parts = chain.split('.');
    var result = obj, key = parts[0];
    for (var i = 0; i < parts.length - 1; i += 1) {
        key = parts[i];
        if (!(0, is_array_1.isArray)(result[key]) && !(0, is_plain_object_1.isPlainObject)(result[key])) {
            result[key] = (0, is_numeric_1.isNumeric)(parts[i + 1]) ? [] : {};
        }
        result = result[key];
    }
    if (result) {
        result[parts[parts.length - 1]] = value;
    }
}
exports.set = set;


/***/ }),

/***/ 37228:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.LimitedStack = void 0;
var LimitedStack = (function () {
    function LimitedStack(limit) {
        this.limit = limit;
        this.stack = [];
    }
    LimitedStack.prototype.push = function (item) {
        this.stack.push(item);
        if (this.stack.length > this.limit) {
            this.stack.shift();
        }
        return this;
    };
    LimitedStack.prototype.pop = function () {
        return this.stack.pop();
    };
    LimitedStack.prototype.find = function (clb) {
        return this.stack.find(clb);
    };
    return LimitedStack;
}());
exports.LimitedStack = LimitedStack;


/***/ }),

/***/ 67309:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_499663__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getDataTransfer = exports.memorizeExec = exports.keys = exports.loadImage = exports.callPromise = exports.markOwner = exports.attr = exports.call = void 0;
var tslib_1 = __nested_webpack_require_499663__(20255);
var is_function_1 = __nested_webpack_require_499663__(42096);
var is_promise_1 = __nested_webpack_require_499663__(26335);
var is_void_1 = __nested_webpack_require_499663__(24021);
var is_plain_object_1 = __nested_webpack_require_499663__(79736);
var is_string_1 = __nested_webpack_require_499663__(24421);
var data_bind_1 = __nested_webpack_require_499663__(63122);
var css_1 = __nested_webpack_require_499663__(26911);
var kebab_case_1 = __nested_webpack_require_499663__(11278);
function call(func) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    return func.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
}
exports.call = call;
function attr(elm, keyOrAttributes, value) {
    if (!elm || !(0, is_function_1.isFunction)(elm.getAttribute)) {
        return null;
    }
    if (!(0, is_string_1.isString)(keyOrAttributes)) {
        Object.keys(keyOrAttributes).forEach(function (key) {
            var value = keyOrAttributes[key];
            if ((0, is_plain_object_1.isPlainObject)(value) && key === 'style') {
                (0, css_1.css)(elm, value);
            }
            else {
                if (key === 'className') {
                    key = 'class';
                }
                attr(elm, key, value);
            }
        });
        return null;
    }
    var key = (0, kebab_case_1.CamelCaseToKebabCase)(keyOrAttributes);
    if (/^-/.test(key)) {
        var res = attr(elm, "data".concat(key));
        if (res) {
            return res;
        }
        key = key.substr(1);
    }
    if (value !== undefined) {
        if (value == null) {
            elm.hasAttribute(key) && elm.removeAttribute(key);
        }
        else {
            elm.setAttribute(key, value.toString());
            return value.toString();
        }
    }
    return elm.getAttribute(key);
}
exports.attr = attr;
function markOwner(jodit, elm) {
    attr(elm, 'data-editor_id', jodit.id);
    !elm.component &&
        Object.defineProperty(elm, 'jodit', {
            value: jodit
        });
}
exports.markOwner = markOwner;
function callPromise(condition, callback) {
    if ((0, is_promise_1.isPromise)(condition)) {
        return condition.finally(callback);
    }
    return callback();
}
exports.callPromise = callPromise;
var loadImage = function (src, jodit) {
    return jodit.async.promise(function (res, rej) {
        var image = new Image(), onError = function () {
            jodit.e.off(image);
            rej === null || rej === void 0 ? void 0 : rej();
        }, onSuccess = function () {
            jodit.e.off(image);
            res(image);
        };
        jodit.e
            .one(image, 'load', onSuccess)
            .one(image, 'error', onError)
            .one(image, 'abort', onError);
        image.src = src;
        if (image.complete) {
            onSuccess();
        }
    });
};
exports.loadImage = loadImage;
var keys = function (obj, own) {
    if (own === void 0) { own = true; }
    if (own) {
        return Object.keys(obj);
    }
    var props = [];
    for (var key in obj) {
        props.push(key);
    }
    return props;
};
exports.keys = keys;
var memorizeExec = function (editor, _, _a, preProcessValue) {
    var _b;
    var control = _a.control;
    var key = "button".concat(control.command);
    var value = (_b = (control.args && control.args[0])) !== null && _b !== void 0 ? _b : (0, data_bind_1.dataBind)(editor, key);
    if ((0, is_void_1.isVoid)(value)) {
        return false;
    }
    (0, data_bind_1.dataBind)(editor, key, value);
    if (preProcessValue) {
        value = preProcessValue(value);
    }
    editor.execCommand(control.command, false, value !== null && value !== void 0 ? value : undefined);
};
exports.memorizeExec = memorizeExec;
var getDataTransfer = function (event) {
    if (event.clipboardData) {
        return event.clipboardData;
    }
    try {
        return event.dataTransfer || new DataTransfer();
    }
    catch (_a) {
        return null;
    }
};
exports.getDataTransfer = getDataTransfer;


/***/ }),

/***/ 22362:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.val = void 0;
var val = function (elm, selector, value) {
    var child = elm.querySelector(selector);
    if (!child) {
        return '';
    }
    if (value) {
        child.value = value;
    }
    return child.value;
};
exports.val = val;


/***/ }),

/***/ 33286:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_504898__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.init = exports.initInstance = void 0;
var checker_1 = __nested_webpack_require_504898__(10172);
var load_1 = __nested_webpack_require_504898__(90338);
function initInstance(jodit, pluginName, instance, doneList, waitingList) {
    if (init(jodit, pluginName, instance, doneList, waitingList)) {
        Object.keys(waitingList).forEach(function (name) {
            var plugin = waitingList[name];
            init(jodit, name, plugin, doneList, waitingList);
        });
    }
}
exports.initInstance = initInstance;
function init(jodit, pluginName, instance, doneList, waitingList) {
    var req = instance.requires;
    if ((req === null || req === void 0 ? void 0 : req.length) && !req.every(function (name) { return doneList.has(name); })) {
        if (false) // removed by dead control flow
{}
        waitingList[pluginName] = instance;
        return false;
    }
    if ((0, checker_1.isInitable)(instance)) {
        try {
            instance.init(jodit);
        }
        catch (e) {
            console.error(e);
            if (false) // removed by dead control flow
{}
        }
    }
    doneList.add(pluginName);
    delete waitingList[pluginName];
    if (instance.hasStyle) {
        (0, load_1.loadStyle)(jodit, pluginName).catch(function (e) {
              false && 0;
        });
    }
    return true;
}
exports.init = init;


/***/ }),

/***/ 90338:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_506564__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.loadExtras = exports.loadStyle = void 0;
var tslib_1 = __nested_webpack_require_506564__(20255);
var append_script_1 = __nested_webpack_require_506564__(62462);
var kebab_case_1 = __nested_webpack_require_506564__(11278);
var utils_1 = __nested_webpack_require_506564__(93498);
var styles = new Set();
function loadStyle(jodit, pluginName) {
    return tslib_1.__awaiter(this, void 0, Promise, function () {
        var url;
        return tslib_1.__generator(this, function (_a) {
            url = getFullUrl(jodit, pluginName, false);
            if (styles.has(url)) {
                return [2];
            }
            styles.add(url);
            return [2, (0, append_script_1.appendStyleAsync)(jodit, url)];
        });
    });
}
exports.loadStyle = loadStyle;
function getFullUrl(jodit, name, js) {
    name = (0, kebab_case_1.kebabCase)(name);
    return (jodit.basePath +
        'plugins/' +
        name +
        '/' +
        name +
        '.' +
        (js ? 'js' : 'css'));
}
function loadExtras(items, jodit, extrasList, callback) {
    try {
        var needLoadExtras = extrasList.filter(function (extra) { return !items.has((0, utils_1.normalizeName)(extra.name)); });
        if (needLoadExtras.length) {
            load(jodit, needLoadExtras, callback);
        }
    }
    catch (e) {
        if (false) // removed by dead control flow
{}
    }
}
exports.loadExtras = loadExtras;
function load(jodit, pluginList, callback) {
    pluginList.map(function (extra) {
        var url = extra.url || getFullUrl(jodit, extra.name, true);
        return (0, append_script_1.appendScriptAsync)(jodit, url)
            .then(callback)
            .catch(function () { return null; });
    });
}


/***/ }),

/***/ 24342:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_508599__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.makeInstance = void 0;
var checker_1 = __nested_webpack_require_508599__(10172);
function makeInstance(jodit, plugin) {
    try {
        try {
            return (0, checker_1.isFunction)(plugin) ? new plugin(jodit) : plugin;
        }
        catch (e) {
            if ((0, checker_1.isFunction)(plugin) && !plugin.prototype) {
                return plugin(jodit);
            }
        }
    }
    catch (e) {
        console.error(e);
        if (false) // removed by dead control flow
{}
    }
    return null;
}
exports.makeInstance = makeInstance;


/***/ }),

/***/ 93498:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_509519__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.normalizeName = void 0;
var kebab_case_1 = __nested_webpack_require_509519__(11278);
function normalizeName(name) {
    return (0, kebab_case_1.kebabCase)(name).toLowerCase();
}
exports.normalizeName = normalizeName;


/***/ }),

/***/ 57549:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_510131__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_510131__(20255);
tslib_1.__exportStar(__nested_webpack_require_510131__(44540), exports);
tslib_1.__exportStar(__nested_webpack_require_510131__(85605), exports);


/***/ }),

/***/ 13573:
/***/ (function() {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */


/***/ }),

/***/ 44540:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_510975__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.PluginSystem = void 0;
var tslib_1 = __nested_webpack_require_510975__(20255);
__nested_webpack_require_510975__(13573);
var checker_1 = __nested_webpack_require_510975__(10172);
var array_1 = __nested_webpack_require_510975__(12557);
var global_1 = __nested_webpack_require_510975__(17332);
var load_1 = __nested_webpack_require_510975__(90338);
var utils_1 = __nested_webpack_require_510975__(93498);
var make_instance_1 = __nested_webpack_require_510975__(24342);
var init_instance_1 = __nested_webpack_require_510975__(33286);
var PluginSystem = (function () {
    function PluginSystem() {
        this.__items = new Map();
    }
    PluginSystem.prototype.add = function (name, plugin) {
        this.__items.set((0, utils_1.normalizeName)(name), plugin);
        global_1.eventEmitter.fire("plugin:".concat(name, ":ready"));
    };
    PluginSystem.prototype.get = function (name) {
        return this.__items.get((0, utils_1.normalizeName)(name));
    };
    PluginSystem.prototype.remove = function (name) {
        this.__items.delete((0, utils_1.normalizeName)(name));
    };
    PluginSystem.prototype.__filter = function (filter) {
        var results = [];
        this.__items.forEach(function (plugin, name) {
            if (!filter || filter.has(name)) {
                results.push([name, plugin]);
            }
        });
        return results;
    };
    PluginSystem.prototype.__init = function (jodit) {
        var _this = this;
        var _a = getSpecialLists(jodit), extrasList = _a.extrasList, disableList = _a.disableList, filter = _a.filter;
        var doneList = new Set();
        var waitingList = {};
        var pluginsMap = {};
        jodit.__plugins = pluginsMap;
        var initPlugins = function () {
            if (jodit.isInDestruct) {
                return;
            }
            var commit = false;
            _this.__filter(filter).forEach(function (_a) {
                var _b = tslib_1.__read(_a, 2), name = _b[0], plugin = _b[1];
                if (disableList.has(name) ||
                    doneList.has(name) ||
                    waitingList[name]) {
                    return;
                }
                var requires = plugin === null || plugin === void 0 ? void 0 : plugin.requires;
                if (requires &&
                    (0, checker_1.isArray)(requires) &&
                    Boolean(requires.some(function (req) { return disableList.has(req); }))) {
                    return;
                }
                commit = true;
                var instance = (0, make_instance_1.makeInstance)(jodit, plugin);
                if (!instance) {
                    doneList.add(name);
                    delete waitingList[name];
                    return;
                }
                (0, init_instance_1.initInstance)(jodit, name, instance, doneList, waitingList);
                pluginsMap[name] = instance;
            });
            commit && jodit.e.fire('updatePlugins');
        };
        if (!extrasList || !extrasList.length) {
            (0, load_1.loadExtras)(this.__items, jodit, extrasList, initPlugins);
        }
        initPlugins();
        bindOnBeforeDestruct(jodit, pluginsMap);
    };
    PluginSystem.prototype.wait = function (name) {
        var _this = this;
        return new Promise(function (resolve) {
            if (_this.get(name)) {
                return resolve();
            }
            var onReady = function () {
                resolve();
                global_1.eventEmitter.off("plugin:".concat(name, ":ready"), onReady);
            };
            global_1.eventEmitter.on("plugin:".concat(name, ":ready"), onReady);
        });
    };
    return PluginSystem;
}());
exports.PluginSystem = PluginSystem;
function bindOnBeforeDestruct(jodit, plugins) {
    jodit.e.on('beforeDestruct', function () {
        Object.keys(plugins).forEach(function (name) {
            var instance = plugins[name];
            if ((0, checker_1.isDestructable)(instance)) {
                instance.destruct(jodit);
            }
            delete plugins[name];
        });
        delete jodit.__plugins;
    });
}
function getSpecialLists(jodit) {
    var extrasList = jodit.o.extraPlugins.map(function (s) {
        return (0, checker_1.isString)(s) ? { name: s } : s;
    });
    var disableList = new Set((0, array_1.splitArray)(jodit.o.disablePlugins).map(utils_1.normalizeName));
    var filter = jodit.o.safeMode ? new Set(jodit.o.safePluginsList) : null;
    return { extrasList: extrasList, disableList: disableList, filter: filter };
}


/***/ }),

/***/ 85605:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_515840__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Plugin = void 0;
var tslib_1 = __nested_webpack_require_515840__(20255);
var component_1 = __nested_webpack_require_515840__(56562);
var decorators_1 = __nested_webpack_require_515840__(43441);
var helpers_1 = __nested_webpack_require_515840__(40332);
var Plugin = (function (_super) {
    tslib_1.__extends(Plugin, _super);
    function Plugin(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.requires = [];
        _this.buttons = [];
        _this.hasStyle = false;
        jodit.e
            .on('afterPluginSystemInit', function () {
            var _a;
            if ((0, helpers_1.isJoditObject)(jodit)) {
                (_a = _this.buttons) === null || _a === void 0 ? void 0 : _a.forEach(function (btn) {
                    jodit.registerButton(btn);
                });
            }
        })
            .on('afterInit', function () {
            _this.setStatus(component_1.STATUSES.ready);
            _this.afterInit(jodit);
        })
            .on('beforeDestruct', _this.destruct);
        return _this;
    }
    Plugin.prototype.className = function () {
        return '';
    };
    Plugin.prototype.init = function (jodit) {
    };
    Plugin.prototype.destruct = function () {
        var _a, _b, _c;
        if (this.isReady) {
            this.setStatus(component_1.STATUSES.beforeDestruct);
            var j_1 = this.j;
            if ((0, helpers_1.isJoditObject)(j_1)) {
                (_a = this.buttons) === null || _a === void 0 ? void 0 : _a.forEach(function (btn) {
                    j_1 === null || j_1 === void 0 ? void 0 : j_1.unregisterButton(btn);
                });
            }
            (_c = (_b = this.j) === null || _b === void 0 ? void 0 : _b.events) === null || _c === void 0 ? void 0 : _c.off('beforeDestruct', this.destruct);
            this.beforeDestruct(this.j);
            _super.prototype.destruct.call(this);
        }
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], Plugin.prototype, "destruct", null);
    return Plugin;
}(component_1.ViewComponent));
exports.Plugin = Plugin;


/***/ }),

/***/ 9917:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_518292__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Ajax = void 0;
var tslib_1 = __nested_webpack_require_518292__(20255);
var config_1 = __nested_webpack_require_518292__(93166);
var helpers_1 = __nested_webpack_require_518292__(40332);
var error = __nested_webpack_require_518292__(56964);
var response_1 = __nested_webpack_require_518292__(86101);
var async_1 = __nested_webpack_require_518292__(22630);
var decorators_1 = __nested_webpack_require_518292__(43441);
__nested_webpack_require_518292__(12144);
var Ajax = (function () {
    function Ajax(options, defaultAjaxOptions) {
        if (defaultAjaxOptions === void 0) { defaultAjaxOptions = config_1.Config.prototype.defaultAjaxOptions; }
        this.__async = new async_1.Async();
        this.__isFulfilled = false;
        this.__activated = false;
        this.__isDestructed = false;
        this.options = (0, helpers_1.ConfigProto)(options || {}, defaultAjaxOptions);
        this.xhr = this.o.xhr ? this.o.xhr() : new XMLHttpRequest();
    }
    Ajax.prototype.__buildParams = function (obj, prefix) {
        if ((0, helpers_1.isPlainObject)(obj) &&
            this.options.contentType &&
            this.options.contentType.includes('application/json')) {
            return JSON.stringify(obj);
        }
        if ((0, helpers_1.isFunction)(this.o.queryBuild)) {
            return this.o.queryBuild.call(this, obj, prefix);
        }
        if ((0, helpers_1.isString)(obj) ||
            obj instanceof window.FormData ||
            (typeof obj === 'object' && obj != null && (0, helpers_1.isFunction)(obj.append))) {
            return obj;
        }
        return (0, helpers_1.buildQuery)(obj);
    };
    Object.defineProperty(Ajax.prototype, "o", {
        get: function () {
            return this.options;
        },
        enumerable: false,
        configurable: true
    });
    Ajax.prototype.abort = function () {
        if (this.__isFulfilled) {
            return this;
        }
        try {
            this.__isFulfilled = true;
            this.xhr.abort();
        }
        catch (_a) { }
        return this;
    };
    Ajax.prototype.send = function () {
        var _this = this;
        this.__activated = true;
        var _a = this, xhr = _a.xhr, o = _a.o;
        var request = this.prepareRequest();
        return this.__async.promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
            var onReject, onResolve, url, data, method, headers;
            var _this = this;
            var _a;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        onReject = function () {
                            _this.__isFulfilled = true;
                            reject(error.connection('Connection error'));
                        };
                        onResolve = function () {
                            _this.__isFulfilled = true;
                            resolve(new response_1.Response(request, xhr.status, xhr.statusText, !xhr.responseType ? xhr.responseText : xhr.response));
                        };
                        xhr.onload = onResolve;
                        xhr.onabort = function () {
                            _this.__isFulfilled = true;
                            reject(error.abort('Abort connection'));
                        };
                        xhr.onerror = onReject;
                        xhr.ontimeout = onReject;
                        if (o.responseType) {
                            xhr.responseType = o.responseType;
                        }
                        xhr.onprogress = function (e) {
                            var _a, _b;
                            var percentComplete = 0;
                            if (e.lengthComputable) {
                                percentComplete = (e.loaded / e.total) * 100;
                            }
                            (_b = (_a = _this.options).onProgress) === null || _b === void 0 ? void 0 : _b.call(_a, percentComplete);
                        };
                        xhr.onreadystatechange = function () {
                            var _a, _b;
                            (_b = (_a = _this.options).onProgress) === null || _b === void 0 ? void 0 : _b.call(_a, 10);
                            if (xhr.readyState === XMLHttpRequest.DONE) {
                                if (o.successStatuses.includes(xhr.status)) {
                                    onResolve();
                                }
                                else if (xhr.statusText) {
                                    _this.__isFulfilled = true;
                                    reject(error.connection(xhr.statusText));
                                }
                            }
                        };
                        xhr.withCredentials = (_a = o.withCredentials) !== null && _a !== void 0 ? _a : false;
                        url = request.url, data = request.data, method = request.method;
                        xhr.open(method, url, true);
                        if (o.contentType && xhr.setRequestHeader) {
                            xhr.setRequestHeader('Content-type', o.contentType);
                        }
                        headers = o.headers;
                        if (!(0, helpers_1.isFunction)(headers)) return [3, 2];
                        return [4, headers.call(this)];
                    case 1:
                        headers = _b.sent();
                        _b.label = 2;
                    case 2:
                        if (headers && xhr.setRequestHeader) {
                            Object.keys(headers).forEach(function (key) {
                                xhr.setRequestHeader(key, headers[key]);
                            });
                        }
                        this.__async.setTimeout(function () {
                            xhr.send(data ? _this.__buildParams(data) : undefined);
                        }, 0);
                        return [2];
                }
            });
        }); });
    };
    Ajax.prototype.prepareRequest = function () {
        if (!this.o.url) {
            throw error.error('Need URL for AJAX request');
        }
        var url = this.o.url;
        var data = this.o.data;
        var method = (this.o.method || 'get').toLowerCase();
        if (method === 'get' && data && (0, helpers_1.isPlainObject)(data)) {
            var qIndex = url.indexOf('?');
            if (qIndex !== -1) {
                var urlData = (0, helpers_1.parseQuery)(url);
                url =
                    url.substring(0, qIndex) +
                        '?' +
                        (0, helpers_1.buildQuery)(tslib_1.__assign(tslib_1.__assign({}, urlData), data));
            }
            else {
                url += '?' + (0, helpers_1.buildQuery)(this.o.data);
            }
        }
        var request = {
            url: url,
            method: method,
            data: data
        };
        Ajax.log.splice(100);
        Ajax.log.push(request);
        return request;
    };
    Ajax.prototype.destruct = function () {
        if (!this.__isDestructed) {
            this.__isDestructed = true;
            if (this.__activated && !this.__isFulfilled) {
                this.abort();
                this.__isFulfilled = true;
            }
            this.__async.destruct();
        }
    };
    Ajax.log = [];
    tslib_1.__decorate([
        decorators_1.autobind
    ], Ajax.prototype, "destruct", null);
    return Ajax;
}());
exports.Ajax = Ajax;


/***/ }),

/***/ 12144:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_526201__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_526201__(93166);
config_1.Config.prototype.defaultAjaxOptions = {
    successStatuses: [200, 201, 202],
    method: 'GET',
    url: '',
    data: null,
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    headers: {
        'X-REQUESTED-WITH': 'XMLHttpRequest'
    },
    withCredentials: false,
    xhr: function () {
        return new XMLHttpRequest();
    }
};


/***/ }),

/***/ 30056:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_527013__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_527013__(20255);
tslib_1.__exportStar(__nested_webpack_require_527013__(9917), exports);
tslib_1.__exportStar(__nested_webpack_require_527013__(86101), exports);


/***/ }),

/***/ 86101:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_527573__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Response = void 0;
var tslib_1 = __nested_webpack_require_527573__(20255);
var Response = (function () {
    function Response(request, status, statusText, body) {
        this.request = request;
        this.status = status;
        this.statusText = statusText;
        this.body = body;
    }
    Object.defineProperty(Response.prototype, "url", {
        get: function () {
            return this.request.url;
        },
        enumerable: false,
        configurable: true
    });
    Response.prototype.json = function () {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2, JSON.parse(this.body)];
            });
        });
    };
    Response.prototype.text = function () {
        return Promise.resolve(this.body);
    };
    Response.prototype.blob = function () {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2, this.body];
            });
        });
    };
    return Response;
}());
exports.Response = Response;


/***/ }),

/***/ 10109:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_529116__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_529116__(20255);
tslib_1.__exportStar(__nested_webpack_require_529116__(287), exports);
tslib_1.__exportStar(__nested_webpack_require_529116__(10264), exports);


/***/ }),

/***/ 287:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_529673__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.moveNodeInsideStart = void 0;
var dom_1 = __nested_webpack_require_529673__(64968);
var constants_1 = __nested_webpack_require_529673__(86893);
function moveNodeInsideStart(j, node, start) {
    var sibling = dom_1.Dom.findSibling(node, start), anotherSibling = dom_1.Dom.findSibling(node, !start);
    while (dom_1.Dom.isElement(sibling) &&
        !dom_1.Dom.isTag(sibling, constants_1.INSEPARABLE_TAGS) &&
        dom_1.Dom.isContentEditable(sibling, j.editor) &&
        (!anotherSibling || !dom_1.Dom.closest(node, dom_1.Dom.isElement, j.editor))) {
        if (start || !sibling.firstChild) {
            sibling.appendChild(node);
        }
        else {
            dom_1.Dom.before(sibling.firstChild, node);
        }
        sibling = dom_1.Dom.sibling(node, start);
        anotherSibling = dom_1.Dom.sibling(node, !start);
    }
}
exports.moveNodeInsideStart = moveNodeInsideStart;


/***/ }),

/***/ 10264:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_530950__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.moveTheNodeAlongTheEdgeOutward = void 0;
var dom_1 = __nested_webpack_require_530950__(64968);
function moveTheNodeAlongTheEdgeOutward(node, start, root) {
    var item = node;
    while (item && item !== root) {
        var sibling = dom_1.Dom.findSibling(item, start);
        if (sibling) {
            return;
        }
        item = item.parentElement;
        if (item && item !== root) {
            start ? dom_1.Dom.before(item, node) : dom_1.Dom.after(item, node);
        }
    }
    return;
}
exports.moveTheNodeAlongTheEdgeOutward = moveTheNodeAlongTheEdgeOutward;


/***/ }),

/***/ 46325:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_531924__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_531924__(20255);
tslib_1.__exportStar(__nested_webpack_require_531924__(70851), exports);
tslib_1.__exportStar(__nested_webpack_require_531924__(77627), exports);


/***/ }),

/***/ 2047:
/***/ (function() {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */


/***/ }),

/***/ 77627:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_532767__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Select = void 0;
var tslib_1 = __nested_webpack_require_532767__(20255);
var consts = __nested_webpack_require_532767__(86893);
var constants_1 = __nested_webpack_require_532767__(86893);
var dom_1 = __nested_webpack_require_532767__(64968);
var helpers_1 = __nested_webpack_require_532767__(40332);
var commit_style_1 = __nested_webpack_require_532767__(70851);
var decorators_1 = __nested_webpack_require_532767__(43441);
var helpers_2 = __nested_webpack_require_532767__(10109);
var assert_1 = __nested_webpack_require_532767__(52378);
var checker_1 = __nested_webpack_require_532767__(10172);
__nested_webpack_require_532767__(2047);
var Select = (function () {
    function Select(jodit) {
        var _this = this;
        this.jodit = jodit;
        jodit.e.on('removeMarkers', function () {
            _this.removeMarkers();
        });
    }
    Object.defineProperty(Select.prototype, "j", {
        get: function () {
            return this.jodit;
        },
        enumerable: false,
        configurable: true
    });
    Select.prototype.errorNode = function (node) {
        if (!dom_1.Dom.isNode(node)) {
            throw (0, helpers_1.error)('Parameter node must be instance of Node');
        }
    };
    Object.defineProperty(Select.prototype, "area", {
        get: function () {
            return this.j.editor;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "win", {
        get: function () {
            return this.j.ew;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "doc", {
        get: function () {
            return this.j.ed;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "sel", {
        get: function () {
            if (this.j.o.shadowRoot &&
                (0, checker_1.isFunction)(this.j.o.shadowRoot.getSelection)) {
                return this.j.o.shadowRoot.getSelection();
            }
            return this.win.getSelection();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "range", {
        get: function () {
            var sel = this.sel;
            return sel && sel.rangeCount ? sel.getRangeAt(0) : this.createRange();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "isInsideArea", {
        get: function () {
            var sel = this.sel;
            var range = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) ? sel.getRangeAt(0) : null;
            return !(!range || !dom_1.Dom.isOrContains(this.area, range.startContainer));
        },
        enumerable: false,
        configurable: true
    });
    Select.prototype.createRange = function (select) {
        if (select === void 0) { select = false; }
        var range = this.doc.createRange();
        if (select) {
            this.selectRange(range);
        }
        return range;
    };
    Select.prototype.remove = function () {
        var sel = this.sel, current = this.current();
        if (sel && current) {
            for (var i = 0; i < sel.rangeCount; i += 1) {
                sel.getRangeAt(i).deleteContents();
                sel.getRangeAt(i).collapse(true);
            }
        }
    };
    Select.prototype.clear = function () {
        var _a, _b;
        if ((_a = this.sel) === null || _a === void 0 ? void 0 : _a.rangeCount) {
            (_b = this.sel) === null || _b === void 0 ? void 0 : _b.removeAllRanges();
        }
    };
    Select.prototype.removeNode = function (node) {
        if (!dom_1.Dom.isOrContains(this.j.editor, node, true)) {
            throw (0, helpers_1.error)("Selection.removeNode can remove only editor's children");
        }
        dom_1.Dom.safeRemove(node);
        this.j.e.fire('afterRemoveNode', node);
    };
    Select.prototype.insertCursorAtPoint = function (x, y) {
        var _this = this;
        this.removeMarkers();
        try {
            var rng_1 = this.createRange();
            (function () {
                if (_this.doc.caretPositionFromPoint) {
                    var caret = _this.doc.caretPositionFromPoint(x, y);
                    if (caret) {
                        rng_1.setStart(caret.offsetNode, caret.offset);
                        return;
                    }
                }
                if (_this.doc.caretRangeFromPoint) {
                    var caret = _this.doc.caretRangeFromPoint(x, y);
                    rng_1.setStart(caret.startContainer, caret.startOffset);
                }
            })();
            rng_1.collapse(true);
            this.selectRange(rng_1);
            return true;
        }
        catch (_a) { }
        return false;
    };
    Object.defineProperty(Select.prototype, "hasMarkers", {
        get: function () {
            return Boolean(this.markers.length);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Select.prototype, "markers", {
        get: function () {
            return (0, helpers_1.$$)('span[data-' + consts.MARKER_CLASS + ']', this.area);
        },
        enumerable: false,
        configurable: true
    });
    Select.prototype.removeMarkers = function () {
        dom_1.Dom.safeRemove.apply(null, this.markers);
    };
    Select.prototype.marker = function (atStart, range) {
        if (atStart === void 0) { atStart = false; }
        var newRange = null;
        if (range) {
            newRange = range.cloneRange();
            newRange.collapse(atStart);
        }
        var marker = this.j.createInside.span();
        marker.id =
            consts.MARKER_CLASS +
                '_' +
                Number(new Date()) +
                '_' +
                String(Math.random()).slice(2);
        marker.style.lineHeight = '0';
        marker.style.display = 'none';
        dom_1.Dom.markTemporary(marker);
        (0, helpers_1.attr)(marker, 'data-' + consts.MARKER_CLASS, atStart ? 'start' : 'end');
        marker.appendChild(this.j.createInside.text(consts.INVISIBLE_SPACE));
        if (newRange) {
            if (dom_1.Dom.isOrContains(this.area, atStart ? newRange.startContainer : newRange.endContainer)) {
                newRange.insertNode(marker);
            }
        }
        return marker;
    };
    Select.prototype.restore = function () {
        var range = false;
        var markAttr = function (start) {
            return "span[data-".concat(consts.MARKER_CLASS, "=").concat(start ? 'start' : 'end', "]");
        };
        var start = this.area.querySelector(markAttr(true)), end = this.area.querySelector(markAttr(false));
        if (!start) {
            return;
        }
        range = this.createRange();
        if (!end) {
            var previousNode = start.previousSibling;
            if (dom_1.Dom.isText(previousNode)) {
                range.setStart(previousNode, previousNode.nodeValue ? previousNode.nodeValue.length : 0);
            }
            else {
                range.setStartBefore(start);
            }
            dom_1.Dom.safeRemove(start);
            range.collapse(true);
        }
        else {
            range.setStartAfter(start);
            dom_1.Dom.safeRemove(start);
            range.setEndBefore(end);
            dom_1.Dom.safeRemove(end);
        }
        if (range) {
            this.selectRange(range);
        }
    };
    Select.prototype.save = function (silent) {
        if (silent === void 0) { silent = false; }
        if (this.hasMarkers) {
            return [];
        }
        var sel = this.sel;
        if (!sel || !sel.rangeCount) {
            return [];
        }
        var info = [], length = sel.rangeCount, ranges = [];
        for (var i = 0; i < length; i += 1) {
            ranges[i] = sel.getRangeAt(i);
            if (ranges[i].collapsed) {
                var start = this.marker(true, ranges[i]);
                info[i] = {
                    startId: start.id,
                    collapsed: true,
                    startMarker: start.outerHTML
                };
            }
            else {
                var start = this.marker(true, ranges[i]);
                var end = this.marker(false, ranges[i]);
                info[i] = {
                    startId: start.id,
                    endId: end.id,
                    collapsed: false,
                    startMarker: start.outerHTML,
                    endMarker: end.outerHTML
                };
            }
        }
        if (!silent) {
            sel.removeAllRanges();
            for (var i = length - 1; i >= 0; --i) {
                var startElm = this.doc.getElementById(info[i].startId);
                if (startElm) {
                    if (info[i].collapsed) {
                        ranges[i].setStartAfter(startElm);
                        ranges[i].collapse(true);
                    }
                    else {
                        ranges[i].setStartBefore(startElm);
                        if (info[i].endId) {
                            var endElm = this.doc.getElementById(info[i].endId);
                            if (endElm) {
                                ranges[i].setEndAfter(endElm);
                            }
                        }
                    }
                }
                try {
                    sel.addRange(ranges[i].cloneRange());
                }
                catch (_a) { }
            }
        }
        return info;
    };
    Select.prototype.focus = function (options) {
        var _a, _b;
        if (options === void 0) { options = {
            preventScroll: true
        }; }
        if (!this.isFocused()) {
            var scrollParent = (0, helpers_1.getScrollParent)(this.j.container), scrollTop = scrollParent === null || scrollParent === void 0 ? void 0 : scrollParent.scrollTop;
            if (this.j.iframe) {
                if (this.doc.readyState === 'complete') {
                    this.j.iframe.focus(options);
                }
            }
            this.win.focus();
            this.area.focus(options);
            if (scrollTop && (scrollParent === null || scrollParent === void 0 ? void 0 : scrollParent.scrollTo)) {
                scrollParent.scrollTo(0, scrollTop);
            }
            var sel = this.sel, range = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) ? sel === null || sel === void 0 ? void 0 : sel.getRangeAt(0) : null;
            if (!range || !dom_1.Dom.isOrContains(this.area, range.startContainer)) {
                var range_1 = this.createRange();
                range_1.setStart(this.area, 0);
                range_1.collapse(true);
                this.selectRange(range_1, false);
            }
            if (!this.j.editorIsActive) {
                (_b = (_a = this.j) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.fire('focus');
            }
            return true;
        }
        return false;
    };
    Select.prototype.isCollapsed = function () {
        var sel = this.sel;
        for (var r = 0; sel && r < sel.rangeCount; r += 1) {
            if (!sel.getRangeAt(r).collapsed) {
                return false;
            }
        }
        return true;
    };
    Select.prototype.isFocused = function () {
        return (this.doc.hasFocus &&
            this.doc.hasFocus() &&
            this.area === this.doc.activeElement);
    };
    Select.prototype.current = function (checkChild) {
        if (checkChild === void 0) { checkChild = true; }
        if (this.j.getRealMode() === consts.MODE_WYSIWYG) {
            var sel = this.sel;
            if (!sel || sel.rangeCount === 0) {
                return null;
            }
            var range = sel.getRangeAt(0);
            var node = range.startContainer, rightMode_1 = false;
            var child = function (nd) {
                return rightMode_1 ? nd.lastChild : nd.firstChild;
            };
            if (dom_1.Dom.isTag(node, 'br') && sel.isCollapsed) {
                return node;
            }
            if (!dom_1.Dom.isText(node)) {
                node = range.startContainer.childNodes[range.startOffset];
                if (!node) {
                    node =
                        range.startContainer.childNodes[range.startOffset - 1];
                    rightMode_1 = true;
                }
                if (node && sel.isCollapsed && !dom_1.Dom.isText(node)) {
                    if (!rightMode_1 && dom_1.Dom.isText(node.previousSibling)) {
                        node = node.previousSibling;
                    }
                    else if (checkChild) {
                        var current = child(node);
                        while (current) {
                            if (current && dom_1.Dom.isText(current)) {
                                node = current;
                                break;
                            }
                            current = child(current);
                        }
                    }
                }
                if (node && !sel.isCollapsed && !dom_1.Dom.isText(node)) {
                    var leftChild = node, rightChild = node;
                    do {
                        leftChild = leftChild.firstChild;
                        rightChild = rightChild.lastChild;
                    } while (leftChild && rightChild && !dom_1.Dom.isText(leftChild));
                    if (leftChild === rightChild &&
                        leftChild &&
                        dom_1.Dom.isText(leftChild)) {
                        node = leftChild;
                    }
                }
            }
            if (node && dom_1.Dom.isOrContains(this.area, node)) {
                return node;
            }
        }
        return null;
    };
    Select.prototype.insertNode = function (node, insertCursorAfter, fireChange) {
        var _this = this;
        if (insertCursorAfter === void 0) { insertCursorAfter = true; }
        if (fireChange === void 0) { fireChange = true; }
        this.errorNode(node);
        this.j.e.fire('safeHTML', node);
        if (!this.isFocused() && this.j.isEditorMode()) {
            this.focus();
            this.restore();
        }
        var sel = this.sel;
        this.j.history.snapshot.transaction(function () {
            var _a;
            if (!_this.isCollapsed()) {
                _this.j.execCommand('Delete');
            }
            _this.j.e.fire('beforeInsertNode', node);
            if (sel && sel.rangeCount) {
                var range = sel.getRangeAt(0);
                if (dom_1.Dom.isOrContains(_this.area, range.commonAncestorContainer)) {
                    if (dom_1.Dom.isTag(range.startContainer, constants_1.INSEPARABLE_TAGS) &&
                        range.collapsed) {
                        (_a = range.startContainer.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(node, range.startContainer);
                    }
                    else {
                        dom_1.Dom.safeInsertNode(range, node);
                    }
                }
                else {
                    _this.area.appendChild(node);
                }
            }
            else {
                _this.area.appendChild(node);
            }
            if (insertCursorAfter) {
                if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
                    node.lastChild && _this.setCursorAfter(node.lastChild);
                }
                else {
                    _this.setCursorAfter(node);
                }
            }
        });
        if (fireChange && this.j.events) {
            this.j.__imdSynchronizeValues();
        }
        if (this.j.events) {
            this.j.e.fire('afterInsertNode', node);
        }
    };
    Select.prototype.insertHTML = function (html, insertCursorAfter) {
        if (insertCursorAfter === void 0) { insertCursorAfter = true; }
        if (html === '') {
            return;
        }
        var node = this.j.createInside.div(), fragment = this.j.createInside.fragment();
        var lastChild;
        if (!this.isFocused() && this.j.isEditorMode()) {
            this.focus();
            this.restore();
        }
        if (!dom_1.Dom.isNode(html)) {
            node.innerHTML = html.toString();
        }
        else {
            node.appendChild(html);
        }
        if (!this.j.isEditorMode() &&
            this.j.e.fire('insertHTML', node.innerHTML) === false) {
            return;
        }
        lastChild = node.lastChild;
        if (!lastChild) {
            return;
        }
        while (node.firstChild) {
            lastChild = node.firstChild;
            fragment.appendChild(node.firstChild);
        }
        this.insertNode(fragment.firstChild && fragment.firstChild === fragment.lastChild
            ? fragment.lastChild
            : fragment, false, false);
        if (insertCursorAfter) {
            if (lastChild) {
                this.setCursorAfter(lastChild);
            }
            else {
                this.setCursorIn(fragment);
            }
        }
        this.j.__imdSynchronizeValues();
    };
    Select.prototype.insertImage = function (url, styles, defaultWidth) {
        if (styles === void 0) { styles = null; }
        if (defaultWidth === void 0) { defaultWidth = null; }
        var image = (0, checker_1.isString)(url) ? this.j.createInside.element('img') : url;
        if ((0, checker_1.isString)(url)) {
            image.setAttribute('src', url);
        }
        if (defaultWidth != null) {
            var dw = defaultWidth.toString();
            if (dw &&
                'auto' !== dw &&
                String(dw).indexOf('px') < 0 &&
                String(dw).indexOf('%') < 0) {
                dw += 'px';
            }
            (0, helpers_1.call)(this.j.o.resizer.forImageChangeAttributes ? helpers_1.attr : helpers_1.css, image, 'width', dw);
        }
        if (styles && typeof styles === 'object') {
            (0, helpers_1.css)(image, styles);
        }
        var onload = function () {
            if (image.naturalHeight < image.offsetHeight ||
                image.naturalWidth < image.offsetWidth) {
                image.style.width = '';
                image.style.height = '';
            }
            image.removeEventListener('load', onload);
        };
        this.j.e.on(image, 'load', onload);
        if (image.complete) {
            onload();
        }
        this.insertNode(image);
        this.j.e.fire('afterInsertImage', image);
    };
    Select.prototype.eachSelection = function (callback) {
        var _this = this;
        var _a;
        var sel = this.sel;
        if (sel && sel.rangeCount) {
            var range = sel.getRangeAt(0);
            var root_1 = range.commonAncestorContainer;
            if (!dom_1.Dom.isHTMLElement(root_1)) {
                root_1 = root_1.parentElement;
            }
            var nodes_1 = [], startOffset = range.startOffset, length = root_1.childNodes.length, elementOffset = startOffset < length ? startOffset : length - 1;
            var start = range.startContainer === this.area
                ? root_1.childNodes[elementOffset]
                : range.startContainer, end_1 = range.endContainer === this.area
                ? root_1.childNodes[range.endOffset - 1]
                : range.endContainer;
            if (dom_1.Dom.isText(start) &&
                start === range.startContainer &&
                range.startOffset === ((_a = start.nodeValue) === null || _a === void 0 ? void 0 : _a.length) &&
                start.nextSibling) {
                start = start.nextSibling;
            }
            if (dom_1.Dom.isText(end_1) &&
                end_1 === range.endContainer &&
                range.endOffset === 0 &&
                end_1.previousSibling) {
                end_1 = end_1.previousSibling;
            }
            var checkElm_1 = function (node) {
                if (node &&
                    node !== root_1 &&
                    !dom_1.Dom.isEmptyTextNode(node) &&
                    !(0, checker_1.isMarker)(node)) {
                    nodes_1.push(node);
                }
            };
            checkElm_1(start);
            if (start !== end_1 && dom_1.Dom.isOrContains(root_1, start, true)) {
                dom_1.Dom.find(start, function (node) {
                    checkElm_1(node);
                    return (node === end_1 ||
                        (node && node.contains && node.contains(end_1)));
                }, root_1, true, false);
            }
            var forEvery_1 = function (current) {
                if (!dom_1.Dom.isOrContains(_this.j.editor, current, true)) {
                    return;
                }
                if (current.nodeName.match(/^(UL|OL)$/)) {
                    return (0, helpers_1.toArray)(current.childNodes).forEach(forEvery_1);
                }
                if (dom_1.Dom.isTag(current, 'li')) {
                    if (current.firstChild) {
                        current = current.firstChild;
                    }
                    else {
                        var currentB = _this.j.createInside.text(constants_1.INVISIBLE_SPACE);
                        current.appendChild(currentB);
                        current = currentB;
                    }
                }
                callback(current);
            };
            if (nodes_1.length === 0 && dom_1.Dom.isEmptyTextNode(start)) {
                nodes_1.push(start);
            }
            if (nodes_1.length === 0 && start.firstChild) {
                nodes_1.push(start.firstChild);
            }
            nodes_1.forEach(forEvery_1);
        }
    };
    Select.prototype.cursorInTheEdge = function (start, parentBlock, fake) {
        var _this = this;
        var _a, _b;
        if (fake === void 0) { fake = null; }
        var end = !start, range = (_a = this.sel) === null || _a === void 0 ? void 0 : _a.getRangeAt(0);
        fake !== null && fake !== void 0 ? fake : (fake = this.current(false));
        if (!range || !fake || !dom_1.Dom.isOrContains(parentBlock, fake, true)) {
            return null;
        }
        var container = start ? range.startContainer : range.endContainer;
        var offset = start ? range.startOffset : range.endOffset;
        var isSignificant = function (elm) {
            return Boolean(elm &&
                !dom_1.Dom.isTag(elm, 'br') &&
                !dom_1.Dom.isEmptyTextNode(elm) &&
                !dom_1.Dom.isTemporary(elm) &&
                !(dom_1.Dom.isElement(elm) &&
                    _this.j.e.fire('isInvisibleForCursor', elm) === true));
        };
        if (dom_1.Dom.isText(container)) {
            var text = ((_b = container.nodeValue) === null || _b === void 0 ? void 0 : _b.length) ? container.nodeValue : '';
            if (end && text.replace((0, constants_1.INVISIBLE_SPACE_REG_EXP_END)(), '').length > offset) {
                return false;
            }
            var inv = (0, constants_1.INVISIBLE_SPACE_REG_EXP_START)().exec(text);
            if (start &&
                ((inv && inv[0].length < offset) || (!inv && offset > 0))) {
                return false;
            }
        }
        else {
            var children = (0, helpers_1.toArray)(container.childNodes);
            if (end) {
                if (children.slice(offset).some(isSignificant)) {
                    return false;
                }
            }
            else {
                if (children.slice(0, offset).some(isSignificant)) {
                    return false;
                }
            }
        }
        var next = fake;
        while (next && next !== parentBlock) {
            var nextOne = dom_1.Dom.sibling(next, start);
            if (!nextOne) {
                next = next.parentNode;
                continue;
            }
            next = nextOne;
            if (next && isSignificant(next)) {
                return false;
            }
        }
        return true;
    };
    Select.prototype.cursorOnTheLeft = function (parentBlock, fake) {
        return this.cursorInTheEdge(true, parentBlock, fake);
    };
    Select.prototype.cursorOnTheRight = function (parentBlock, fake) {
        return this.cursorInTheEdge(false, parentBlock, fake);
    };
    Select.prototype.setCursorAfter = function (node) {
        return this.setCursorNearWith(node, false);
    };
    Select.prototype.setCursorBefore = function (node) {
        return this.setCursorNearWith(node, true);
    };
    Select.prototype.setCursorNearWith = function (node, inStart) {
        var _this = this;
        var _a, _b;
        this.errorNode(node);
        if (!dom_1.Dom.up(node, function (elm) {
            return elm === _this.area || (elm && elm.parentNode === _this.area);
        }, this.area)) {
            throw (0, helpers_1.error)('Node element must be in editor');
        }
        var range = this.createRange();
        var fakeNode = null;
        if (!dom_1.Dom.isText(node)) {
            fakeNode = this.j.createInside.text(consts.INVISIBLE_SPACE);
            inStart ? range.setStartBefore(node) : range.setEndAfter(node);
            range.collapse(inStart);
            dom_1.Dom.safeInsertNode(range, fakeNode);
            range.selectNode(fakeNode);
        }
        else {
            if (inStart) {
                range.setStart(node, 0);
            }
            else {
                range.setEnd(node, (_b = (_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
            }
        }
        range.collapse(inStart);
        this.selectRange(range);
        return fakeNode;
    };
    Select.prototype.setCursorIn = function (node, inStart) {
        var _this = this;
        if (inStart === void 0) { inStart = false; }
        this.errorNode(node);
        if (!dom_1.Dom.up(node, function (elm) {
            return elm === _this.area || (elm && elm.parentNode === _this.area);
        }, this.area)) {
            throw (0, helpers_1.error)('Node element must be in editor');
        }
        var range = this.createRange();
        var start = node, last = node;
        do {
            if (dom_1.Dom.isText(start)) {
                break;
            }
            last = start;
            start = inStart ? start.firstChild : start.lastChild;
        } while (start);
        if (!start) {
            var fakeNode = this.j.createInside.text(consts.INVISIBLE_SPACE);
            if (!/^(img|br|input)$/i.test(last.nodeName)) {
                last.appendChild(fakeNode);
                last = fakeNode;
            }
            else {
                start = last;
            }
        }
        range.selectNodeContents(start || last);
        range.collapse(inStart);
        this.selectRange(range);
        return last;
    };
    Select.prototype.selectRange = function (range, focus) {
        if (focus === void 0) { focus = true; }
        var sel = this.sel;
        if (focus && !this.isFocused()) {
            this.focus();
        }
        if (sel) {
            sel.removeAllRanges();
            sel.addRange(range);
        }
        this.j.e.fire('changeSelection');
        return this;
    };
    Select.prototype.select = function (node, inward) {
        var _this = this;
        if (inward === void 0) { inward = false; }
        this.errorNode(node);
        if (!dom_1.Dom.up(node, function (elm) {
            return elm === _this.area || (elm && elm.parentNode === _this.area);
        }, this.area)) {
            throw (0, helpers_1.error)('Node element must be in editor');
        }
        var range = this.createRange();
        range[inward ? 'selectNodeContents' : 'selectNode'](node);
        return this.selectRange(range);
    };
    Object.defineProperty(Select.prototype, "html", {
        get: function () {
            var sel = this.sel;
            if (sel && sel.rangeCount > 0) {
                var range = sel.getRangeAt(0);
                var clonedSelection = range.cloneContents();
                var div = this.j.createInside.div();
                div.appendChild(clonedSelection);
                return div.innerHTML;
            }
            return '';
        },
        enumerable: false,
        configurable: true
    });
    Select.prototype.wrapInTagGen = function () {
        var font, _a, marker, font, elms, elms_1, elms_1_1, font, firstChild, lastChild, e_1_1;
        var e_1, _b;
        return tslib_1.__generator(this, function (_c) {
            switch (_c.label) {
                case 0:
                    if (!this.isCollapsed()) return [3, 2];
                    font = this.jodit.createInside.element('font', constants_1.INVISIBLE_SPACE);
                    this.insertNode(font, false, false);
                    _a = tslib_1.__read(this.markers, 1), marker = _a[0];
                    if (marker) {
                        font.appendChild(marker);
                    }
                    else {
                        this.setCursorIn(font);
                        this.save();
                    }
                    return [4, font];
                case 1:
                    _c.sent();
                    dom_1.Dom.unwrap(font);
                    return [2];
                case 2:
                    (0, helpers_1.$$)('*[style*=font-size]', this.area).forEach(function (elm) {
                        (0, helpers_1.attr)(elm, 'data-font-size', elm.style.fontSize.toString());
                        elm.style.removeProperty('font-size');
                    });
                    if (!this.isCollapsed()) {
                        this.j.nativeExecCommand('fontsize', false, '7');
                    }
                    else {
                        font = this.j.createInside.element('font');
                        (0, helpers_1.attr)(font, 'size', 7);
                        this.insertNode(font, false, false);
                    }
                    (0, helpers_1.$$)('*[data-font-size]', this.area).forEach(function (elm) {
                        var fontSize = (0, helpers_1.attr)(elm, 'data-font-size');
                        if (fontSize) {
                            elm.style.fontSize = fontSize;
                            (0, helpers_1.attr)(elm, 'data-font-size', null);
                        }
                    });
                    elms = (0, helpers_1.$$)('font[size="7"]', this.area);
                    _c.label = 3;
                case 3:
                    _c.trys.push([3, 8, 9, 10]);
                    elms_1 = tslib_1.__values(elms), elms_1_1 = elms_1.next();
                    _c.label = 4;
                case 4:
                    if (!!elms_1_1.done) return [3, 7];
                    font = elms_1_1.value;
                    firstChild = font.firstChild, lastChild = font.lastChild;
                    if (firstChild &&
                        firstChild === lastChild &&
                        (0, checker_1.isMarker)(firstChild)) {
                        dom_1.Dom.unwrap(font);
                        return [3, 6];
                    }
                    if (firstChild && (0, checker_1.isMarker)(firstChild)) {
                        dom_1.Dom.before(font, firstChild);
                    }
                    if (lastChild && (0, checker_1.isMarker)(lastChild)) {
                        dom_1.Dom.after(font, lastChild);
                    }
                    return [4, font];
                case 5:
                    _c.sent();
                    dom_1.Dom.unwrap(font);
                    _c.label = 6;
                case 6:
                    elms_1_1 = elms_1.next();
                    return [3, 4];
                case 7: return [3, 10];
                case 8:
                    e_1_1 = _c.sent();
                    e_1 = { error: e_1_1 };
                    return [3, 10];
                case 9:
                    try {
                        if (elms_1_1 && !elms_1_1.done && (_b = elms_1.return)) _b.call(elms_1);
                    }
                    finally { if (e_1) throw e_1.error; }
                    return [7];
                case 10: return [2];
            }
        });
    };
    Select.prototype.wrapInTag = function (tagOrCallback) {
        var e_2, _a;
        var result = [];
        try {
            for (var _b = tslib_1.__values(this.wrapInTagGen()), _c = _b.next(); !_c.done; _c = _b.next()) {
                var font = _c.value;
                try {
                    if (font.firstChild &&
                        font.firstChild === font.lastChild &&
                        (0, checker_1.isMarker)(font.firstChild)) {
                        continue;
                    }
                    if ((0, checker_1.isFunction)(tagOrCallback)) {
                        tagOrCallback(font);
                    }
                    else {
                        result.push(dom_1.Dom.replace(font, tagOrCallback, this.j.createInside));
                    }
                }
                finally {
                    var pn = font.parentNode;
                    if (pn) {
                        dom_1.Dom.unwrap(font);
                        if (dom_1.Dom.isEmpty(pn)) {
                            dom_1.Dom.unwrap(pn);
                        }
                    }
                }
            }
        }
        catch (e_2_1) { e_2 = { error: e_2_1 }; }
        finally {
            try {
                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
            }
            finally { if (e_2) throw e_2.error; }
        }
        return result;
    };
    Select.prototype.commitStyle = function (options) {
        void 0;
        var styleElm = new commit_style_1.CommitStyle(options);
        styleElm.apply(this.j);
    };
    Select.prototype.applyStyle = function (style, options) {
        if (options === void 0) { options = {}; }
        this.commitStyle(tslib_1.__assign({ style: style }, options));
    };
    Select.prototype.splitSelection = function (currentBox, edge) {
        if (!this.isCollapsed()) {
            return null;
        }
        var leftRange = this.createRange();
        var range = this.range;
        leftRange.setStartBefore(currentBox);
        var cursorOnTheRight = this.cursorOnTheRight(currentBox, edge);
        var cursorOnTheLeft = this.cursorOnTheLeft(currentBox, edge);
        var br = this.j.createInside.element('br'), prevFake = this.j.createInside.fake(), nextFake = prevFake.cloneNode();
        try {
            if (cursorOnTheRight || cursorOnTheLeft) {
                if (edge) {
                    dom_1.Dom.before(edge, br);
                }
                else {
                    dom_1.Dom.safeInsertNode(range, br);
                }
                var clearBR = function (start, getNext) {
                    var next = getNext(start);
                    while (next) {
                        var nextSib = getNext(next);
                        if (next &&
                            (dom_1.Dom.isTag(next, 'br') || dom_1.Dom.isEmptyTextNode(next))) {
                            dom_1.Dom.safeRemove(next);
                        }
                        else {
                            break;
                        }
                        next = nextSib;
                    }
                };
                clearBR(br, function (n) { return n.nextSibling; });
                clearBR(br, function (n) { return n.previousSibling; });
                dom_1.Dom.after(br, nextFake);
                dom_1.Dom.before(br, prevFake);
                if (cursorOnTheRight) {
                    leftRange.setEndBefore(br);
                    range.setEndBefore(br);
                }
                else {
                    leftRange.setEndAfter(br);
                    range.setEndAfter(br);
                }
            }
            else {
                leftRange.setEnd(range.startContainer, range.startOffset);
            }
            var fragment = leftRange.extractContents();
            var clearEmpties = function (node) {
                return dom_1.Dom.each(node, function (node) { return dom_1.Dom.isEmptyTextNode(node) && dom_1.Dom.safeRemove(node); });
            };
            void 0;
            try {
                clearEmpties(fragment);
                clearEmpties(currentBox);
                currentBox.parentNode.insertBefore(fragment, currentBox);
                if (!edge && cursorOnTheRight && (br === null || br === void 0 ? void 0 : br.parentNode)) {
                    var range_2 = this.createRange();
                    range_2.setStartBefore(br);
                    this.selectRange(range_2);
                }
            }
            catch (e) {
                if (false) // removed by dead control flow
{}
            }
            var fillFakeParent = function (fake) {
                var _a, _b, _c;
                if (((_a = fake === null || fake === void 0 ? void 0 : fake.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === ((_b = fake === null || fake === void 0 ? void 0 : fake.parentNode) === null || _b === void 0 ? void 0 : _b.lastChild)) {
                    (_c = fake === null || fake === void 0 ? void 0 : fake.parentNode) === null || _c === void 0 ? void 0 : _c.appendChild(br.cloneNode());
                }
            };
            fillFakeParent(prevFake);
            fillFakeParent(nextFake);
        }
        finally {
            dom_1.Dom.safeRemove(prevFake);
            dom_1.Dom.safeRemove(nextFake);
        }
        return currentBox.previousElementSibling;
    };
    Select.prototype.expandSelection = function () {
        var _this = this;
        if (this.isCollapsed()) {
            return this;
        }
        var range = this.range, c = range.cloneRange();
        if (!dom_1.Dom.isOrContains(this.j.editor, range.commonAncestorContainer, true)) {
            return this;
        }
        var moveMaxEdgeFake = function (start) {
            var fake = _this.j.createInside.fake();
            var r = range.cloneRange();
            r.collapse(start);
            dom_1.Dom.safeInsertNode(r, fake);
            (0, helpers_2.moveTheNodeAlongTheEdgeOutward)(fake, start, _this.j.editor);
            return fake;
        };
        var leftFake = moveMaxEdgeFake(true);
        var rightFake = moveMaxEdgeFake(false);
        c.setStartAfter(leftFake);
        c.setEndBefore(rightFake);
        var leftBox = dom_1.Dom.findSibling(leftFake, false);
        var rightBox = dom_1.Dom.findSibling(rightFake, true);
        if (leftBox !== rightBox) {
            var rightInsideLeft = dom_1.Dom.isElement(leftBox) &&
                dom_1.Dom.isOrContains(leftBox, rightFake), leftInsideRight = !rightInsideLeft &&
                dom_1.Dom.isElement(rightBox) &&
                dom_1.Dom.isOrContains(rightBox, leftFake);
            if (rightInsideLeft || leftInsideRight) {
                var child = (rightInsideLeft ? leftBox : rightBox), container = child;
                while (dom_1.Dom.isElement(child)) {
                    child = rightInsideLeft
                        ? child.firstElementChild
                        : child.lastElementChild;
                    if (child) {
                        var isInside = rightInsideLeft
                            ? dom_1.Dom.isOrContains(child, rightFake)
                            : dom_1.Dom.isOrContains(child, leftFake);
                        if (isInside) {
                            container = child;
                        }
                    }
                }
                if (rightInsideLeft) {
                    c.setStart(container, 0);
                }
                else {
                    c.setEnd(container, container.childNodes.length);
                }
            }
        }
        this.selectRange(c);
        dom_1.Dom.safeRemove(leftFake, rightFake);
        return this;
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], Select.prototype, "createRange", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Select.prototype, "focus", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Select.prototype, "setCursorAfter", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Select.prototype, "setCursorBefore", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Select.prototype, "setCursorIn", null);
    return Select;
}());
exports.Select = Select;


/***/ }),

/***/ 77846:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_573802__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.extractSelectedPart = void 0;
var utils_1 = __nested_webpack_require_573802__(67309);
var trim_1 = __nested_webpack_require_573802__(33941);
var dom_1 = __nested_webpack_require_573802__(24263);
var is_marker_1 = __nested_webpack_require_573802__(37204);
function extractSelectedPart(wrapper, font, jodit) {
    var range = jodit.s.createRange();
    var leftEdge = (0, is_marker_1.isMarker)(font.previousSibling)
        ? font.previousSibling
        : font;
    range.setStartBefore(wrapper);
    range.setEndBefore(leftEdge);
    extractAndMove(wrapper, range, true);
    var rightEdge = (0, is_marker_1.isMarker)(font.nextSibling) ? font.nextSibling : font;
    range.setStartAfter(rightEdge);
    range.setEndAfter(wrapper);
    extractAndMove(wrapper, range, false);
}
exports.extractSelectedPart = extractSelectedPart;
function extractAndMove(wrapper, range, left) {
    var fragment = range.extractContents();
    if ((!fragment.textContent || !(0, trim_1.trim)(fragment.textContent).length) &&
        fragment.firstChild) {
        dom_1.Dom.unwrap(fragment.firstChild);
    }
    if (wrapper.parentNode) {
        (0, utils_1.call)(left ? dom_1.Dom.before : dom_1.Dom.after, wrapper, fragment);
    }
}


/***/ }),

/***/ 95901:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_575370__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.FiniteStateMachine = void 0;
var is_string_1 = __nested_webpack_require_575370__(24421);
var assert_1 = __nested_webpack_require_575370__(603);
var FiniteStateMachine = (function () {
    function FiniteStateMachine(state, transitions) {
        this.transitions = transitions;
        this.silent = true;
        this.__previewsStates = new Set();
        this.setState(state);
    }
    FiniteStateMachine.prototype.setState = function (state) {
        void 0;
        this.__previewsStates.add(state);
        this.__state = state;
    };
    FiniteStateMachine.prototype.getState = function () {
        return this.__state;
    };
    FiniteStateMachine.prototype.disableSilent = function () {
        this.silent = false;
    };
    FiniteStateMachine.prototype.dispatch = function (actionName, value) {
        var action = this.transitions[this.getState()][actionName];
        if (action) {
            var res = action.call(this, value);
            void 0;
            void 0;
            void 0;
            this.setState(res.next);
            if (false) // removed by dead control flow
{}
            return res;
        }
        throw new Error("invalid action: ".concat(this.getState(), ".").concat(actionName.toString()));
    };
    return FiniteStateMachine;
}());
exports.FiniteStateMachine = FiniteStateMachine;


/***/ }),

/***/ 65774:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_577054__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getSuitChild = void 0;
var dom_1 = __nested_webpack_require_577054__(24263);
var is_normal_node_1 = __nested_webpack_require_577054__(63150);
var is_suit_element_1 = __nested_webpack_require_577054__(74477);
function getSuitChild(style, font) {
    var child = font.firstChild;
    while (child && !(0, is_normal_node_1.isNormalNode)(child)) {
        child = child.nextSibling;
        if (!child) {
            return null;
        }
    }
    if (child &&
        !dom_1.Dom.next(child, is_normal_node_1.isNormalNode, font) &&
        (0, is_suit_element_1.isSuitElement)(style, child, false)) {
        return child;
    }
    return null;
}
exports.getSuitChild = getSuitChild;


/***/ }),

/***/ 66277:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_578104__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getSuitParent = void 0;
var dom_1 = __nested_webpack_require_578104__(24263);
var is_normal_node_1 = __nested_webpack_require_578104__(63150);
var is_suit_element_1 = __nested_webpack_require_578104__(74477);
function getSuitParent(style, node, root) {
    var parentNode = node.parentNode;
    if (parentNode === root ||
        !dom_1.Dom.isHTMLElement(parentNode) ||
        dom_1.Dom.next(node, is_normal_node_1.isNormalNode, parentNode) ||
        dom_1.Dom.prev(node, is_normal_node_1.isNormalNode, parentNode)) {
        return null;
    }
    if (style.isElementCommit &&
        style.elementIsBlock &&
        !dom_1.Dom.isBlock(parentNode)) {
        return getSuitParent(style, parentNode, root);
    }
    if ((0, is_suit_element_1.isSuitElement)(style, parentNode, false) &&
        (!dom_1.Dom.isBlock(parentNode) || style.elementIsBlock)) {
        return parentNode;
    }
    if (style.isElementCommit && !dom_1.Dom.isBlock(parentNode)) {
        return getSuitParent(style, parentNode, root);
    }
    return null;
}
exports.getSuitParent = getSuitParent;


/***/ }),

/***/ 18387:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_579547__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasSameStyleKeys = exports.hasSameStyle = void 0;
var css_1 = __nested_webpack_require_579547__(26911);
var is_void_1 = __nested_webpack_require_579547__(24021);
var normalize_css_value_1 = __nested_webpack_require_579547__(49353);
var dom_1 = __nested_webpack_require_579547__(24263);
var assert_1 = __nested_webpack_require_579547__(52378);
function hasSameStyle(elm, rules) {
    return Boolean(!dom_1.Dom.isTag(elm, 'font') &&
        dom_1.Dom.isHTMLElement(elm) &&
        Object.keys(rules).every(function (property) {
            var value = (0, css_1.css)(elm, property, true);
            if (value === '' &&
                (rules[property] === '' || rules[property] == null)) {
                return true;
            }
            return (!(0, is_void_1.isVoid)(value) &&
                value !== '' &&
                !(0, is_void_1.isVoid)(rules[property]) &&
                (0, normalize_css_value_1.normalizeCssValue)(property, rules[property])
                    .toString()
                    .toLowerCase() === value.toString().toLowerCase());
        }));
}
exports.hasSameStyle = hasSameStyle;
var elm = document.createElement('div');
elm.style.color = 'red';
void 0;
void 0;
void 0;
function hasSameStyleKeys(elm, rules) {
    return Boolean(!dom_1.Dom.isTag(elm, 'font') &&
        dom_1.Dom.isHTMLElement(elm) &&
        Object.keys(rules).every(function (property) {
            var value = (0, css_1.css)(elm, property, true);
            return !(0, is_void_1.isVoid)(value);
        }));
}
exports.hasSameStyleKeys = hasSameStyleKeys;
void 0;
void 0;


/***/ }),

/***/ 66162:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_581471__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_581471__(20255);
tslib_1.__exportStar(__nested_webpack_require_581471__(93217), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(11651), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(29271), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(18387), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(77846), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(95901), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(65774), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(66277), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(76991), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(47508), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(63150), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(74477), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(26707), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(8298), exports);
tslib_1.__exportStar(__nested_webpack_require_581471__(6278), exports);


/***/ }),

/***/ 76991:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_582797__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isInsideInvisibleElement = void 0;
var dom_1 = __nested_webpack_require_582797__(24263);
function isInsideInvisibleElement(font, root) {
    return Boolean(dom_1.Dom.closest(font, ['style', 'script'], root));
}
exports.isInsideInvisibleElement = isInsideInvisibleElement;


/***/ }),

/***/ 63150:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_583464__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isNormalNode = void 0;
var dom_1 = __nested_webpack_require_583464__(24263);
var is_marker_1 = __nested_webpack_require_583464__(37204);
function isNormalNode(elm) {
    return Boolean(elm &&
        !dom_1.Dom.isEmptyTextNode(elm) &&
        !dom_1.Dom.isTemporary(elm) &&
        !(0, is_marker_1.isMarker)(elm));
}
exports.isNormalNode = isNormalNode;


/***/ }),

/***/ 47508:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_584200__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.elementsEqualAttributes = exports.isSameAttributes = void 0;
var utils_1 = __nested_webpack_require_584200__(76502);
var object_size_1 = __nested_webpack_require_584200__(16492);
var assert_1 = __nested_webpack_require_584200__(52378);
var has_same_style_1 = __nested_webpack_require_584200__(18387);
function isSameAttributes(elm, attrs) {
    if (!elm.attributes.length && !(0, object_size_1.size)(attrs)) {
        return true;
    }
    if (!(0, object_size_1.size)(attrs)) {
        return true;
    }
    void 0;
    return Object.keys(attrs).every(function (key) {
        if (key === 'class') {
            return elm.classList.contains(attrs[key]);
        }
        if (key === 'style') {
            return (0, has_same_style_1.hasSameStyle)(elm, attrs[key]);
        }
        return (0, utils_1.attr)(elm, key) === attrs[key];
    });
}
exports.isSameAttributes = isSameAttributes;
function elementsEqualAttributes(elm1, elm2) {
    return (elm1.attributes.length === elm2.attributes.length &&
        Array.from(elm1.attributes).every(function (attr) {
            return elm2.hasAttribute(attr.name) &&
                elm2.getAttribute(attr.name) === attr.value;
        }));
}
exports.elementsEqualAttributes = elementsEqualAttributes;


/***/ }),

/***/ 74477:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_585806__) {

"use strict";

Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isSameStyleChild = exports.findSuitClosest = exports.isSuitElement = void 0;
var dom_1 = __nested_webpack_require_585806__(24263);
var is_normal_node_1 = __nested_webpack_require_585806__(63150);
var has_same_style_1 = __nested_webpack_require_585806__(18387);
function isSuitElement(commitStyle, elm, strict) {
    var _a;
    if (!elm) {
        return false;
    }
    var element = commitStyle.element, elementIsDefault = commitStyle.elementIsDefault, options = commitStyle.options;
    var elmHasSameStyle = Boolean(((_a = options.attributes) === null || _a === void 0 ? void 0 : _a.style) &&
        (0, has_same_style_1.hasSameStyle)(elm, options.attributes.style));
    var elmIsSame = elm.nodeName.toLowerCase() === element ||
        (dom_1.Dom.isTag(elm, ['ul', 'ol']) && commitStyle.elementIsList);
    if (((!elementIsDefault || !strict) && elmIsSame) ||
        (elmHasSameStyle && (0, is_normal_node_1.isNormalNode)(elm) && !commitStyle.elementIsList)) {
        return true;
    }
    return Boolean(!elmIsSame && !strict && elementIsDefault && dom_1.Dom.isInlineBlock(elm));
}
exports.isSuitElement = isSuitElement;
function findSuitClosest(commitStyle, element, root) {
    return dom_1.Dom.closest(element, function (node) { return isSuitElement(commitStyle, node, true); }, root);
}
exports.findSuitClosest = findSuitClosest;
function isSameStyleChild(commitStyle, elm) {
    var _a, _b;
    var element = commitStyle.element, options = commitStyle.options;
    if (!elm || !(0, is_normal_node_1.isNormalNode)(elm)) {
        return false;
    }
    var elmIsSame = elm.nodeName.toLowerCase() === element;
    var elmHasSameStyle = Boolean(((_a = options.attributes) === null || _a === void 0 ? void 0 : _a.style) &&
        (0, has_same_style_1.hasSameStyleKeys)(elm, (_b = options.attributes) === null || _b === void 0 ? void 0 : _b.style));
    return elmIsSame && elmHasSameStyle;
}
exports.isSameStyleChild = isSameStyleChild;


/***/ }),

/***/ 11651:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_587904__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.toggleOrderedList = void 0;
var dom_1 = __nested_webpack_require_587904__(24263);
var assert_1 = __nested_webpack_require_587904__(52378);
var extract_1 = __nested_webpack_require_587904__(77846);
var commit_style_1 = __nested_webpack_require_587904__(70851);
var toggle_attributes_1 = __nested_webpack_require_587904__(93217);
var api_1 = __nested_webpack_require_587904__(66162);
function toggleOrderedList(commitStyle, li, jodit, mode) {
    if (!li) {
        return mode;
    }
    var list = li.parentElement;
    if (!list) {
        return mode;
    }
    var result = jodit.e.fire("".concat(commit_style_1._PREFIX, "BeforeToggleList"), mode, commitStyle, list);
    if (result !== undefined) {
        return result;
    }
    var hook = jodit.e.fire.bind(jodit.e, "".concat(commit_style_1._PREFIX, "AfterToggleList"));
    if (mode !== commit_style_1.UNWRAP) {
        var isChangeMode = (0, toggle_attributes_1.toggleAttributes)(commitStyle, li.parentElement, jodit, commit_style_1.INITIAL, true) === commit_style_1.CHANGE;
        if (mode === commit_style_1.REPLACE ||
            isChangeMode ||
            list.tagName.toLowerCase() !== commitStyle.element) {
            var wrapper_1 = unwrapList(commit_style_1.REPLACE, list, li, jodit, commitStyle);
            var newList = (0, api_1.wrapList)(commitStyle, wrapper_1, jodit);
            hook(commit_style_1.REPLACE, newList, commitStyle);
            return commit_style_1.REPLACE;
        }
    }
    var wrapper = unwrapList(commit_style_1.UNWRAP, list, li, jodit, commitStyle);
    hook(commit_style_1.UNWRAP, wrapper, commitStyle);
    return commit_style_1.UNWRAP;
}
exports.toggleOrderedList = toggleOrderedList;
function unwrapList(mode, list, li, jodit, cs) {
    var result = jodit.e.fire("".concat(commit_style_1._PREFIX, "BeforeUnwrapList"), mode, list, cs);
    if (result) {
        void 0;
        return result;
    }
    (0, extract_1.extractSelectedPart)(list, li, jodit);
    void 0;
    dom_1.Dom.unwrap(li.parentElement);
    return dom_1.Dom.replace(li, jodit.o.enter, jodit.createInside);
}


/***/ }),

/***/ 29271:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_590315__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.wrapList = void 0;
var dom_1 = __nested_webpack_require_590315__(64968);
var commit_style_1 = __nested_webpack_require_590315__(70851);
var api_1 = __nested_webpack_require_590315__(66162);
function wrapList(commitStyle, wrapper, jodit) {
    var result = jodit.e.fire("".concat(commit_style_1._PREFIX, "BeforeWrapList"), commit_style_1.REPLACE, wrapper, commitStyle);
    var newWrapper = result !== null && result !== void 0 ? result : dom_1.Dom.replace(wrapper, 'li', jodit.createInside);
    var prev = newWrapper.previousElementSibling;
    var next = newWrapper.nextElementSibling;
    var list = dom_1.Dom.isTag(prev, commitStyle.element) ? prev : null;
    list !== null && list !== void 0 ? list : (list = dom_1.Dom.isTag(next, commitStyle.element) ? next : null);
    if (!dom_1.Dom.isTag(list, ['ul', 'ol']) ||
        !(0, api_1.isSameAttributes)(list, commitStyle.options.attributes)) {
        list = jodit.createInside.element(commitStyle.element);
        (0, api_1.toggleAttributes)(commitStyle, list, jodit, commit_style_1.INITIAL);
        dom_1.Dom.before(newWrapper, list);
    }
    if (prev === list) {
        dom_1.Dom.append(list, newWrapper);
    }
    else {
        dom_1.Dom.prepend(list, newWrapper);
    }
    if (dom_1.Dom.isTag(list.nextElementSibling, commitStyle.element) &&
        (0, api_1.elementsEqualAttributes)(list, list.nextElementSibling)) {
        dom_1.Dom.append(list, Array.from(list.nextElementSibling.childNodes));
        dom_1.Dom.safeRemove(list.nextElementSibling);
    }
    jodit.e.fire("".concat(commit_style_1._PREFIX, "AfterWrapList"), commit_style_1.WRAP, list, commitStyle);
    return list;
}
exports.wrapList = wrapList;


/***/ }),

/***/ 93217:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_592369__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.toggleAttributes = void 0;
var utils_1 = __nested_webpack_require_592369__(76502);
var css_1 = __nested_webpack_require_592369__(26911);
var data_bind_1 = __nested_webpack_require_592369__(63122);
var kebab_case_1 = __nested_webpack_require_592369__(11278);
var normalize_css_value_1 = __nested_webpack_require_592369__(49353);
var object_size_1 = __nested_webpack_require_592369__(16492);
var dom_1 = __nested_webpack_require_592369__(24263);
var commit_style_1 = __nested_webpack_require_592369__(70851);
var global_1 = __nested_webpack_require_592369__(17332);
var checker_1 = __nested_webpack_require_592369__(10172);
var tak = 'toggleAttributes';
function toggleAttributes(commitStyle, elm, jodit, mode, dry) {
    if (dry === void 0) { dry = false; }
    if (!dry && commitStyle.isApplied(elm, tak)) {
        return mode;
    }
    !dry && commitStyle.setApplied(elm, tak);
    var attributes = commitStyle.options.attributes;
    if (attributes && (0, object_size_1.size)(attributes) > 0) {
        Object.keys(attributes).forEach(function (key) {
            var value = attributes[key];
            switch (key) {
                case 'style': {
                    mode = toggleStyle(commitStyle, jodit, value, elm, dry, mode);
                    break;
                }
                case 'class':
                    mode = toggleClass(jodit, value, elm, mode, dry);
                    break;
                default:
                    mode = toggleAttribute(jodit, value, elm, key, dry, mode);
            }
        });
    }
    return mode;
}
exports.toggleAttributes = toggleAttributes;
function toggleStyle(commitStyle, jodit, style, elm, dry, mode) {
    void 0;
    Object.keys(style).forEach(function (rule) {
        var inlineValue = elm.style.getPropertyValue((0, kebab_case_1.kebabCase)(rule));
        var newValue = style[rule];
        if (inlineValue === '' && newValue == null) {
            return;
        }
        if (getNativeCSSValue(jodit, elm, rule) ===
            (0, normalize_css_value_1.normalizeCssValue)(rule, newValue)) {
            if (!inlineValue) {
                return;
            }
            !dry && (0, css_1.css)(elm, rule, null);
            mode = commit_style_1.UNSET;
            mode = removeExtraStyleAttribute(commitStyle, elm, mode);
            return;
        }
        mode = commit_style_1.CHANGE;
        if (!dry) {
            (0, css_1.css)(elm, rule, newValue);
            mode = removeExtraStyleAttribute(commitStyle, elm, mode);
        }
    });
    return mode;
}
function toggleClass(jodit, value, elm, mode, dry) {
    void 0;
    var hook = jodit.e.fire.bind(jodit.e, "".concat(commit_style_1._PREFIX, "AfterToggleAttribute"));
    if (elm.classList.contains(value.toString())) {
        mode = commit_style_1.UNSET;
        if (!dry) {
            elm.classList.remove(value);
            if (elm.classList.length === 0) {
                (0, utils_1.attr)(elm, 'class', null);
                hook(mode, elm, 'class', null);
            }
        }
    }
    else {
        mode = commit_style_1.CHANGE;
        if (!dry) {
            elm.classList.add(value);
            hook(mode, elm, 'class', value);
        }
    }
    return mode;
}
function toggleAttribute(jodit, value, elm, key, dry, mode) {
    void 0;
    var hook = jodit.e.fire.bind(jodit.e, "".concat(commit_style_1._PREFIX, "AfterToggleAttribute"));
    if ((0, utils_1.attr)(elm, key) === value) {
        !dry && (0, utils_1.attr)(elm, key, null);
        mode = commit_style_1.UNSET;
        !dry && hook(mode, elm, key, value);
        return mode;
    }
    mode = commit_style_1.CHANGE;
    if (!dry) {
        (0, utils_1.attr)(elm, key, value);
        hook(mode, elm, key, value);
    }
    return mode;
}
function removeExtraStyleAttribute(commitStyle, elm, mode) {
    if (!(0, utils_1.attr)(elm, 'style')) {
        (0, utils_1.attr)(elm, 'style', null);
        if (elm.tagName.toLowerCase() === commitStyle.defaultTag) {
            dom_1.Dom.unwrap(elm);
            mode = commit_style_1.UNWRAP;
        }
    }
    return mode;
}
function getShadowRoot(jodit) {
    var _a;
    if ((0, data_bind_1.dataBind)(jodit, 'shadowRoot') !== undefined) {
        return (0, data_bind_1.dataBind)(jodit, 'shadowRoot');
    }
    var container = (0, global_1.getContainer)(jodit);
    var iframe = document.createElement('iframe');
    (0, css_1.css)(iframe, {
        width: 0,
        height: 0,
        position: 'absolute',
        border: 0
    });
    iframe.src = 'about:blank';
    container.appendChild(iframe);
    var doc = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document;
    var shadowRoot = !doc ? jodit.od.body : doc.body;
    (0, data_bind_1.dataBind)(jodit, 'shadowRoot', shadowRoot);
    return shadowRoot;
}
function getNativeCSSValue(jodit, elm, key) {
    var newElm = jodit.create.element(elm.tagName.toLowerCase());
    newElm.style.cssText = elm.style.cssText;
    var root = getShadowRoot(jodit);
    root.appendChild(newElm);
    var result = (0, css_1.css)(newElm, key);
    dom_1.Dom.safeRemove(newElm);
    return result;
}


/***/ }),

/***/ 26707:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_597788__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.unwrapChildren = void 0;
var dom_1 = __nested_webpack_require_597788__(24263);
var helpers_1 = __nested_webpack_require_597788__(40332);
var has_same_style_1 = __nested_webpack_require_597788__(18387);
var is_suit_element_1 = __nested_webpack_require_597788__(74477);
function unwrapChildren(style, font) {
    var _a;
    var needUnwrap = [];
    var needChangeStyle = [];
    var firstElementSuit;
    var cssStyle = (_a = style.options.attributes) === null || _a === void 0 ? void 0 : _a.style;
    if (font.firstChild) {
        var gen = dom_1.Dom.eachGen(font);
        var item = gen.next();
        var _loop_1 = function () {
            var elm = item.value;
            if ((0, is_suit_element_1.isSuitElement)(style, elm, true) &&
                (!cssStyle || (0, has_same_style_1.hasSameStyleKeys)(elm, cssStyle))) {
                if (firstElementSuit === undefined) {
                    firstElementSuit = true;
                }
                needUnwrap.push(elm);
            }
            else if (cssStyle && (0, is_suit_element_1.isSameStyleChild)(style, elm)) {
                if (firstElementSuit === undefined) {
                    firstElementSuit = false;
                }
                needChangeStyle.push(function () {
                    (0, helpers_1.css)(elm, Object.keys(cssStyle).reduce(function (acc, key) {
                        acc[key] = null;
                        return acc;
                    }, {}));
                    if (!(0, helpers_1.attr)(elm, 'style')) {
                        (0, helpers_1.attr)(elm, 'style', null);
                    }
                    if (!(0, helpers_1.attr)(elm, 'style') &&
                        elm.nodeName.toLowerCase() === style.element) {
                        needUnwrap.push(elm);
                    }
                });
            }
            else if (!dom_1.Dom.isEmptyTextNode(elm)) {
                if (firstElementSuit === undefined) {
                    firstElementSuit = false;
                }
            }
            item = gen.next();
        };
        while (!item.done) {
            _loop_1();
        }
    }
    needChangeStyle.forEach(function (clb) { return clb(); });
    needUnwrap.forEach(dom_1.Dom.unwrap);
    return Boolean(firstElementSuit);
}
exports.unwrapChildren = unwrapChildren;


/***/ }),

/***/ 6278:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_600467__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.wrapUnwrappedText = void 0;
var dom_1 = __nested_webpack_require_600467__(24263);
var is_marker_1 = __nested_webpack_require_600467__(37204);
function wrapUnwrappedText(style, elm, jodit) {
    var root = jodit.editor, ci = jodit.createInside, edge = function (n, key) {
        if (key === void 0) { key = 'previousSibling'; }
        var edgeNode = n, node = n;
        while (node && !(0, is_marker_1.isMarker)(node)) {
            if (dom_1.Dom.isTag(node, jodit.o.enter)) {
                break;
            }
            edgeNode = node;
            if (node[key]) {
                node = node[key];
            }
            else {
                node =
                    node.parentNode &&
                        !dom_1.Dom.isBlock(node.parentNode) &&
                        node.parentNode !== root
                        ? node.parentNode
                        : null;
            }
            if (dom_1.Dom.isBlock(node)) {
                break;
            }
        }
        return edgeNode;
    };
    var start = edge(elm), end = edge(elm, 'nextSibling');
    var range = jodit.s.createRange();
    range.setStartBefore(start);
    range.setEndAfter(end);
    var fragment = range.extractContents();
    var wrapper = ci.element(style.element);
    wrapper.appendChild(fragment);
    dom_1.Dom.safeInsertNode(range, wrapper);
    if (style.elementIsBlock) {
        if (dom_1.Dom.isEmpty(wrapper) &&
            !dom_1.Dom.isTag(wrapper.firstElementChild, 'br')) {
            wrapper.appendChild(ci.element('br'));
        }
    }
    return wrapper;
}
exports.wrapUnwrappedText = wrapUnwrappedText;


/***/ }),

/***/ 8298:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_602476__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.wrap = void 0;
var dom_1 = __nested_webpack_require_602476__(64968);
var wrap_unwrapped_text_1 = __nested_webpack_require_602476__(6278);
var utils_1 = __nested_webpack_require_602476__(67309);
var wrap_list_1 = __nested_webpack_require_602476__(29271);
function wrap(commitStyle, font, jodit) {
    var wrapper = findOrCreateWrapper(commitStyle, font, jodit);
    return commitStyle.elementIsList
        ? (0, wrap_list_1.wrapList)(commitStyle, wrapper, jodit)
        : dom_1.Dom.replace(wrapper, commitStyle.element, jodit.createInside, true);
}
exports.wrap = wrap;
function findOrCreateWrapper(commitStyle, font, jodit) {
    if (commitStyle.elementIsBlock) {
        var box = dom_1.Dom.up(font, function (node) {
            return dom_1.Dom.isBlock(node) &&
                !dom_1.Dom.isTag(node, [
                    'td',
                    'th',
                    'tr',
                    'tbody',
                    'table',
                    'li',
                    'ul',
                    'ol'
                ]);
        }, jodit.editor);
        if (box) {
            return box;
        }
        return (0, wrap_unwrapped_text_1.wrapUnwrappedText)(commitStyle, font, jodit);
    }
    (0, utils_1.attr)(font, 'size', null);
    return font;
}


/***/ }),

/***/ 3097:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_604103__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ApplyStyle = void 0;
var normalize_node_1 = __nested_webpack_require_604103__(74504);
var api_1 = __nested_webpack_require_604103__(66162);
var transactions_1 = __nested_webpack_require_604103__(33090);
var commit_style_1 = __nested_webpack_require_604103__(70851);
function ApplyStyle(jodit, cs) {
    var sel = jodit.s, editor = jodit.editor;
    sel.save();
    (0, normalize_node_1.normalizeNode)(editor.firstChild);
    var gen = jodit.s.wrapInTagGen();
    var font = gen.next();
    var state = {
        mode: commit_style_1.INITIAL,
        element: font.value,
        next: transactions_1.states.START,
        jodit: jodit,
        style: cs
    };
    while (font && !font.done) {
        var machine = new api_1.FiniteStateMachine(transactions_1.states.START, transactions_1.transactions);
        state.element = font.value;
        while (machine.getState() !== transactions_1.states.END) {
            state = machine.dispatch('exec', state);
        }
        font = gen.next();
    }
    sel.restore();
}
exports.ApplyStyle = ApplyStyle;


/***/ }),

/***/ 70851:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_605513__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CommitStyle = exports._PREFIX = exports.REPLACE = exports.INITIAL = exports.UNSET = exports.CHANGE = exports.UNWRAP = exports.WRAP = void 0;
var constants_1 = __nested_webpack_require_605513__(86893);
var camel_case_1 = __nested_webpack_require_605513__(26596);
var apply_style_1 = __nested_webpack_require_605513__(3097);
exports.WRAP = 'wrap';
exports.UNWRAP = 'unwrap';
exports.CHANGE = 'change';
exports.UNSET = 'unset';
exports.INITIAL = 'initial';
exports.REPLACE = 'replace';
exports._PREFIX = 'commitStyle';
var CommitStyle = (function () {
    function CommitStyle(options) {
        this.options = options;
        this.__applyMap = new WeakMap();
        options.attributes = deprecatedUsing(this, options.attributes);
    }
    CommitStyle.prototype.isApplied = function (elm, key) {
        var data = this.__applyMap.get(elm);
        if (!data) {
            return false;
        }
        return data[key];
    };
    CommitStyle.prototype.setApplied = function (elm, key) {
        var _a;
        var data = (_a = this.__applyMap.get(elm)) !== null && _a !== void 0 ? _a : {};
        data[key] = true;
        this.__applyMap.set(elm, data);
    };
    Object.defineProperty(CommitStyle.prototype, "elementIsList", {
        get: function () {
            return Boolean(this.options.element && ['ul', 'ol'].includes(this.options.element));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommitStyle.prototype, "element", {
        get: function () {
            return this.options.element || this.defaultTag;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommitStyle.prototype, "elementIsBlock", {
        get: function () {
            return Boolean(this.options.element && constants_1.IS_BLOCK.test(this.options.element));
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommitStyle.prototype, "isElementCommit", {
        get: function () {
            return Boolean(this.options.element &&
                this.options.element !== this.options.defaultTag);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommitStyle.prototype, "defaultTag", {
        get: function () {
            if (this.options.defaultTag) {
                return this.options.defaultTag;
            }
            return this.elementIsBlock ? 'p' : 'span';
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommitStyle.prototype, "elementIsDefault", {
        get: function () {
            return this.element === this.defaultTag;
        },
        enumerable: false,
        configurable: true
    });
    CommitStyle.prototype.apply = function (jodit) {
        var hooks = this.options.hooks;
        try {
            hooks &&
                Object.keys(hooks).forEach(function (key) {
                    jodit.e.on((0, camel_case_1.camelCase)(exports._PREFIX + '_' + key), hooks[key]);
                });
            (0, apply_style_1.ApplyStyle)(jodit, this);
        }
        finally {
            hooks &&
                Object.keys(hooks).forEach(function (key) {
                    jodit.e.off((0, camel_case_1.camelCase)(exports._PREFIX + '_' + key), hooks[key]);
                });
            this.__applyMap = new WeakMap();
        }
    };
    return CommitStyle;
}());
exports.CommitStyle = CommitStyle;
function deprecatedUsing(commitStyle, attributes) {
    var _a = commitStyle.options, style = _a.style, className = _a.className;
    if (style) {
        if (attributes) {
            attributes.style = style;
        }
        else {
            attributes = { style: style };
        }
        delete commitStyle.options.style;
    }
    if (className) {
        if (attributes) {
            attributes['class'] = className;
        }
        else {
            attributes = { class: className };
        }
        delete commitStyle.options.className;
    }
    return attributes;
}


/***/ }),

/***/ 33090:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_609956__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
var _a;
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.transactions = exports.states = void 0;
var tslib_1 = __nested_webpack_require_609956__(20255);
var selection_1 = __nested_webpack_require_609956__(46325);
var api_1 = __nested_webpack_require_609956__(66162);
var dom_1 = __nested_webpack_require_609956__(64968);
var selection_2 = __nested_webpack_require_609956__(46325);
var assert_1 = __nested_webpack_require_609956__(52378);
exports.states = {
    START: 'START',
    ELEMENT: 'ELEMENT',
    UNWRAP: 'UNWRAP',
    UNWRAP_CHILDREN: 'UNWRAP_CHILDREN',
    CHANGE: 'CHANGE',
    REPLACE_DEFAULT: 'REPLACE_DEFAULT',
    LIST: 'LIST',
    TOGGLE_LIST: 'TOGGLE_LIST',
    WRAP: 'WRAP',
    EXTRACT: 'EXTRACT',
    END: 'END'
};
exports.transactions = (_a = {},
    _a[exports.states.START] = {
        exec: function (value) {
            var element = value.element, jodit = value.jodit, style = value.style, mode = value.mode;
            if ((0, api_1.isInsideInvisibleElement)(element, jodit.editor) ||
                dom_1.Dom.isEmptyContent(element)) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.END });
            }
            var elm = (0, api_1.getSuitParent)(style, element, jodit.editor) ||
                (0, api_1.getSuitChild)(style, element);
            if (elm) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.ELEMENT, element: elm });
            }
            var suit = (0, api_1.findSuitClosest)(style, element, jodit.editor);
            if (style.elementIsList && dom_1.Dom.isTag(suit, ['ul', 'ol'])) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.LIST });
            }
            if (suit) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.EXTRACT });
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { next: mode !== selection_2.UNWRAP ? exports.states.UNWRAP_CHILDREN : exports.states.END });
        }
    },
    _a[exports.states.LIST] = {
        exec: function (value) {
            var element = value.element, jodit = value.jodit, mode = value.mode;
            if (mode !== selection_2.INITIAL && mode !== selection_2.UNWRAP && mode !== selection_1.REPLACE) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.END });
            }
            var li = dom_1.Dom.closest(element, 'li', jodit.editor);
            if (!li) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.END });
            }
            var list = dom_1.Dom.closest(element, ['ul', 'ol'], jodit.editor);
            if (list) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { element: li, next: exports.states.TOGGLE_LIST });
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.END });
        }
    },
    _a[exports.states.TOGGLE_LIST] = {
        exec: function (value) {
            return tslib_1.__assign(tslib_1.__assign({}, value), { mode: (0, api_1.toggleOrderedList)(value.style, value.element, value.jodit, value.mode), next: exports.states.END });
        }
    },
    _a[exports.states.EXTRACT] = {
        exec: function (value) {
            var element = value.element, jodit = value.jodit, style = value.style;
            var suit = (0, api_1.findSuitClosest)(style, element, jodit.editor);
            void 0;
            if (!style.elementIsBlock) {
                (0, api_1.extractSelectedPart)(suit, element, jodit);
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { element: suit, next: exports.states.ELEMENT });
        }
    },
    _a[exports.states.UNWRAP_CHILDREN] = {
        exec: function (value) {
            var element = value.element, style = value.style;
            if (!(0, api_1.unwrapChildren)(style, element)) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.WRAP });
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { mode: selection_2.UNWRAP, next: exports.states.END });
        }
    },
    _a[exports.states.WRAP] = {
        exec: function (value) {
            var element = value.element, jodit = value.jodit, style = value.style;
            var wrapper = (0, api_1.wrap)(style, element, jodit);
            return tslib_1.__assign(tslib_1.__assign({}, value), { next: style.elementIsList ? exports.states.END : exports.states.CHANGE, mode: selection_2.WRAP, element: wrapper });
        }
    },
    _a[exports.states.ELEMENT] = {
        exec: function (value) {
            var style = value.style, element = value.element, jodit = value.jodit;
            if ((0, api_1.toggleAttributes)(style, element, jodit, selection_2.INITIAL, true) !==
                selection_2.INITIAL) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.CHANGE });
            }
            if (!dom_1.Dom.isTag(element, style.element)) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.END });
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.UNWRAP });
        }
    },
    _a[exports.states.CHANGE] = {
        exec: function (value) {
            var style = value.style, element = value.element, jodit = value.jodit, mode = value.mode;
            var newMode = (0, api_1.toggleAttributes)(style, element, jodit, value.mode);
            if (mode !== selection_2.WRAP &&
                newMode === selection_2.UNSET &&
                !element.attributes.length &&
                dom_1.Dom.isTag(element, style.element)) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.UNWRAP });
            }
            return tslib_1.__assign(tslib_1.__assign({}, value), { mode: newMode, next: exports.states.END });
        }
    },
    _a[exports.states.UNWRAP] = {
        exec: function (value) {
            if (value.element.attributes.length &&
                dom_1.Dom.isTag(value.element, value.style.element)) {
                return tslib_1.__assign(tslib_1.__assign({}, value), { next: exports.states.REPLACE_DEFAULT });
            }
            dom_1.Dom.unwrap(value.element);
            return tslib_1.__assign(tslib_1.__assign({}, value), { mode: selection_2.UNWRAP, next: exports.states.END });
        }
    },
    _a[exports.states.REPLACE_DEFAULT] = {
        exec: function (value) {
            dom_1.Dom.replace(value.element, value.style.defaultTag, value.jodit.createInside, true);
            return tslib_1.__assign(tslib_1.__assign({}, value), { mode: selection_1.REPLACE, next: exports.states.END });
        }
    },
    _a[exports.states.END] = {
        exec: function (value) {
            return value;
        }
    },
    _a);


/***/ }),

/***/ 75764:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.LocalStorageProvider = exports.canUsePersistentStorage = void 0;
exports.canUsePersistentStorage = (function () {
    var canUse = function () {
        var tmpKey = '___Jodit___' + Math.random().toString();
        try {
            localStorage.setItem(tmpKey, '1');
            var result_1 = localStorage.getItem(tmpKey) === '1';
            localStorage.removeItem(tmpKey);
            return result_1;
        }
        catch (_a) { }
        return false;
    };
    var result;
    return function () {
        if (result === undefined) {
            result = canUse();
        }
        return result;
    };
})();
var LocalStorageProvider = (function () {
    function LocalStorageProvider(rootKey) {
        this.rootKey = rootKey;
    }
    LocalStorageProvider.prototype.set = function (key, value) {
        try {
            var buffer = localStorage.getItem(this.rootKey);
            var json = buffer ? JSON.parse(buffer) : {};
            json[key] = value;
            localStorage.setItem(this.rootKey, JSON.stringify(json));
        }
        catch (_a) { }
        return this;
    };
    LocalStorageProvider.prototype.delete = function (key) {
        try {
            localStorage.removeItem(this.rootKey);
        }
        catch (_a) { }
        return this;
    };
    LocalStorageProvider.prototype.get = function (key) {
        try {
            var buffer = localStorage.getItem(this.rootKey);
            var json = buffer ? JSON.parse(buffer) : {};
            return json[key] !== undefined ? json[key] : null;
        }
        catch (_a) { }
    };
    LocalStorageProvider.prototype.exists = function (key) {
        return this.get(key) != null;
    };
    LocalStorageProvider.prototype.clear = function () {
        try {
            localStorage.removeItem(this.rootKey);
        }
        catch (_a) { }
        return this;
    };
    return LocalStorageProvider;
}());
exports.LocalStorageProvider = LocalStorageProvider;


/***/ }),

/***/ 79905:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.MemoryStorageProvider = void 0;
var MemoryStorageProvider = (function () {
    function MemoryStorageProvider() {
        this.data = new Map();
    }
    MemoryStorageProvider.prototype.set = function (key, value) {
        this.data.set(key, value);
        return this;
    };
    MemoryStorageProvider.prototype.delete = function (key) {
        this.data.delete(key);
        return this;
    };
    MemoryStorageProvider.prototype.get = function (key) {
        return this.data.get(key);
    };
    MemoryStorageProvider.prototype.exists = function (key) {
        return this.data.has(key);
    };
    MemoryStorageProvider.prototype.clear = function () {
        this.data.clear();
        return this;
    };
    return MemoryStorageProvider;
}());
exports.MemoryStorageProvider = MemoryStorageProvider;


/***/ }),

/***/ 77462:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_620767__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_620767__(20255);
tslib_1.__exportStar(__nested_webpack_require_620767__(79905), exports);
tslib_1.__exportStar(__nested_webpack_require_620767__(75764), exports);
tslib_1.__exportStar(__nested_webpack_require_620767__(52015), exports);


/***/ }),

/***/ 52015:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_621387__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Storage = exports.StorageKey = void 0;
var helpers_1 = __nested_webpack_require_621387__(40332);
var local_storage_provider_1 = __nested_webpack_require_621387__(75764);
var memory_storage_provider_1 = __nested_webpack_require_621387__(79905);
exports.StorageKey = 'Jodit_';
var Storage = (function () {
    function Storage(provider, suffix) {
        this.provider = provider;
        this.prefix = exports.StorageKey;
        if (suffix) {
            this.prefix += suffix;
        }
    }
    Storage.prototype.set = function (key, value) {
        this.provider.set((0, helpers_1.camelCase)(this.prefix + key), value);
        return this;
    };
    Storage.prototype.delete = function (key) {
        this.provider.delete((0, helpers_1.camelCase)(this.prefix + key));
        return this;
    };
    Storage.prototype.get = function (key) {
        return this.provider.get((0, helpers_1.camelCase)(this.prefix + key));
    };
    Storage.prototype.exists = function (key) {
        return this.provider.exists((0, helpers_1.camelCase)(this.prefix + key));
    };
    Storage.prototype.clear = function () {
        this.provider.clear();
        return this;
    };
    Storage.makeStorage = function (persistent, suffix) {
        if (persistent === void 0) { persistent = false; }
        var provider;
        if (persistent && (0, local_storage_provider_1.canUsePersistentStorage)()) {
            provider = new local_storage_provider_1.LocalStorageProvider(exports.StorageKey + suffix);
        }
        if (!provider) {
            provider = new memory_storage_provider_1.MemoryStorageProvider();
        }
        return new Storage(provider, suffix);
    };
    return Storage;
}());
exports.Storage = Storage;


/***/ }),

/***/ 59363:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_623485__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Dlgs = void 0;
var tslib_1 = __nested_webpack_require_623485__(20255);
var modules_1 = __nested_webpack_require_623485__(87837);
var helpers_1 = __nested_webpack_require_623485__(40332);
var Dlgs = (function () {
    function Dlgs() {
    }
    Dlgs.prototype.dlg = function (options) {
        var dialog = new modules_1.Dialog(tslib_1.__assign({ language: this.o.language, shadowRoot: this.o.shadowRoot, ownerWindow: this.o.ownerWindow, defaultTimeout: this.o.defaultTimeout, theme: this.o.theme, globalFullSize: this.o.globalFullSize }, options));
        (0, helpers_1.markOwner)(this, dialog.container);
        dialog.parent = this;
        return dialog.bindDestruct(this);
    };
    Dlgs.prototype.confirm = function (msg, title, callback) {
        if ((0, helpers_1.isString)(title)) {
            title = this.i18n(title);
        }
        return modules_1.Confirm.call(this.dlg(), this.i18n(msg), title, callback);
    };
    Dlgs.prototype.prompt = function (msg, title, callback, placeholder, defaultValue) {
        if ((0, helpers_1.isString)(title)) {
            title = this.i18n(title);
        }
        if ((0, helpers_1.isString)(placeholder)) {
            placeholder = this.i18n(placeholder);
        }
        return modules_1.Prompt.call(this.dlg(), this.i18n(msg), title, callback, placeholder, defaultValue);
    };
    Dlgs.prototype.alert = function (msg, title, callback, className) {
        if ((0, helpers_1.isString)(msg)) {
            msg = this.i18n(msg);
        }
        if ((0, helpers_1.isString)(title)) {
            title = this.i18n(title);
        }
        return modules_1.Alert.call(this.dlg(), msg, title, callback, className);
    };
    return Dlgs;
}());
exports.Dlgs = Dlgs;


/***/ }),

/***/ 14089:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_625587__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Elms = void 0;
var to_array_1 = __nested_webpack_require_625587__(1853);
var Elms = (function () {
    function Elms() {
    }
    Elms.prototype.getElm = function (elementName) {
        return this.container.querySelector(".".concat(this.getFullElName(elementName)));
    };
    Elms.prototype.getElms = function (elementName) {
        return (0, to_array_1.toArray)(this.container.querySelectorAll(".".concat(this.getFullElName(elementName))));
    };
    return Elms;
}());
exports.Elms = Elms;


/***/ }),

/***/ 59829:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_626482__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_626482__(20255);
tslib_1.__exportStar(__nested_webpack_require_626482__(14089), exports);
tslib_1.__exportStar(__nested_webpack_require_626482__(41681), exports);
tslib_1.__exportStar(__nested_webpack_require_626482__(59363), exports);


/***/ }),

/***/ 41681:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_627102__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Mods = void 0;
var to_array_1 = __nested_webpack_require_627102__(1853);
var is_void_1 = __nested_webpack_require_627102__(24021);
var Mods = (function () {
    function Mods() {
    }
    Mods.prototype.afterSetMod = function (name, value) { };
    Mods.prototype.setMod = function (name, value, container) {
        name = name.toLowerCase();
        if (this.mods[name] === value) {
            return this;
        }
        var mod = "".concat(this.componentName, "_").concat(name), cl = (container || this.container).classList;
        (0, to_array_1.toArray)(cl).forEach(function (className) {
            if (className.indexOf(mod) === 0) {
                cl.remove(className);
            }
        });
        !(0, is_void_1.isVoid)(value) &&
            value !== '' &&
            cl.add("".concat(mod, "_").concat(value.toString().toLowerCase()));
        this.mods[name] = value;
        this.afterSetMod(name, value);
        return this;
    };
    Mods.prototype.getMod = function (name) {
        var _a;
        return (_a = this.mods[name]) !== null && _a !== void 0 ? _a : null;
    };
    return Mods;
}());
exports.Mods = Mods;


/***/ }),

/***/ 96031:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_628635__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Button = exports.UIButton = exports.UIButtonState = void 0;
var tslib_1 = __nested_webpack_require_628635__(20255);
__nested_webpack_require_628635__(93330);
var element_1 = __nested_webpack_require_628635__(53929);
var dom_1 = __nested_webpack_require_628635__(24263);
var utils_1 = __nested_webpack_require_628635__(76502);
var is_string_1 = __nested_webpack_require_628635__(24421);
var is_function_1 = __nested_webpack_require_628635__(42096);
var icon_1 = __nested_webpack_require_628635__(77904);
var list_1 = __nested_webpack_require_628635__(47970);
var decorators_1 = __nested_webpack_require_628635__(43441);
var statuses_1 = __nested_webpack_require_628635__(29411);
var UIButtonState = function () { return ({
    size: 'middle',
    type: 'button',
    name: '',
    value: '',
    variant: 'initial',
    disabled: false,
    activated: false,
    icon: {
        name: 'empty',
        fill: '',
        iconURL: ''
    },
    tooltip: '',
    text: '',
    tabIndex: undefined
}); };
exports.UIButtonState = UIButtonState;
var UIButton = (function (_super) {
    tslib_1.__extends(UIButton, _super);
    function UIButton(jodit, state) {
        var _this = _super.call(this, jodit) || this;
        _this.isButton = true;
        _this.state = (0, exports.UIButtonState)();
        _this.actionHandlers = [];
        _this.updateSize();
        _this.onChangeSize();
        _this.onChangeStatus();
        if (state) {
            _this.hookStatus(statuses_1.STATUSES.ready, function () {
                _this.setState(state);
            });
        }
        return _this;
    }
    UIButton.prototype.className = function () {
        return 'UIButton';
    };
    UIButton.prototype.setState = function (state) {
        Object.assign(this.state, state);
        return this;
    };
    UIButton.prototype.onChangeSize = function () {
        this.setMod('size', this.state.size);
    };
    UIButton.prototype.onChangeType = function () {
        (0, utils_1.attr)(this.container, 'type', this.state.type);
    };
    UIButton.prototype.updateSize = function () {
        var pe = this.closest(list_1.UIList);
        if (pe) {
            this.state.size = pe.buttonSize;
            return;
        }
    };
    UIButton.prototype.onChangeStatus = function () {
        this.setMod('variant', this.state.variant);
    };
    UIButton.prototype.onChangeText = function () {
        this.text.textContent = this.jodit.i18n(this.state.text);
    };
    UIButton.prototype.onChangeTextSetMode = function () {
        this.setMod('text-icons', Boolean(this.state.text.trim().length));
    };
    UIButton.prototype.onChangeDisabled = function () {
        (0, utils_1.attr)(this.container, 'disabled', this.state.disabled || null);
    };
    UIButton.prototype.onChangeActivated = function () {
        (0, utils_1.attr)(this.container, 'aria-pressed', this.state.activated);
    };
    UIButton.prototype.onChangeName = function () {
        this.container.classList.add("".concat(this.componentName, "_").concat(this.clearName(this.state.name)));
        this.name = this.state.name;
        (0, utils_1.attr)(this.container, 'data-ref', this.state.name);
        (0, utils_1.attr)(this.container, 'ref', this.state.name);
    };
    UIButton.prototype.onChangeTooltip = function () {
        if (this.get('j.o.useNativeTooltip')) {
            (0, utils_1.attr)(this.container, 'title', this.state.tooltip);
        }
        (0, utils_1.attr)(this.container, 'aria-label', this.state.tooltip);
    };
    UIButton.prototype.onChangeTabIndex = function () {
        (0, utils_1.attr)(this.container, 'tabindex', this.state.tabIndex);
    };
    UIButton.prototype.onChangeIcon = function () {
        var textIcons = this.get('j.o.textIcons');
        if (textIcons === true ||
            ((0, is_function_1.isFunction)(textIcons) && textIcons(this.state.name))) {
            return;
        }
        dom_1.Dom.detach(this.icon);
        var iconElement = icon_1.Icon.makeIcon(this.j, this.state.icon);
        iconElement && this.icon.appendChild(iconElement);
    };
    UIButton.prototype.focus = function () {
        this.container.focus();
    };
    UIButton.prototype.isFocused = function () {
        var activeElement = this.od.activeElement;
        return Boolean(activeElement && dom_1.Dom.isOrContains(this.container, activeElement));
    };
    UIButton.prototype.createContainer = function () {
        var cn = this.componentName;
        var button = this.j.c.element('button', {
            class: cn,
            type: 'button',
            role: 'button',
            ariaPressed: false
        });
        this.icon = this.j.c.span(cn + '__icon');
        this.text = this.j.c.span(cn + '__text');
        button.appendChild(this.icon);
        button.appendChild(this.text);
        this.j.e.on(button, 'click', this.onActionFire);
        return button;
    };
    UIButton.prototype.destruct = function () {
        this.j.e.off(this.container);
        return _super.prototype.destruct.call(this);
    };
    UIButton.prototype.onAction = function (callback) {
        this.actionHandlers.push(callback);
        return this;
    };
    UIButton.prototype.onActionFire = function (e) {
        var _this = this;
        e.buffer = {
            actionTrigger: this
        };
        this.actionHandlers.forEach(function (callback) { return callback.call(_this, e); });
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.size')
    ], UIButton.prototype, "onChangeSize", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.type')
    ], UIButton.prototype, "onChangeType", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('parentElement')
    ], UIButton.prototype, "updateSize", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.variant')
    ], UIButton.prototype, "onChangeStatus", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.text')
    ], UIButton.prototype, "onChangeText", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.text')
    ], UIButton.prototype, "onChangeTextSetMode", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.disabled')
    ], UIButton.prototype, "onChangeDisabled", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.activated')
    ], UIButton.prototype, "onChangeActivated", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.name')
    ], UIButton.prototype, "onChangeName", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.tooltip')
    ], UIButton.prototype, "onChangeTooltip", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.tabIndex')
    ], UIButton.prototype, "onChangeTabIndex", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.icon')
    ], UIButton.prototype, "onChangeIcon", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], UIButton.prototype, "onActionFire", null);
    UIButton = tslib_1.__decorate([
        decorators_1.component
    ], UIButton);
    return UIButton;
}(element_1.UIElement));
exports.UIButton = UIButton;
function Button(jodit, stateOrText, text, variant) {
    var button = new UIButton(jodit);
    button.state.tabIndex = jodit.o.allowTabNavigation ? 0 : -1;
    if ((0, is_string_1.isString)(stateOrText)) {
        button.state.icon.name = stateOrText;
        button.state.name = stateOrText;
        if (variant) {
            button.state.variant = variant;
        }
        if (text) {
            button.state.text = text;
        }
    }
    else {
        button.setState(stateOrText);
    }
    return button;
}
exports.Button = Button;


/***/ }),

/***/ 67252:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_636628__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIButtonGroup = void 0;
var tslib_1 = __nested_webpack_require_636628__(20255);
__nested_webpack_require_636628__(45066);
var group_1 = __nested_webpack_require_636628__(61479);
var component_1 = __nested_webpack_require_636628__(11441);
var button_1 = __nested_webpack_require_636628__(96031);
var assert_1 = __nested_webpack_require_636628__(52378);
var UIButtonGroup = (function (_super) {
    tslib_1.__extends(UIButtonGroup, _super);
    function UIButtonGroup(jodit, options) {
        if (options === void 0) { options = {
            radio: true
        }; }
        var _this = this;
        var _a, _b;
        _this = _super.call(this, jodit, (_a = options.options) === null || _a === void 0 ? void 0 : _a.map(function (opt) {
            var btn = new button_1.UIButton(jodit, {
                text: opt.text,
                value: opt.value,
                variant: 'primary'
            });
            btn.onAction(function () {
                _this.select(opt.value);
            });
            return btn;
        }), options) || this;
        _this.options = options;
        _this.select((_b = options.value) !== null && _b !== void 0 ? _b : 0);
        return _this;
    }
    UIButtonGroup.prototype.className = function () {
        return 'UIButtonGroup';
    };
    UIButtonGroup.prototype.render = function (options) {
        return "<div>\n\t\t\t<div class=\"&__label\">~".concat(options.label, "~</div>\n\t\t\t<div class=\"&__options\"></div>\n\t\t</div>");
    };
    UIButtonGroup.prototype.appendChildToContainer = function (childContainer) {
        var options = this.getElm('options');
        void 0;
        options.appendChild(childContainer);
    };
    UIButtonGroup.prototype.select = function (indexOrValue) {
        var _this = this;
        var _a, _b;
        this.elements.forEach(function (elm, index) {
            if (index === indexOrValue || elm.state.value === indexOrValue) {
                elm.state.activated = true;
            }
            else if (_this.options.radio) {
                elm.state.activated = false;
            }
        });
        var result = this.elements
            .filter(function (elm) { return elm.state.activated; })
            .map(function (elm) { return ({
            text: elm.state.text,
            value: elm.state.value
        }); });
        this.jodit.e.fire(this, 'select', result);
        (_b = (_a = this.options).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, result);
    };
    UIButtonGroup = tslib_1.__decorate([
        component_1.component
    ], UIButtonGroup);
    return UIButtonGroup;
}(group_1.UIGroup));
exports.UIButtonGroup = UIButtonGroup;


/***/ }),

/***/ 96516:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_639632__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_639632__(20255);
tslib_1.__exportStar(__nested_webpack_require_639632__(96031), exports);
tslib_1.__exportStar(__nested_webpack_require_639632__(67252), exports);
tslib_1.__exportStar(__nested_webpack_require_639632__(33627), exports);


/***/ }),

/***/ 33627:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_640252__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UITooltip = void 0;
var tslib_1 = __nested_webpack_require_640252__(20255);
__nested_webpack_require_640252__(99895);
var helpers_1 = __nested_webpack_require_640252__(40332);
var global_1 = __nested_webpack_require_640252__(17332);
var decorators_1 = __nested_webpack_require_640252__(43441);
var element_1 = __nested_webpack_require_640252__(53929);
var UITooltip = (function (_super) {
    tslib_1.__extends(UITooltip, _super);
    function UITooltip(view) {
        var _this = _super.call(this, view) || this;
        _this.__isOpened = false;
        _this.__useCount = 1;
        _this.__delayShowTimeout = 0;
        (0, global_1.getContainer)(view, UITooltip).appendChild(_this.container);
        var timeout = 0;
        view.e
            .off('.tooltip')
            .on('showTooltip.tooltip', function (getPoint, content) {
            view.async.clearTimeout(timeout);
            _this.__open(getPoint, content);
        })
            .on('delayShowTooltip.tooltip', _this.__delayOpen)
            .on('escape.tooltip', _this.__close)
            .on('hideTooltip.tooltip change.tooltip scroll.tooltip changePlace.tooltip hidePopup.tooltip closeAllPopups.tooltip', function () {
            _this.j.async.clearTimeout(_this.__delayShowTimeout);
            timeout = view.async.setTimeout(_this.__close, _this.j.defaultTimeout);
        });
        return _this;
    }
    UITooltip.prototype.className = function () {
        return 'UITooltip';
    };
    UITooltip.make = function (view) {
        var instance = (0, helpers_1.dataBind)(view, 'ui-tooltip');
        if (instance) {
            instance.__useCount += 1;
            return instance;
        }
        instance = new UITooltip(view);
        (0, helpers_1.dataBind)(view, 'ui-tooltip', instance);
        return instance;
    };
    UITooltip.prototype.__delayOpen = function (getPoint, content) {
        var _this = this;
        var to = this.j.o.showTooltipDelay || this.j.defaultTimeout;
        this.j.async.clearTimeout(this.__delayShowTimeout);
        this.__delayShowTimeout = this.j.async.setTimeout(function () { return _this.__open(getPoint, content); }, {
            timeout: to,
            label: 'tooltip'
        });
    };
    UITooltip.prototype.__open = function (getPoint, content) {
        this.setMod('visible', true);
        this.container.innerHTML = content;
        this.__isOpened = true;
        this.__setPosition(getPoint);
    };
    UITooltip.prototype.__setPosition = function (getPoint) {
        var point = getPoint();
        (0, helpers_1.css)(this.container, {
            left: point.x,
            top: point.y
        });
    };
    UITooltip.prototype.__close = function () {
        this.j.async.clearTimeout(this.__delayShowTimeout);
        if (this.__isOpened) {
            this.__isOpened = false;
            this.setMod('visible', false);
            (0, helpers_1.css)(this.container, {
                left: -5000
            });
        }
    };
    UITooltip.prototype.destruct = function () {
        var _a;
        this.__useCount--;
        if (!this.__useCount) {
            (_a = this.j) === null || _a === void 0 ? void 0 : _a.e.off('.tooltip');
            this.__close();
            _super.prototype.destruct.call(this);
        }
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], UITooltip.prototype, "__delayOpen", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], UITooltip.prototype, "__close", null);
    return UITooltip;
}(element_1.UIElement));
exports.UITooltip = UITooltip;


/***/ }),

/***/ 53929:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_644155__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIElement = void 0;
var tslib_1 = __nested_webpack_require_644155__(20255);
var component_1 = __nested_webpack_require_644155__(56562);
var dom_1 = __nested_webpack_require_644155__(24263);
var traits_1 = __nested_webpack_require_644155__(59829);
var is_string_1 = __nested_webpack_require_644155__(24421);
var icon_1 = __nested_webpack_require_644155__(77904);
var decorators_1 = __nested_webpack_require_644155__(43441);
var UIElement = (function (_super) {
    tslib_1.__extends(UIElement, _super);
    function UIElement(jodit, options) {
        var _this = _super.call(this, jodit) || this;
        _this.name = '';
        _this.__parentElement = null;
        _this.mods = {};
        _this.container = _this.createContainer(options);
        Object.defineProperty(_this.container, 'component', {
            value: _this,
            configurable: true
        });
        return _this;
    }
    UIElement_1 = UIElement;
    Object.defineProperty(UIElement.prototype, "parentElement", {
        get: function () {
            return this.__parentElement;
        },
        set: function (parentElement) {
            var _this = this;
            this.__parentElement = parentElement;
            if (parentElement) {
                parentElement.hookStatus('beforeDestruct', function () { return _this.destruct(); });
            }
            this.updateParentElement(this);
        },
        enumerable: false,
        configurable: true
    });
    UIElement.prototype.bubble = function (callback) {
        var parent = this.parentElement;
        while (parent) {
            callback(parent);
            parent = parent.parentElement;
        }
        return this;
    };
    UIElement.prototype.updateParentElement = function (target) {
        var _a;
        (_a = this.__parentElement) === null || _a === void 0 ? void 0 : _a.updateParentElement(target);
        return this;
    };
    UIElement.prototype.get = function (chain, obj) {
        return _super.prototype.get.call(this, chain, obj) || this.getElm(chain);
    };
    UIElement.prototype.closest = function (type) {
        var c = typeof type === 'object'
            ? function (pe) { return pe === type; }
            : function (pe) { return component_1.Component.isInstanceOf(pe, type); };
        var pe = this.__parentElement;
        while (pe) {
            if (c(pe)) {
                return pe;
            }
            if (!pe.parentElement && pe.container.parentElement) {
                pe = UIElement_1.closestElement(pe.container.parentElement, UIElement_1);
            }
            else {
                pe = pe.parentElement;
            }
        }
        return null;
    };
    UIElement.closestElement = function (node, type) {
        var elm = dom_1.Dom.up(node, function (elm) {
            if (elm) {
                var component = elm.component;
                return component && component_1.Component.isInstanceOf(component, type);
            }
            return false;
        });
        return elm ? elm === null || elm === void 0 ? void 0 : elm.component : null;
    };
    UIElement.prototype.update = function () {
    };
    UIElement.prototype.appendTo = function (element) {
        element.appendChild(this.container);
        return this;
    };
    UIElement.prototype.clearName = function (name) {
        return name.replace(/[^a-zA-Z0-9]/g, '_');
    };
    UIElement.prototype.render = function (options) {
        return this.j.c.div(this.componentName);
    };
    UIElement.prototype.createContainer = function (options) {
        var result = this.render(options);
        if ((0, is_string_1.isString)(result)) {
            var elm = this.parseTemplate(result);
            elm.classList.add(this.componentName);
            return elm;
        }
        return result;
    };
    UIElement.prototype.parseTemplate = function (result) {
        var _this = this;
        return this.j.c.fromHTML(result
            .replace(/\*([^*]+?)\*/g, function (_, name) { return icon_1.Icon.get(name) || ''; })
            .replace(/&__/g, this.componentName + '__')
            .replace(/~([^~]+?)~/g, function (_, s) { return _this.i18n(s); }));
    };
    UIElement.prototype.destruct = function () {
        dom_1.Dom.safeRemove(this.container);
        this.parentElement = null;
        return _super.prototype.destruct.call(this);
    };
    var UIElement_1;
    UIElement = UIElement_1 = tslib_1.__decorate([
        (0, decorators_1.derive)(traits_1.Mods, traits_1.Elms)
    ], UIElement);
    return UIElement;
}(component_1.ViewComponent));
exports.UIElement = UIElement;


/***/ }),

/***/ 38318:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_649089__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIBlock = void 0;
var tslib_1 = __nested_webpack_require_649089__(20255);
__nested_webpack_require_649089__(87682);
var group_1 = __nested_webpack_require_649089__(61479);
var utils_1 = __nested_webpack_require_649089__(76502);
var component_1 = __nested_webpack_require_649089__(11441);
var UIBlock = (function (_super) {
    tslib_1.__extends(UIBlock, _super);
    function UIBlock(jodit, elements, options) {
        if (options === void 0) { options = {
            align: 'left'
        }; }
        var _this = _super.call(this, jodit, elements) || this;
        _this.options = options;
        _this.setMod('align', _this.options.align || 'left');
        _this.setMod('width', _this.options.width || '');
        _this.options.mod && _this.setMod(_this.options.mod, true);
        _this.options.className &&
            _this.container.classList.add(_this.options.className);
        (0, utils_1.attr)(_this.container, 'data-ref', options.ref);
        (0, utils_1.attr)(_this.container, 'ref', options.ref);
        return _this;
    }
    UIBlock.prototype.className = function () {
        return 'UIBlock';
    };
    UIBlock = tslib_1.__decorate([
        component_1.component
    ], UIBlock);
    return UIBlock;
}(group_1.UIGroup));
exports.UIBlock = UIBlock;


/***/ }),

/***/ 26207:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_650705__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIForm = void 0;
var tslib_1 = __nested_webpack_require_650705__(20255);
var group_1 = __nested_webpack_require_650705__(61479);
var input_1 = __nested_webpack_require_650705__(30194);
var select_1 = __nested_webpack_require_650705__(75840);
var utils_1 = __nested_webpack_require_650705__(76502);
var component_1 = __nested_webpack_require_650705__(11441);
var component_2 = __nested_webpack_require_650705__(45113);
var UIForm = (function (_super) {
    tslib_1.__extends(UIForm, _super);
    function UIForm() {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        var _this = this;
        var _a, _b;
        _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(args), false)) || this;
        if ((_a = _this.options) === null || _a === void 0 ? void 0 : _a.className) {
            _this.container.classList.add((_b = _this.options) === null || _b === void 0 ? void 0 : _b.className);
        }
        return _this;
    }
    UIForm.prototype.className = function () {
        return 'UIForm';
    };
    UIForm.prototype.submit = function () {
        this.j.e.fire(this.container, 'submit');
    };
    UIForm.prototype.validate = function () {
        var e_1, _a, e_2, _b;
        var inputs = this.allChildren.filter(function (elm) {
            return component_2.Component.isInstanceOf(elm, input_1.UIInput);
        });
        try {
            for (var inputs_1 = tslib_1.__values(inputs), inputs_1_1 = inputs_1.next(); !inputs_1_1.done; inputs_1_1 = inputs_1.next()) {
                var input = inputs_1_1.value;
                if (!input.validate()) {
                    return false;
                }
            }
        }
        catch (e_1_1) { e_1 = { error: e_1_1 }; }
        finally {
            try {
                if (inputs_1_1 && !inputs_1_1.done && (_a = inputs_1.return)) _a.call(inputs_1);
            }
            finally { if (e_1) throw e_1.error; }
        }
        var selects = this.allChildren.filter(function (elm) {
            return component_2.Component.isInstanceOf(elm, select_1.UISelect);
        });
        try {
            for (var selects_1 = tslib_1.__values(selects), selects_1_1 = selects_1.next(); !selects_1_1.done; selects_1_1 = selects_1.next()) {
                var select = selects_1_1.value;
                if (!select.validate()) {
                    return false;
                }
            }
        }
        catch (e_2_1) { e_2 = { error: e_2_1 }; }
        finally {
            try {
                if (selects_1_1 && !selects_1_1.done && (_b = selects_1.return)) _b.call(selects_1);
            }
            finally { if (e_2) throw e_2.error; }
        }
        return true;
    };
    UIForm.prototype.onSubmit = function (handler) {
        var _this = this;
        this.j.e.on(this.container, 'submit', function () {
            var inputs = _this.allChildren.filter(function (elm) {
                return component_2.Component.isInstanceOf(elm, input_1.UIInput);
            });
            if (!_this.validate()) {
                return false;
            }
            handler(inputs.reduce(function (res, item) {
                res[item.state.name] = item.value;
                return res;
            }, {}));
            return false;
        });
    };
    UIForm.prototype.createContainer = function () {
        var form = this.j.c.element('form');
        form.classList.add(this.componentName);
        (0, utils_1.attr)(form, 'dir', this.j.o.direction || 'auto');
        return form;
    };
    UIForm = tslib_1.__decorate([
        component_1.component
    ], UIForm);
    return UIForm;
}(group_1.UIGroup));
exports.UIForm = UIForm;


/***/ }),

/***/ 95963:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_654764__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_654764__(20255);
tslib_1.__exportStar(__nested_webpack_require_654764__(26207), exports);
tslib_1.__exportStar(__nested_webpack_require_654764__(63034), exports);
tslib_1.__exportStar(__nested_webpack_require_654764__(38318), exports);


/***/ }),

/***/ 21639:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_655384__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UITextArea = void 0;
var tslib_1 = __nested_webpack_require_655384__(20255);
__nested_webpack_require_655384__(50905);
var input_1 = __nested_webpack_require_655384__(30194);
var component_1 = __nested_webpack_require_655384__(11441);
var UITextArea = (function (_super) {
    tslib_1.__extends(UITextArea, _super);
    function UITextArea(jodit, state) {
        var _this = _super.call(this, jodit, state) || this;
        _this.state = tslib_1.__assign({}, UITextArea_1.defaultState);
        Object.assign(_this.state, state);
        if (_this.state.resizable === false) {
            _this.nativeInput.style.resize = 'none';
        }
        return _this;
    }
    UITextArea_1 = UITextArea;
    UITextArea.prototype.className = function () {
        return 'UITextArea';
    };
    UITextArea.prototype.createContainer = function (options) {
        this.nativeInput = this.j.create.element('textarea');
        return _super.prototype.createContainer.call(this, options);
    };
    var UITextArea_1;
    UITextArea.defaultState = tslib_1.__assign(tslib_1.__assign({}, input_1.UIInput.defaultState), { size: 5, resizable: true });
    UITextArea = UITextArea_1 = tslib_1.__decorate([
        component_1.component
    ], UITextArea);
    return UITextArea;
}(input_1.UIInput));
exports.UITextArea = UITextArea;


/***/ }),

/***/ 63747:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_657058__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UICheckbox = void 0;
var tslib_1 = __nested_webpack_require_657058__(20255);
__nested_webpack_require_657058__(70446);
var input_1 = __nested_webpack_require_657058__(30194);
var decorators_1 = __nested_webpack_require_657058__(43441);
var dom_1 = __nested_webpack_require_657058__(24263);
var UICheckbox = (function (_super) {
    tslib_1.__extends(UICheckbox, _super);
    function UICheckbox(jodit, options) {
        var _this = _super.call(this, jodit, tslib_1.__assign(tslib_1.__assign({}, options), { type: 'checkbox' })) || this;
        _this.state = tslib_1.__assign({}, UICheckbox_1.defaultState);
        Object.assign(_this.state, options);
        return _this;
    }
    UICheckbox_1 = UICheckbox;
    UICheckbox.prototype.className = function () {
        return 'UICheckbox';
    };
    UICheckbox.prototype.render = function () {
        return this.j.c.element('label', {
            className: this.componentName
        });
    };
    UICheckbox.prototype.onChangeChecked = function () {
        this.value = this.state.checked.toString();
        this.nativeInput.checked = this.state.checked;
        this.setMod('checked', this.state.checked);
    };
    UICheckbox.prototype.onChangeNativeCheckBox = function () {
        this.state.checked = this.nativeInput.checked;
    };
    UICheckbox.prototype.onChangeSwitch = function () {
        this.setMod('switch', this.state.switch);
        var slider = this.getElm('switch-slider');
        if (this.state.switch) {
            if (!slider) {
                slider = this.j.c.div(this.getFullElName('switch-slider'));
            }
            dom_1.Dom.after(this.nativeInput, slider);
        }
        else {
            dom_1.Dom.safeRemove(slider);
        }
    };
    var UICheckbox_1;
    UICheckbox.defaultState = tslib_1.__assign(tslib_1.__assign({}, input_1.UIInput.defaultState), { checked: false, switch: false });
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.checked'),
        (0, decorators_1.hook)('ready')
    ], UICheckbox.prototype, "onChangeChecked", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('nativeInput:change')
    ], UICheckbox.prototype, "onChangeNativeCheckBox", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.switch'),
        (0, decorators_1.hook)('ready')
    ], UICheckbox.prototype, "onChangeSwitch", null);
    UICheckbox = UICheckbox_1 = tslib_1.__decorate([
        decorators_1.component
    ], UICheckbox);
    return UICheckbox;
}(input_1.UIInput));
exports.UICheckbox = UICheckbox;


/***/ }),

/***/ 41374:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_659961__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIFileInput = void 0;
var tslib_1 = __nested_webpack_require_659961__(20255);
__nested_webpack_require_659961__(18984);
var input_1 = __nested_webpack_require_659961__(30194);
var component_1 = __nested_webpack_require_659961__(11441);
var button_1 = __nested_webpack_require_659961__(96031);
var UIFileInput = (function (_super) {
    tslib_1.__extends(UIFileInput, _super);
    function UIFileInput(jodit, options) {
        var _this = _super.call(this, jodit, tslib_1.__assign({ type: 'file' }, options)) || this;
        _this.state = tslib_1.__assign(tslib_1.__assign({}, input_1.UIInput.defaultState), { type: 'file', onlyImages: true });
        return _this;
    }
    UIFileInput.prototype.className = function () {
        return 'UIFileInput';
    };
    UIFileInput.prototype.createContainer = function (options) {
        this.button = new button_1.UIButton(this.j, {
            icon: {
                name: 'plus'
            }
        });
        var container = this.button.container;
        if (!this.nativeInput) {
            this.nativeInput = this.createNativeInput(options);
        }
        var nativeInput = this.nativeInput;
        nativeInput.classList.add(this.getFullElName('input'));
        container.classList.add(this.componentName);
        container.appendChild(nativeInput);
        return container;
    };
    UIFileInput.prototype.createNativeInput = function (options) {
        return this.j.create.fromHTML("<input\n\t\t\ttype=\"file\"\n\t\t\taccept=\"".concat(options.onlyImages ? 'image/*' : '*', "\"\n\t\t\ttabindex=\"-1\"\n\t\t\tdir=\"auto\"\n\t\t\tmultiple=\"\"\n\t\t/>"));
    };
    UIFileInput = tslib_1.__decorate([
        component_1.component
    ], UIFileInput);
    return UIFileInput;
}(input_1.UIInput));
exports.UIFileInput = UIFileInput;


/***/ }),

/***/ 63034:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_662103__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_662103__(20255);
tslib_1.__exportStar(__nested_webpack_require_662103__(30194), exports);
tslib_1.__exportStar(__nested_webpack_require_662103__(21639), exports);
tslib_1.__exportStar(__nested_webpack_require_662103__(63747), exports);
tslib_1.__exportStar(__nested_webpack_require_662103__(75840), exports);
tslib_1.__exportStar(__nested_webpack_require_662103__(41374), exports);


/***/ }),

/***/ 30194:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_662841__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIInput = void 0;
var tslib_1 = __nested_webpack_require_662841__(20255);
__nested_webpack_require_662841__(4591);
var element_1 = __nested_webpack_require_662841__(53929);
var utils_1 = __nested_webpack_require_662841__(76502);
var to_array_1 = __nested_webpack_require_662841__(1853);
var dom_1 = __nested_webpack_require_662841__(24263);
var decorators_1 = __nested_webpack_require_662841__(43441);
var icon_1 = __nested_webpack_require_662841__(77904);
var validators_1 = __nested_webpack_require_662841__(60081);
var UIInput = (function (_super) {
    tslib_1.__extends(UIInput, _super);
    function UIInput(jodit, options) {
        var _this = _super.call(this, jodit, options) || this;
        _this.label = _this.j.c.span(_this.getFullElName('label'));
        _this.icon = _this.j.c.span(_this.getFullElName('icon'));
        _this.clearButton = _this.j.c.span(_this.getFullElName('clear'), icon_1.Icon.get('cancel'));
        _this.state = tslib_1.__assign({}, UIInput_1.defaultState);
        _this.__errorBox = _this.j.c.span(_this.getFullElName('error'));
        _this.validators = new Set([]);
        if ((options === null || options === void 0 ? void 0 : options.value) !== undefined) {
            options.value = options.value.toString();
        }
        Object.assign(_this.state, options);
        if (_this.state.clearButton !== undefined) {
            _this.j.e
                .on(_this.clearButton, 'click', function (e) {
                e.preventDefault();
                _this.nativeInput.value = '';
                _this.j.e.fire(_this.nativeInput, 'input');
                _this.focus();
            })
                .on(_this.nativeInput, 'input', function () {
                _this.state.clearButton = Boolean(_this.value.length);
            });
            _this.state.clearButton = Boolean(_this.value.length);
        }
        _this.j.e
            .on(_this.nativeInput, 'focus blur', function () {
            _this.onChangeFocus();
        })
            .on(_this.nativeInput, 'input change', _this.onChangeValue);
        _this.onChangeState();
        _this.onChangeClassName();
        _this.onChangeStateValue();
        return _this;
    }
    UIInput_1 = UIInput;
    UIInput.prototype.className = function () {
        return 'UIInput';
    };
    UIInput.prototype.onChangeClear = function () {
        if (this.state.clearButton) {
            dom_1.Dom.after(this.nativeInput, this.clearButton);
        }
        else {
            dom_1.Dom.safeRemove(this.clearButton);
        }
    };
    UIInput.prototype.onChangeClassName = function (ignore, oldClassName) {
        oldClassName && this.container.classList.remove(oldClassName);
        this.state.className &&
            this.container.classList.add(this.state.className);
    };
    UIInput.prototype.onChangeState = function () {
        this.name = this.state.name;
        var input = this.nativeInput, _a = this.state, name = _a.name, icon = _a.icon, type = _a.type, ref = _a.ref, required = _a.required, placeholder = _a.placeholder, autocomplete = _a.autocomplete, label = _a.label;
        (0, utils_1.attr)(input, 'name', name);
        (0, utils_1.attr)(input, 'type', type);
        (0, utils_1.attr)(input, 'data-ref', ref || name);
        (0, utils_1.attr)(input, 'ref', ref || name);
        (0, utils_1.attr)(input, 'required', required || null);
        (0, utils_1.attr)(input, 'autocomplete', !autocomplete ? 'off' : null);
        (0, utils_1.attr)(input, 'placeholder', placeholder ? this.j.i18n(placeholder) : '');
        if (icon && icon_1.Icon.exists(icon)) {
            dom_1.Dom.before(input, this.icon);
            this.icon.innerHTML = icon_1.Icon.get(icon);
        }
        else {
            dom_1.Dom.safeRemove(this.icon);
        }
        if (label) {
            dom_1.Dom.before(this.wrapper, this.label);
            this.label.innerText = this.j.i18n(label);
        }
        else {
            dom_1.Dom.safeRemove(this.label);
        }
        this.updateValidators();
    };
    UIInput.prototype.updateValidators = function () {
        var _this = this;
        var _a;
        this.validators.clear();
        if (this.state.required) {
            this.validators.add(validators_1.inputValidators.required);
        }
        (_a = this.state.validators) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {
            var validator = validators_1.inputValidators[name];
            validator && _this.validators.add(validator);
        });
    };
    Object.defineProperty(UIInput.prototype, "error", {
        set: function (value) {
            this.setMod('has-error', Boolean(value));
            if (!value) {
                dom_1.Dom.safeRemove(this.__errorBox);
            }
            else {
                this.__errorBox.innerText = this.j.i18n(value, this.j.i18n(this.state.label || ''));
                this.container.appendChild(this.__errorBox);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(UIInput.prototype, "value", {
        get: function () {
            return this.nativeInput.value;
        },
        set: function (value) {
            if (this.value !== value) {
                this.nativeInput.value = value;
                this.onChangeValue();
            }
        },
        enumerable: false,
        configurable: true
    });
    UIInput.prototype.onChangeStateValue = function () {
        var value = this.state.value.toString();
        if (value !== this.value) {
            this.value = value;
        }
    };
    UIInput.prototype.onChangeValue = function () {
        var _a, _b;
        var value = this.value;
        if (this.state.value !== value) {
            this.state.value = value;
            this.j.e.fire(this, 'change', value);
            (_b = (_a = this.state).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value);
        }
    };
    UIInput.prototype.validate = function () {
        var _this = this;
        this.error = '';
        return (0, to_array_1.toArray)(this.validators).every(function (validator) { return validator(_this); });
    };
    UIInput.prototype.createContainer = function (options) {
        var container = _super.prototype.createContainer.call(this);
        this.wrapper = this.j.c.div(this.getFullElName('wrapper'));
        if (!this.nativeInput) {
            this.nativeInput = this.createNativeInput();
        }
        var nativeInput = this.nativeInput;
        nativeInput.classList.add(this.getFullElName('input'));
        this.wrapper.appendChild(nativeInput);
        container.appendChild(this.wrapper);
        (0, utils_1.attr)(nativeInput, 'dir', this.j.o.direction || 'auto');
        return container;
    };
    UIInput.prototype.createNativeInput = function (options) {
        return this.j.create.element('input');
    };
    UIInput.prototype.focus = function () {
        this.nativeInput.focus();
    };
    Object.defineProperty(UIInput.prototype, "isFocused", {
        get: function () {
            return this.nativeInput === this.j.od.activeElement;
        },
        enumerable: false,
        configurable: true
    });
    UIInput.prototype.onChangeFocus = function () {
        this.setMod('focused', this.isFocused);
    };
    var UIInput_1;
    UIInput.defaultState = {
        className: '',
        autocomplete: true,
        name: '',
        value: '',
        icon: '',
        label: '',
        ref: '',
        type: 'text',
        placeholder: '',
        required: false,
        validators: []
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.clearButton')
    ], UIInput.prototype, "onChangeClear", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.className')
    ], UIInput.prototype, "onChangeClassName", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)([
            'state.name',
            'state.type',
            'state.label',
            'state.placeholder',
            'state.autocomplete',
            'state.icon'
        ]),
        (0, decorators_1.debounce)()
    ], UIInput.prototype, "onChangeState", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.value')
    ], UIInput.prototype, "onChangeStateValue", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], UIInput.prototype, "onChangeValue", null);
    UIInput = UIInput_1 = tslib_1.__decorate([
        decorators_1.component
    ], UIInput);
    return UIInput;
}(element_1.UIElement));
exports.UIInput = UIInput;


/***/ }),

/***/ 75840:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_671731__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UISelect = void 0;
var tslib_1 = __nested_webpack_require_671731__(20255);
__nested_webpack_require_671731__(64194);
var utils_1 = __nested_webpack_require_671731__(67309);
var component_1 = __nested_webpack_require_671731__(11441);
var input_1 = __nested_webpack_require_671731__(30194);
var validators_1 = __nested_webpack_require_671731__(60081);
var UISelect = (function (_super) {
    tslib_1.__extends(UISelect, _super);
    function UISelect(jodit, state) {
        var _this = _super.call(this, jodit, state) || this;
        _this.state = tslib_1.__assign({}, UISelect_1.defaultState);
        Object.assign(_this.state, state);
        return _this;
    }
    UISelect_1 = UISelect;
    UISelect.prototype.className = function () {
        return 'UISelect';
    };
    UISelect.prototype.createContainer = function (state) {
        var _a;
        var container = _super.prototype.createContainer.call(this, state);
        var j = this.j, nativeInput = this.nativeInput;
        var opt = function () { return j.create.element('option'); };
        if (state.placeholder !== undefined) {
            var option = opt();
            option.value = '';
            option.text = j.i18n(state.placeholder);
            nativeInput.add(option);
        }
        (_a = state.options) === null || _a === void 0 ? void 0 : _a.forEach(function (element) {
            var option = opt();
            option.value = element.value.toString();
            option.text = j.i18n(element.text);
            nativeInput.add(option);
        });
        if (state.size && state.size > 0) {
            (0, utils_1.attr)(nativeInput, 'size', state.size);
        }
        if (state.multiple) {
            (0, utils_1.attr)(nativeInput, 'multiple', '');
        }
        return container;
    };
    UISelect.prototype.createNativeInput = function () {
        return this.j.create.element('select');
    };
    UISelect.prototype.updateValidators = function () {
        _super.prototype.updateValidators.call(this);
        if (this.state.required) {
            this.validators.delete(validators_1.inputValidators.required);
            this.validators.add(validators_1.selectValidators.required);
        }
    };
    var UISelect_1;
    UISelect.defaultState = tslib_1.__assign(tslib_1.__assign({}, input_1.UIInput.defaultState), { options: [], size: 1, multiple: false });
    UISelect = UISelect_1 = tslib_1.__decorate([
        component_1.component
    ], UISelect);
    return UISelect;
}(input_1.UIInput));
exports.UISelect = UISelect;


/***/ }),

/***/ 60081:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_674602__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.selectValidators = exports.inputValidators = void 0;
exports.inputValidators = __nested_webpack_require_674602__(63355);
exports.selectValidators = __nested_webpack_require_674602__(65935);


/***/ }),

/***/ 63355:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_675173__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.url = exports.required = void 0;
var is_url_1 = __nested_webpack_require_675173__(64350);
var trim_1 = __nested_webpack_require_675173__(33941);
exports.required = function (input) {
    if (!(0, trim_1.trim)(input.value).length) {
        input.error = 'Please fill out this field';
        return false;
    }
    return true;
};
exports.url = function (input) {
    if (!(0, is_url_1.isURL)((0, trim_1.trim)(input.value))) {
        input.error = 'Please enter a web address';
        return false;
    }
    return true;
};


/***/ }),

/***/ 65935:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_676082__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.required = void 0;
var trim_1 = __nested_webpack_require_676082__(33941);
exports.required = function (select) {
    if (!(0, trim_1.trim)(select.value).length) {
        select.error = 'Please fill out this field';
        return false;
    }
    return true;
};


/***/ }),

/***/ 61479:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_676741__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIGroup = void 0;
var tslib_1 = __nested_webpack_require_676741__(20255);
__nested_webpack_require_676741__(70375);
var element_1 = __nested_webpack_require_676741__(53929);
var decorators_1 = __nested_webpack_require_676741__(43441);
var helpers_1 = __nested_webpack_require_676741__(40332);
var assert_1 = __nested_webpack_require_676741__(52378);
var dom_1 = __nested_webpack_require_676741__(24263);
var component_1 = __nested_webpack_require_676741__(45113);
var UIGroup = (function (_super) {
    tslib_1.__extends(UIGroup, _super);
    function UIGroup(jodit, elements, options) {
        var _this = _super.call(this, jodit, options) || this;
        _this.options = options;
        _this.syncMod = false;
        _this.elements = [];
        _this.buttonSize = 'middle';
        elements === null || elements === void 0 ? void 0 : elements.forEach(function (elm) { return elm && _this.append(elm); });
        if (options === null || options === void 0 ? void 0 : options.name) {
            _this.name = options.name;
        }
        return _this;
    }
    UIGroup_1 = UIGroup;
    UIGroup.prototype.className = function () {
        return 'UIGroup';
    };
    Object.defineProperty(UIGroup.prototype, "allChildren", {
        get: function () {
            var result = [];
            var stack = tslib_1.__spreadArray([], tslib_1.__read(this.elements), false);
            while (stack.length) {
                var elm = stack.shift();
                if ((0, helpers_1.isArray)(elm)) {
                    stack.push.apply(stack, tslib_1.__spreadArray([], tslib_1.__read(elm), false));
                }
                else if (component_1.Component.isInstanceOf(elm, UIGroup_1)) {
                    stack.push.apply(stack, tslib_1.__spreadArray([], tslib_1.__read(elm.elements), false));
                }
                else {
                    elm && result.push(elm);
                }
            }
            return result;
        },
        enumerable: false,
        configurable: true
    });
    UIGroup.prototype.update = function () {
        this.elements.forEach(function (elm) { return elm.update(); });
        this.setMod('size', this.buttonSize);
    };
    UIGroup.prototype.append = function (elm, distElement) {
        var _this = this;
        if ((0, helpers_1.isArray)(elm)) {
            elm.forEach(function (item) { return _this.append(item, distElement); });
            return this;
        }
        this.elements.push(elm);
        if (elm.name) {
            elm.container.classList.add(this.getFullElName(elm.name));
        }
        if (distElement) {
            var distElm = this.getElm(distElement);
            void 0;
            distElm.appendChild(elm.container);
        }
        else {
            this.appendChildToContainer(elm.container);
        }
        elm.parentElement = this;
        elm.update();
        return this;
    };
    UIGroup.prototype.afterSetMod = function (name, value) {
        if (this.syncMod) {
            this.elements.forEach(function (elm) { return elm.setMod(name, value); });
        }
    };
    UIGroup.prototype.appendChildToContainer = function (childContainer) {
        this.container.appendChild(childContainer);
    };
    UIGroup.prototype.remove = function (elm) {
        var index = this.elements.indexOf(elm);
        if (index !== -1) {
            this.elements.splice(index, 1);
            dom_1.Dom.safeRemove(elm.container);
            elm.parentElement = null;
        }
        return this;
    };
    UIGroup.prototype.clear = function () {
        this.elements.forEach(function (elm) { return elm.destruct(); });
        this.elements.length = 0;
        return this;
    };
    UIGroup.prototype.destruct = function () {
        this.clear();
        return _super.prototype.destruct.call(this);
    };
    var UIGroup_1;
    tslib_1.__decorate([
        (0, decorators_1.watch)('buttonSize')
    ], UIGroup.prototype, "update", null);
    UIGroup = UIGroup_1 = tslib_1.__decorate([
        decorators_1.component
    ], UIGroup);
    return UIGroup;
}(element_1.UIElement));
exports.UIGroup = UIGroup;


/***/ }),

/***/ 3249:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_681178__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_681178__(20255);
tslib_1.__exportStar(__nested_webpack_require_681178__(61479), exports);
tslib_1.__exportStar(__nested_webpack_require_681178__(47970), exports);
tslib_1.__exportStar(__nested_webpack_require_681178__(75018), exports);
tslib_1.__exportStar(__nested_webpack_require_681178__(58495), exports);


/***/ }),

/***/ 47970:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_681857__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIList = void 0;
var tslib_1 = __nested_webpack_require_681857__(20255);
__nested_webpack_require_681857__(90235);
var get_strong_control_types_1 = __nested_webpack_require_681857__(32070);
var decorators_1 = __nested_webpack_require_681857__(43441);
var group_1 = __nested_webpack_require_681857__(61479);
var separator_1 = __nested_webpack_require_681857__(75018);
var spacer_1 = __nested_webpack_require_681857__(58495);
var button_1 = __nested_webpack_require_681857__(96031);
var buttons_1 = __nested_webpack_require_681857__(97642);
var get_control_type_1 = __nested_webpack_require_681857__(38546);
var split_array_1 = __nested_webpack_require_681857__(14556);
var component_1 = __nested_webpack_require_681857__(45113);
var UIList = (function (_super) {
    tslib_1.__extends(UIList, _super);
    function UIList(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.mode = 'horizontal';
        _this.removeButtons = [];
        _this.onChangeMode();
        return _this;
    }
    UIList.prototype.className = function () {
        return 'UIList';
    };
    UIList.prototype.onChangeMode = function () {
        this.setMod('mode', this.mode);
    };
    UIList.prototype.makeGroup = function () {
        return new group_1.UIGroup(this.jodit);
    };
    Object.defineProperty(UIList.prototype, "buttons", {
        get: function () {
            return this.allChildren.filter(function (elm) {
                return component_1.Component.isInstanceOf(elm, button_1.UIButton);
            });
        },
        enumerable: false,
        configurable: true
    });
    UIList.prototype.getButtonsNames = function () {
        return this.buttons
            .map(function (a) { return (a instanceof button_1.UIButton && a.state.name) || ''; })
            .filter(function (a) { return a !== ''; });
    };
    UIList.prototype.setRemoveButtons = function (removeButtons) {
        this.removeButtons = removeButtons || [];
        return this;
    };
    UIList.prototype.build = function (items, target) {
        var _this = this;
        if (target === void 0) { target = null; }
        items = (0, split_array_1.splitArray)(items);
        this.clear();
        var lastBtnSeparator = false;
        var line = this.makeGroup();
        this.append(line);
        line.setMod('line', true);
        var group;
        var addButton = function (control) {
            var elm = null;
            switch (control.name) {
                case '\n':
                    line = _this.makeGroup();
                    line.setMod('line', true);
                    group = _this.makeGroup();
                    line.append(group);
                    _this.append(line);
                    break;
                case '|':
                    if (!lastBtnSeparator) {
                        lastBtnSeparator = true;
                        elm = new separator_1.UISeparator(_this.j);
                    }
                    break;
                case '---': {
                    group.setMod('before-spacer', true);
                    var space = new spacer_1.UISpacer(_this.j);
                    line.append(space);
                    group = _this.makeGroup();
                    line.append(group);
                    lastBtnSeparator = false;
                    break;
                }
                default:
                    lastBtnSeparator = false;
                    elm = _this.makeButton(control, target);
            }
            if (elm) {
                if (!group) {
                    group = _this.makeGroup();
                    line.append(group);
                }
                group.append(elm);
            }
        };
        var isNotRemoved = function (b) {
            return !_this.removeButtons.includes(b.name);
        };
        items.forEach(function (item) {
            if ((0, buttons_1.isButtonGroup)(item)) {
                var buttons = item.buttons.filter(function (b) { return b; });
                if (buttons.length) {
                    group = _this.makeGroup();
                    group.setMod('separated', true).setMod('group', item.group);
                    line.append(group);
                    (0, get_strong_control_types_1.getStrongControlTypes)(buttons, _this.j.o.controls)
                        .filter(isNotRemoved)
                        .forEach(addButton);
                }
            }
            else {
                if (!group) {
                    group = _this.makeGroup();
                    line.append(group);
                }
                var control = (0, get_control_type_1.getControlType)(item, _this.j.o.controls);
                isNotRemoved(control) && addButton(control);
            }
        });
        this.update();
        return this;
    };
    UIList.prototype.makeButton = function (control, target) {
        return new button_1.UIButton(this.j);
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)('mode')
    ], UIList.prototype, "onChangeMode", null);
    UIList = tslib_1.__decorate([
        decorators_1.component
    ], UIList);
    return UIList;
}(group_1.UIGroup));
exports.UIList = UIList;


/***/ }),

/***/ 75018:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_687286__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UISeparator = void 0;
var tslib_1 = __nested_webpack_require_687286__(20255);
var element_1 = __nested_webpack_require_687286__(53929);
var component_1 = __nested_webpack_require_687286__(11441);
var UISeparator = (function (_super) {
    tslib_1.__extends(UISeparator, _super);
    function UISeparator() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    UISeparator.prototype.className = function () {
        return 'UISeparator';
    };
    UISeparator = tslib_1.__decorate([
        component_1.component
    ], UISeparator);
    return UISeparator;
}(element_1.UIElement));
exports.UISeparator = UISeparator;


/***/ }),

/***/ 58495:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_688303__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UISpacer = void 0;
var tslib_1 = __nested_webpack_require_688303__(20255);
var element_1 = __nested_webpack_require_688303__(53929);
var component_1 = __nested_webpack_require_688303__(11441);
var UISpacer = (function (_super) {
    tslib_1.__extends(UISpacer, _super);
    function UISpacer() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    UISpacer.prototype.className = function () {
        return 'UISpacer';
    };
    UISpacer = tslib_1.__decorate([
        component_1.component
    ], UISpacer);
    return UISpacer;
}(element_1.UIElement));
exports.UISpacer = UISpacer;


/***/ }),

/***/ 97642:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_689287__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.flatButtonsSet = exports.isButtonGroup = void 0;
var tslib_1 = __nested_webpack_require_689287__(20255);
var is_array_1 = __nested_webpack_require_689287__(49781);
var isButtonGroup = function (item) {
    return (0, is_array_1.isArray)(item.buttons);
};
exports.isButtonGroup = isButtonGroup;
function flatButtonsSet(buttons, jodit) {
    var groups = jodit.getRegisteredButtonGroups();
    return new Set(buttons.reduce(function (acc, item) {
        var _a;
        if ((0, exports.isButtonGroup)(item)) {
            acc = acc.concat(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(item.buttons), false), tslib_1.__read(((_a = groups[item.group]) !== null && _a !== void 0 ? _a : [])), false));
        }
        else {
            acc.push(item);
        }
        return acc;
    }, []));
}
exports.flatButtonsSet = flatButtonsSet;


/***/ }),

/***/ 38546:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_690521__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.findControlType = exports.getControlType = void 0;
var tslib_1 = __nested_webpack_require_690521__(20255);
var helpers_1 = __nested_webpack_require_690521__(40332);
var config_1 = __nested_webpack_require_690521__(93166);
function getControlType(button, controls) {
    var buttonControl;
    if (!controls) {
        controls = config_1.Config.defaultOptions.controls;
    }
    if (!(0, helpers_1.isString)(button)) {
        buttonControl = tslib_1.__assign({ name: 'empty' }, (0, helpers_1.ConfigFlatten)(button));
        if (controls[buttonControl.name] !== undefined) {
            buttonControl = tslib_1.__assign(tslib_1.__assign({}, (0, helpers_1.ConfigFlatten)(controls[buttonControl.name])), (0, helpers_1.ConfigFlatten)(buttonControl));
        }
    }
    else {
        buttonControl = findControlType(button, controls) || {
            name: button,
            command: button,
            tooltip: button
        };
    }
    return buttonControl;
}
exports.getControlType = getControlType;
function findControlType(path, controls) {
    var _a = tslib_1.__read(path.split(/\./), 2), namespaceOrKey = _a[0], key = _a[1];
    var store = controls;
    if (key != null) {
        if (controls[namespaceOrKey] !== undefined) {
            store = controls[namespaceOrKey];
        }
    }
    else {
        key = namespaceOrKey;
    }
    return store[key]
        ? tslib_1.__assign({ name: key }, (0, helpers_1.ConfigFlatten)(store[key])) : undefined;
}
exports.findControlType = findControlType;


/***/ }),

/***/ 32070:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_692403__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getStrongControlTypes = void 0;
var get_control_type_1 = __nested_webpack_require_692403__(38546);
var config_1 = __nested_webpack_require_692403__(93166);
var is_array_1 = __nested_webpack_require_692403__(49781);
var utils_1 = __nested_webpack_require_692403__(76502);
function getStrongControlTypes(items, controls) {
    var elements = (0, is_array_1.isArray)(items)
        ? items
        : (0, utils_1.keys)(items, false).map(function (key) {
            var value = items[key] || {};
            return (0, utils_1.ConfigProto)({ name: key }, value);
        });
    return elements.map(function (item) {
        return (0, get_control_type_1.getControlType)(item, controls || config_1.Config.defaultOptions.controls);
    });
}
exports.getStrongControlTypes = getStrongControlTypes;


/***/ }),

/***/ 77904:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_693548__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Icon = void 0;
var css_1 = __nested_webpack_require_693548__(26911);
var helpers_1 = __nested_webpack_require_693548__(40332);
var Icon = (function () {
    function Icon() {
    }
    Icon.getIcon = function (name) {
        if (/<svg/i.test(name)) {
            return name;
        }
        var icon = Icon.icons[name] ||
            Icon.icons[name.replace(/-/g, '_')] ||
            Icon.icons[name.replace(/_/g, '-')] ||
            Icon.icons[(0, helpers_1.camelCase)(name)] ||
            Icon.icons[(0, helpers_1.kebabCase)(name)] ||
            Icon.icons[name.toLowerCase()];
        if (false) // removed by dead control flow
{}
        return icon;
    };
    Icon.exists = function (name) {
        return this.getIcon(name) !== undefined;
    };
    Icon.get = function (name, defaultValue) {
        if (defaultValue === void 0) { defaultValue = '<span></span>'; }
        return this.getIcon(name) || defaultValue;
    };
    Icon.set = function (name, value) {
        this.icons[name.replace('_', '-')] = value;
        return this;
    };
    Icon.makeIcon = function (jodit, icon) {
        var _a;
        var iconElement;
        if (icon) {
            var clearName = icon.name.replace(/[^a-zA-Z0-9]/g, '_');
            if (icon.iconURL) {
                iconElement = jodit.c.span();
                (0, css_1.css)(iconElement, 'backgroundImage', 'url(' +
                    icon.iconURL.replace('{basePath}', (jodit === null || jodit === void 0 ? void 0 : jodit.basePath) || '') +
                    ')');
            }
            else {
                var svg = jodit.e.fire('getIcon', icon.name, icon, clearName) ||
                    Icon.get(icon.name, '') ||
                    ((_a = jodit.o.extraIcons) === null || _a === void 0 ? void 0 : _a[icon.name]);
                if (svg) {
                    iconElement = jodit.c.fromHTML(svg.trim());
                    if (!/^<svg/i.test(icon.name)) {
                        iconElement.classList.add('jodit-icon_' + clearName);
                    }
                }
            }
        }
        if (iconElement) {
            iconElement.classList.add('jodit-icon');
            iconElement.style.fill = icon.fill;
        }
        return iconElement;
    };
    Icon.icons = {};
    return Icon;
}());
exports.Icon = Icon;


/***/ }),

/***/ 2074:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_696219__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_696219__(20255);
tslib_1.__exportStar(__nested_webpack_require_696219__(53929), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(96516), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(35799), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(3249), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(95963), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(77904), exports);
tslib_1.__exportStar(__nested_webpack_require_696219__(63682), exports);


/***/ }),

/***/ 35799:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_697074__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_697074__(20255);
tslib_1.__exportStar(__nested_webpack_require_697074__(12680), exports);


/***/ }),

/***/ 12680:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_697576__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Popup = void 0;
var tslib_1 = __nested_webpack_require_697576__(20255);
__nested_webpack_require_697576__(88477);
var dom_1 = __nested_webpack_require_697576__(24263);
var helpers_1 = __nested_webpack_require_697576__(40332);
var assert_1 = __nested_webpack_require_697576__(52378);
var element_1 = __nested_webpack_require_697576__(53929);
var decorators_1 = __nested_webpack_require_697576__(43441);
var component_1 = __nested_webpack_require_697576__(45113);
var global_1 = __nested_webpack_require_697576__(17332);
var Popup = (function (_super) {
    tslib_1.__extends(Popup, _super);
    function Popup(jodit, smart) {
        if (smart === void 0) { smart = true; }
        var _this = _super.call(this, jodit) || this;
        _this.smart = smart;
        _this.isOpened = false;
        _this.strategy = 'leftBottom';
        _this.viewBound = function () { return ({
            left: 0,
            top: 0,
            width: _this.ow.innerWidth,
            height: _this.ow.innerHeight
        }); };
        _this.childrenPopups = new Set();
        (0, helpers_1.attr)(_this.container, 'role', 'popup');
        return _this;
    }
    Popup.prototype.className = function () {
        return 'Popup';
    };
    Popup.prototype.updateParentElement = function (target) {
        var _this = this;
        if (target !== this && component_1.Component.isInstanceOf(target, Popup)) {
            this.childrenPopups.forEach(function (popup) {
                if (!target.closest(popup) && popup.isOpened) {
                    popup.close();
                }
            });
            if (!this.childrenPopups.has(target)) {
                this.j.e.on(target, 'beforeClose', function () {
                    _this.childrenPopups.delete(target);
                });
            }
            this.childrenPopups.add(target);
        }
        return _super.prototype.updateParentElement.call(this, target);
    };
    Popup.prototype.setContent = function (content) {
        dom_1.Dom.detach(this.container);
        var box = this.j.c.div("".concat(this.componentName, "__content"));
        var elm;
        if (component_1.Component.isInstanceOf(content, element_1.UIElement)) {
            elm = content.container;
            content.parentElement = this;
        }
        else if ((0, helpers_1.isString)(content)) {
            elm = this.j.c.fromHTML(content);
        }
        else {
            elm = content;
        }
        box.appendChild(elm);
        this.container.appendChild(box);
        this.updatePosition();
        return this;
    };
    Popup.prototype.open = function (getBound, keepPosition, parentContainer) {
        if (keepPosition === void 0) { keepPosition = false; }
        (0, helpers_1.markOwner)(this.jodit, this.container);
        this.calculateZIndex();
        this.isOpened = true;
        this.addGlobalListeners();
        this.targetBound = !keepPosition
            ? getBound
            : this.getKeepBound(getBound);
        if (parentContainer) {
            parentContainer.appendChild(this.container);
        }
        else {
            var popupContainer = (0, global_1.getContainer)(this.jodit, Popup);
            if (parentContainer !== this.container.parentElement) {
                popupContainer.appendChild(this.container);
            }
        }
        this.updatePosition();
        this.j.e.fire(this, 'afterOpen');
        return this;
    };
    Popup.prototype.calculateZIndex = function () {
        var _this = this;
        if (this.container.style.zIndex) {
            return;
        }
        var checkView = function (view) {
            var zIndex = view.container.style.zIndex || view.o.zIndex;
            if (zIndex) {
                _this.setZIndex(1 + parseInt(zIndex.toString(), 10));
                return true;
            }
            return false;
        };
        var j = this.j;
        if (checkView(j)) {
            return;
        }
        var pe = this.parentElement;
        while (pe) {
            if (checkView(j)) {
                return;
            }
            if (pe.container.style.zIndex) {
                this.setZIndex(1 + parseInt(pe.container.style.zIndex.toString(), 10));
                return;
            }
            if (!pe.parentElement && pe.container.parentElement) {
                var elm = element_1.UIElement.closestElement(pe.container.parentElement, element_1.UIElement);
                if (elm) {
                    pe = elm;
                    continue;
                }
            }
            pe = pe.parentElement;
        }
    };
    Popup.prototype.getKeepBound = function (getBound) {
        var _this = this;
        var oldBound = getBound();
        var elmUnderCursor = this.od.elementFromPoint(oldBound.left, oldBound.top);
        if (!elmUnderCursor) {
            return getBound;
        }
        var element = dom_1.Dom.isHTMLElement(elmUnderCursor)
            ? elmUnderCursor
            : elmUnderCursor.parentElement;
        var oldPos = (0, helpers_1.position)(element, this.j);
        return function () {
            var bound = getBound();
            var newPos = (0, helpers_1.position)(element, _this.j);
            return tslib_1.__assign(tslib_1.__assign({}, bound), { top: bound.top + (newPos.top - oldPos.top), left: bound.left + (newPos.left - oldPos.left) });
        };
    };
    Popup.prototype.updatePosition = function () {
        if (!this.isOpened) {
            return this;
        }
        var _a = tslib_1.__read(this.calculatePosition(this.targetBound(), this.viewBound(), (0, helpers_1.position)(this.container, this.j)), 2), pos = _a[0], strategy = _a[1];
        this.setMod('strategy', strategy);
        (0, helpers_1.css)(this.container, {
            left: pos.left,
            top: pos.top
        });
        this.childrenPopups.forEach(function (popup) { return popup.updatePosition(); });
        return this;
    };
    Popup.prototype.throttleUpdatePosition = function () {
        this.updatePosition();
    };
    Popup.prototype.calculatePosition = function (target, view, container, defaultStrategy) {
        if (defaultStrategy === void 0) { defaultStrategy = this.strategy; }
        var x = {
            left: target.left,
            right: target.left - (container.width - target.width)
        }, y = {
            bottom: target.top + target.height,
            top: target.top - container.height
        };
        var list = Object.keys(x).reduce(function (keys, xKey) {
            return keys.concat(Object.keys(y).map(function (yKey) { return "".concat(xKey).concat((0, helpers_1.ucfirst)(yKey)); }));
        }, []);
        var getPointByStrategy = function (strategy) {
            var _a = tslib_1.__read((0, helpers_1.kebabCase)(strategy).split('-'), 2), xKey = _a[0], yKey = _a[1];
            return {
                left: x[xKey],
                top: y[yKey],
                width: container.width,
                height: container.height
            };
        };
        var getMatchStrategy = function (inBox) {
            var strategy = null;
            if (Popup.boxInView(getPointByStrategy(defaultStrategy), inBox)) {
                strategy = defaultStrategy;
            }
            else {
                strategy =
                    list.find(function (key) {
                        if (Popup.boxInView(getPointByStrategy(key), inBox)) {
                            return key;
                        }
                        return;
                    }) || null;
            }
            return strategy;
        };
        var strategy = getMatchStrategy((0, helpers_1.position)(this.j.container, this.j));
        if (!strategy || !Popup.boxInView(getPointByStrategy(strategy), view)) {
            strategy = getMatchStrategy(view) || strategy || defaultStrategy;
        }
        return [getPointByStrategy(strategy), strategy];
    };
    Popup.boxInView = function (box, view) {
        var accuracy = 2;
        return (box.top - view.top >= -accuracy &&
            box.left - view.left >= -accuracy &&
            view.top + view.height - (box.top + box.height) >= -accuracy &&
            view.left + view.width - (box.left + box.width) >= -accuracy);
    };
    Popup.prototype.close = function () {
        if (!this.isOpened) {
            return this;
        }
        this.isOpened = false;
        this.childrenPopups.forEach(function (popup) { return popup.close(); });
        this.j.e.fire(this, 'beforeClose');
        this.j.e.fire('beforePopupClose', this);
        this.removeGlobalListeners();
        dom_1.Dom.safeRemove(this.container);
        return this;
    };
    Popup.prototype.closeOnOutsideClick = function (e) {
        if (!this.isOpened || this.isOwnClick(e)) {
            return;
        }
        this.close();
    };
    Popup.prototype.isOwnClick = function (e) {
        if (!e.target) {
            return false;
        }
        var box = element_1.UIElement.closestElement(e.target, Popup);
        return Boolean(box && (this === box || box.closest(this)));
    };
    Popup.prototype.addGlobalListeners = function () {
        var _this = this;
        var up = this.throttleUpdatePosition, ow = this.ow;
        global_1.eventEmitter.on('closeAllPopups', this.close);
        if (this.smart) {
            this.j.e
                .on('escape', this.close)
                .on('mousedown touchstart', this.closeOnOutsideClick)
                .on(ow, 'mousedown touchstart', this.closeOnOutsideClick);
        }
        this.j.e
            .on('closeAllPopups', this.close)
            .on('resize', up)
            .on(this.container, 'scroll mousewheel', up)
            .on(ow, 'scroll', up)
            .on(ow, 'resize', up);
        dom_1.Dom.up(this.j.container, function (box) {
            box && _this.j.e.on(box, 'scroll mousewheel', up);
        });
    };
    Popup.prototype.removeGlobalListeners = function () {
        var _this = this;
        var up = this.throttleUpdatePosition, ow = this.ow;
        global_1.eventEmitter.off('closeAllPopups', this.close);
        if (this.smart) {
            this.j.e
                .off('escape', this.close)
                .off('mousedown touchstart', this.closeOnOutsideClick)
                .off(ow, 'mousedown touchstart', this.closeOnOutsideClick);
        }
        this.j.e
            .off('closeAllPopups', this.close)
            .off('resize', up)
            .off(this.container, 'scroll mousewheel', up)
            .off(ow, 'scroll', up)
            .off(ow, 'resize', up);
        void 0;
        dom_1.Dom.up(this.j.container, function (box) {
            box && _this.j.e.off(box, 'scroll mousewheel', up);
        });
    };
    Popup.prototype.setZIndex = function (index) {
        this.container.style.zIndex = index.toString();
    };
    Popup.prototype.destruct = function () {
        this.close();
        return _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], Popup.prototype, "updatePosition", null);
    tslib_1.__decorate([
        (0, decorators_1.throttle)(10),
        decorators_1.autobind
    ], Popup.prototype, "throttleUpdatePosition", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Popup.prototype, "close", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Popup.prototype, "closeOnOutsideClick", null);
    return Popup;
}(element_1.UIElement));
exports.Popup = Popup;


/***/ }),

/***/ 63682:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_709376__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ProgressBar = void 0;
var tslib_1 = __nested_webpack_require_709376__(20255);
__nested_webpack_require_709376__(50197);
var dom_1 = __nested_webpack_require_709376__(24263);
var element_1 = __nested_webpack_require_709376__(53929);
var ProgressBar = (function (_super) {
    tslib_1.__extends(ProgressBar, _super);
    function ProgressBar() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ProgressBar.prototype.className = function () {
        return 'ProgressBar';
    };
    ProgressBar.prototype.render = function () {
        return '<div><div></div></div>';
    };
    ProgressBar.prototype.show = function () {
        var container = this.j.workplace || this.j.container;
        container.appendChild(this.container);
        return this;
    };
    ProgressBar.prototype.hide = function () {
        dom_1.Dom.safeRemove(this.container);
        return this;
    };
    ProgressBar.prototype.progress = function (percentage) {
        this.container.style.width = percentage.toFixed(2) + '%';
        return this;
    };
    ProgressBar.prototype.destruct = function () {
        this.hide();
        return _super.prototype.destruct.call(this);
    };
    return ProgressBar;
}(element_1.UIElement));
exports.ProgressBar = ProgressBar;


/***/ }),

/***/ 43608:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_711014__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ViewWithToolbar = void 0;
var tslib_1 = __nested_webpack_require_711014__(20255);
__nested_webpack_require_711014__(39008);
var view_1 = __nested_webpack_require_711014__(75902);
var helpers_1 = __nested_webpack_require_711014__(40332);
var dom_1 = __nested_webpack_require_711014__(64968);
var factory_1 = __nested_webpack_require_711014__(81438);
var component_1 = __nested_webpack_require_711014__(56562);
var buttons_1 = __nested_webpack_require_711014__(97642);
var decorators_1 = __nested_webpack_require_711014__(43441);
var ViewWithToolbar = (function (_super) {
    tslib_1.__extends(ViewWithToolbar, _super);
    function ViewWithToolbar(options, isJodit) {
        if (isJodit === void 0) { isJodit = false; }
        var _this = _super.call(this, options, isJodit) || this;
        _this.toolbar = (0, factory_1.makeCollection)(_this);
        _this.defaultToolbarContainer = _this.c.div('jodit-toolbar__box');
        _this.registeredButtons = new Set();
        _this.groupToButtons = {};
        _this.isJodit = false;
        _this.isJodit = isJodit;
        _this.e.on('beforeToolbarBuild', _this.beforeToolbarBuild);
        return _this;
    }
    Object.defineProperty(ViewWithToolbar.prototype, "toolbarContainer", {
        get: function () {
            if (!this.o.fullsize &&
                ((0, helpers_1.isString)(this.o.toolbar) || dom_1.Dom.isHTMLElement(this.o.toolbar))) {
                return (0, helpers_1.resolveElement)(this.o.toolbar, this.o.shadowRoot || this.od);
            }
            this.o.toolbar &&
                dom_1.Dom.appendChildFirst(this.container, this.defaultToolbarContainer);
            return this.defaultToolbarContainer;
        },
        enumerable: false,
        configurable: true
    });
    ViewWithToolbar.prototype.setPanel = function (element) {
        this.o.toolbar = element;
        this.buildToolbar();
    };
    ViewWithToolbar.prototype.buildToolbar = function () {
        if (!this.o.toolbar) {
            return;
        }
        var buttons = this.o.buttons
            ? (0, helpers_1.splitArray)(this.o.buttons)
            : [];
        this.toolbar
            .setRemoveButtons(this.o.removeButtons)
            .build(buttons.concat(this.o.extraButtons || []))
            .appendTo(this.toolbarContainer);
    };
    ViewWithToolbar.prototype.getRegisteredButtonGroups = function () {
        return this.groupToButtons;
    };
    ViewWithToolbar.prototype.registerButton = function (btn) {
        var _a;
        this.registeredButtons.add(btn);
        var group = (_a = btn.group) !== null && _a !== void 0 ? _a : 'other';
        if (!this.groupToButtons[group]) {
            this.groupToButtons[group] = [];
        }
        if (btn.position != null) {
            this.groupToButtons[group][btn.position] = btn.name;
        }
        else {
            this.groupToButtons[group].push(btn.name);
        }
        return this;
    };
    ViewWithToolbar.prototype.unregisterButton = function (btn) {
        var _a;
        this.registeredButtons.delete(btn);
        var groupName = (_a = btn.group) !== null && _a !== void 0 ? _a : 'other', group = this.groupToButtons[groupName];
        if (group) {
            var index = group.indexOf(btn.name);
            if (index !== -1) {
                group.splice(index, 1);
            }
            if (group.length === 0) {
                delete this.groupToButtons[groupName];
            }
        }
        return this;
    };
    ViewWithToolbar.prototype.beforeToolbarBuild = function (items) {
        var _this = this;
        if (Object.keys(this.groupToButtons).length) {
            return items.map(function (item) {
                if ((0, buttons_1.isButtonGroup)(item) &&
                    item.group &&
                    _this.groupToButtons[item.group]) {
                    return {
                        group: item.group,
                        buttons: tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(item.buttons), false), tslib_1.__read(_this.groupToButtons[item.group]), false)
                    };
                }
                return item;
            });
        }
    };
    ViewWithToolbar.prototype.destruct = function () {
        if (this.isDestructed) {
            return;
        }
        this.setStatus(component_1.STATUSES.beforeDestruct);
        this.e.off('beforeToolbarBuild', this.beforeToolbarBuild);
        this.toolbar.destruct();
        _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], ViewWithToolbar.prototype, "beforeToolbarBuild", null);
    return ViewWithToolbar;
}(view_1.View));
exports.ViewWithToolbar = ViewWithToolbar;


/***/ }),

/***/ 75902:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_716026__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.View = void 0;
var tslib_1 = __nested_webpack_require_716026__(20255);
var storage_1 = __nested_webpack_require_716026__(77462);
var helpers_1 = __nested_webpack_require_716026__(40332);
var constants_1 = __nested_webpack_require_716026__(86893);
var modules_1 = __nested_webpack_require_716026__(87837);
var global_1 = __nested_webpack_require_716026__(17332);
var decorators_1 = __nested_webpack_require_716026__(43441);
var traits_1 = __nested_webpack_require_716026__(59829);
var event_emitter_1 = __nested_webpack_require_716026__(55395);
var messages_1 = __nested_webpack_require_716026__(71014);
var View = (function (_super) {
    tslib_1.__extends(View, _super);
    function View(options, isJodit) {
        if (isJodit === void 0) { isJodit = false; }
        var _this = _super.call(this) || this;
        _this.isJodit = isJodit;
        _this.isView = true;
        _this.parent = null;
        _this.mods = {};
        _this.components = new Set();
        _this.version = "3.24.9";
        _this.buffer = storage_1.Storage.makeStorage();
        _this.storage = storage_1.Storage.makeStorage(true, _this.componentName);
        _this.OPTIONS = View_1.defaultOptions;
        _this.__isFullSize = false;
        _this.__whoLocked = '';
        _this.isLockedNotBy = function (name) {
            return _this.isLocked && _this.__whoLocked !== name;
        };
        _this.__modulesInstances = new Map();
        _this.id = new Date().getTime().toString();
        _this.buffer = storage_1.Storage.makeStorage();
        _this.initOptions(options);
        _this.initOwners();
        _this.events = new event_emitter_1.EventEmitter(_this.od);
        _this.create = new modules_1.Create(_this.od);
        _this.container = _this.c.div("jodit ".concat(_this.componentName));
        _this.progressbar = new modules_1.ProgressBar(_this);
        _this.message = new messages_1.UIMessages(_this, _this.container);
        return _this;
    }
    View_1 = View;
    Object.defineProperty(View.prototype, "basePath", {
        get: function () {
            if (this.o.basePath) {
                return this.o.basePath;
            }
            return constants_1.BASE_PATH;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "defaultTimeout", {
        get: function () {
            return (0, helpers_1.isVoid)(this.o.defaultTimeout) ? 100 : this.o.defaultTimeout;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "c", {
        get: function () {
            return this.create;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "container", {
        get: function () {
            return this.__container;
        },
        set: function (container) {
            this.__container = container;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "e", {
        get: function () {
            return this.events;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "options", {
        get: function () {
            return this.__options;
        },
        set: function (options) {
            this.__options = options;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(View.prototype, "o", {
        get: function () {
            return this.options;
        },
        enumerable: false,
        configurable: true
    });
    View.prototype.i18n = function (text) {
        var params = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            params[_i - 1] = arguments[_i];
        }
        return (0, helpers_1.i18n)(text, params, this.options);
    };
    View.prototype.toggleFullSize = function (isFullSize) {
        if (isFullSize === undefined) {
            isFullSize = !this.__isFullSize;
        }
        if (isFullSize === this.__isFullSize) {
            return;
        }
        this.__isFullSize = isFullSize;
        this.e.fire('toggleFullSize', isFullSize);
    };
    Object.defineProperty(View.prototype, "isLocked", {
        get: function () {
            return this.__whoLocked !== '';
        },
        enumerable: false,
        configurable: true
    });
    View.prototype.lock = function (name) {
        if (name === void 0) { name = 'any'; }
        if (!this.isLocked) {
            this.__whoLocked = name;
            return true;
        }
        return false;
    };
    View.prototype.unlock = function () {
        if (this.isLocked) {
            this.__whoLocked = '';
            return true;
        }
        return false;
    };
    Object.defineProperty(View.prototype, "isFullSize", {
        get: function () {
            return this.__isFullSize;
        },
        enumerable: false,
        configurable: true
    });
    View.prototype.getVersion = function () {
        return "3.24.9";
    };
    View.getVersion = function () {
        return "3.24.9";
    };
    View.prototype.initOptions = function (options) {
        this.options = (0, helpers_1.ConfigProto)(options || {}, (0, helpers_1.ConfigProto)(this.options || {}, View_1.defaultOptions));
    };
    View.prototype.initOwners = function () {
        var _a;
        this.ownerWindow = (_a = this.o.ownerWindow) !== null && _a !== void 0 ? _a : window;
    };
    View.prototype.attachEvents = function (options) {
        var _this = this;
        if (!options) {
            return;
        }
        var e = options === null || options === void 0 ? void 0 : options.events;
        e && Object.keys(e).forEach(function (key) { return _this.e.on(key, e[key]); });
    };
    View.prototype.getInstance = function (moduleName, options) {
        var instance = this.e.fire((0, helpers_1.camelCase)('getInstance_' + moduleName), options);
        if (instance) {
            return instance;
        }
        var module = global_1.modules[moduleName], mi = this.__modulesInstances;
        if (!(0, helpers_1.isFunction)(module)) {
            throw (0, helpers_1.error)('Need real module name');
        }
        if (!mi.has(moduleName)) {
            var instance_1 = module.prototype instanceof modules_1.ViewComponent
                ? new module(this, options)
                : new module(options);
            this.components.add(instance_1);
            mi.set(moduleName, instance_1);
        }
        return mi.get(moduleName);
    };
    View.prototype.addDisclaimer = function (elm) {
        this.container.appendChild(elm);
    };
    View.prototype.beforeDestruct = function () {
        this.e.fire(modules_1.STATUSES.beforeDestruct, this);
        this.components.forEach(function (component) {
            if ((0, helpers_1.isDestructable)(component) && !component.isInDestruct) {
                component.destruct();
            }
        });
        this.components.clear();
    };
    View.prototype.destruct = function () {
        if (this.isDestructed) {
            return;
        }
        this.progressbar.destruct();
        this.message.destruct();
        if (this.async) {
            this.async.destruct();
        }
        if (this.events) {
            this.e.destruct();
        }
        if (this.buffer) {
            this.buffer.clear();
        }
        modules_1.Dom.safeRemove(this.container);
        _super.prototype.destruct.call(this);
    };
    var View_1;
    View.esNext = false;
    tslib_1.__decorate([
        (0, decorators_1.hook)(modules_1.STATUSES.beforeDestruct)
    ], View.prototype, "beforeDestruct", null);
    View = View_1 = tslib_1.__decorate([
        (0, decorators_1.derive)(traits_1.Mods, traits_1.Elms)
    ], View);
    return View;
}(modules_1.Component));
exports.View = View;
View.defaultOptions = {
    extraButtons: [],
    textIcons: false,
    namespace: '',
    removeButtons: [],
    zIndex: 100002,
    defaultTimeout: 100,
    fullsize: false,
    showTooltip: true,
    useNativeTooltip: false,
    buttons: [],
    globalFullSize: true,
    language: 'auto'
};


/***/ }),

/***/ 37920:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_724482__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Jodit = void 0;
var tslib_1 = __nested_webpack_require_724482__(20255);
var config_1 = __nested_webpack_require_724482__(93166);
var constants = __nested_webpack_require_724482__(86893);
var modules_1 = __nested_webpack_require_724482__(87837);
var helpers_1 = __nested_webpack_require_724482__(40332);
var storage_1 = __nested_webpack_require_724482__(77462);
var constants_1 = __nested_webpack_require_724482__(86893);
var global_1 = __nested_webpack_require_724482__(17332);
var decorators_1 = __nested_webpack_require_724482__(43441);
var traits_1 = __nested_webpack_require_724482__(59829);
var request_1 = __nested_webpack_require_724482__(30056);
var __defaultStyleDisplayKey = 'data-jodit-default-style-display';
var __defaultClassesKey = 'data-jodit-default-classes';
var Jodit = (function (_super) {
    tslib_1.__extends(Jodit, _super);
    function Jodit(element, options) {
        var _this = _super.call(this, options, true) || this;
        _this.isJodit = true;
        _this.commands = new Map();
        _this.__selectionLocked = null;
        _this.__wasReadOnly = false;
        _this.createInside = new modules_1.Create(function () { return _this.ed; }, _this.o.createAttributes);
        _this.editorIsActive = false;
        _this.__mode = constants.MODE_WYSIWYG;
        _this.__callChangeCount = 0;
        _this.__isSilentChange = false;
        _this.__elementToPlace = new Map();
        try {
            var elementSource = (0, helpers_1.resolveElement)(element, _this.o.shadowRoot || _this.od);
            if (Jodit_1.isJoditAssigned(elementSource)) {
                return elementSource.component;
            }
        }
        catch (e) {
            _this.destruct();
            throw e;
        }
        _this.setStatus(modules_1.STATUSES.beforeInit);
        _this.id =
            (0, helpers_1.attr)((0, helpers_1.resolveElement)(element, _this.o.shadowRoot || _this.od), 'id') ||
                new Date().getTime().toString();
        global_1.instances[_this.id] = _this;
        _this.storage = storage_1.Storage.makeStorage(true, _this.id);
        _this.attachEvents(options);
        _this.e.on(_this.ow, 'resize', function () {
            if (_this.e) {
                _this.e.fire('resize');
            }
        });
        _this.e.on('prepareWYSIWYGEditor', _this.__prepareWYSIWYGEditor);
        _this.selection = new modules_1.Select(_this);
        var beforeInitHookResult = _this.beforeInitHook();
        (0, helpers_1.callPromise)(beforeInitHookResult, function () {
            _this.e.fire('beforeInit', _this);
            global_1.pluginSystem.__init(_this);
            _this.e.fire('afterPluginSystemInit', _this);
            _this.e.on('changePlace', function () {
                _this.setReadOnly(_this.o.readonly);
                _this.setDisabled(_this.o.disabled);
            });
            _this.places.length = 0;
            var addPlaceResult = _this.addPlace(element, options);
            global_1.instances[_this.id] = _this;
            var init = function () {
                if (_this.e) {
                    _this.e.fire('afterInit', _this);
                }
                _this.afterInitHook();
                _this.setStatus(modules_1.STATUSES.ready);
                _this.e.fire('afterConstructor', _this);
            };
            (0, helpers_1.callPromise)(addPlaceResult, init);
        });
        return _this;
    }
    Jodit_1 = Jodit;
    Jodit.prototype.className = function () {
        return 'Jodit';
    };
    Jodit.prototype.waitForReady = function () {
        var _this = this;
        if (this.isReady) {
            return Promise.resolve(this);
        }
        return this.async.promise(function (resolve) {
            _this.hookStatus('ready', function () { return resolve(_this); });
        });
    };
    Object.defineProperty(Jodit, "ready", {
        get: function () {
            return new Promise(function (resolve) {
                global_1.eventEmitter.on('oditready', resolve);
            });
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "text", {
        get: function () {
            if (this.editor) {
                return this.editor.innerText || '';
            }
            var div = this.createInside.div();
            div.innerHTML = this.getElementValue();
            return div.innerText || '';
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "defaultTimeout", {
        get: function () {
            return (0, helpers_1.isNumber)(this.o.defaultTimeout)
                ? this.o.defaultTimeout
                : config_1.Config.defaultOptions.defaultTimeout;
        },
        enumerable: false,
        configurable: true
    });
    Jodit.atom = function (object) {
        return (0, helpers_1.markAsAtomic)(object);
    };
    Jodit.make = function (element, options) {
        return new this(element, options);
    };
    Jodit.isJoditAssigned = function (element) {
        return (element &&
            (0, helpers_1.isJoditObject)(element.component) &&
            !element.component.isInDestruct);
    };
    Object.defineProperty(Jodit, "defaultOptions", {
        get: function () {
            return config_1.Config.defaultOptions;
        },
        enumerable: false,
        configurable: true
    });
    Jodit.prototype.__setPlaceField = function (field, value) {
        if (!this.currentPlace) {
            this.currentPlace = {};
            this.places = [this.currentPlace];
        }
        this.currentPlace[field] = value;
    };
    Object.defineProperty(Jodit.prototype, "element", {
        get: function () {
            return this.currentPlace.element;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "editor", {
        get: function () {
            return this.currentPlace.editor;
        },
        set: function (editor) {
            this.__setPlaceField('editor', editor);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "container", {
        get: function () {
            return this.currentPlace.container;
        },
        set: function (container) {
            this.__setPlaceField('container', container);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "workplace", {
        get: function () {
            return this.currentPlace.workplace;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "statusbar", {
        get: function () {
            return this.currentPlace.statusbar;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "iframe", {
        get: function () {
            return this.currentPlace.iframe;
        },
        set: function (iframe) {
            this.__setPlaceField('iframe', iframe);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "history", {
        get: function () {
            return this.currentPlace.history;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "observer", {
        get: function () {
            return this.history;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "editorWindow", {
        get: function () {
            return this.currentPlace.editorWindow;
        },
        set: function (win) {
            this.__setPlaceField('editorWindow', win);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "ew", {
        get: function () {
            return this.editorWindow;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "editorDocument", {
        get: function () {
            return this.currentPlace.editorWindow.document;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "ed", {
        get: function () {
            return this.editorDocument;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "options", {
        get: function () {
            return this.currentPlace.options;
        },
        set: function (opt) {
            this.__setPlaceField('options', opt);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "s", {
        get: function () {
            return this.selection;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "uploader", {
        get: function () {
            return this.getInstance('Uploader', this.o.uploader);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "filebrowser", {
        get: function () {
            var jodit = this;
            var options = (0, helpers_1.ConfigProto)({
                defaultTimeout: jodit.defaultTimeout,
                uploader: jodit.o.uploader,
                language: jodit.o.language,
                license: jodit.o.license,
                theme: jodit.o.theme,
                shadowRoot: jodit.o.shadowRoot,
                defaultCallback: function (data) {
                    if (data.files && data.files.length) {
                        data.files.forEach(function (file, i) {
                            var url = data.baseurl + file;
                            var isImage = data.isImages
                                ? data.isImages[i]
                                : false;
                            if (isImage) {
                                jodit.s.insertImage(url, null, jodit.o.imageDefaultWidth);
                            }
                            else {
                                jodit.s.insertNode(jodit.createInside.fromHTML("<a href='".concat(url, "' title='").concat(url, "'>").concat(url, "</a>")));
                            }
                        });
                    }
                }
            }, this.o.filebrowser);
            return jodit.getInstance('FileBrowser', options);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Jodit.prototype, "mode", {
        get: function () {
            return this.__mode;
        },
        set: function (mode) {
            this.setMode(mode);
        },
        enumerable: false,
        configurable: true
    });
    Jodit.prototype.getNativeEditorValue = function () {
        var value = this.e.fire('beforeGetNativeEditorValue');
        if ((0, helpers_1.isString)(value)) {
            return value;
        }
        if (this.editor) {
            return this.editor.innerHTML;
        }
        return this.getElementValue();
    };
    Jodit.prototype.setNativeEditorValue = function (value) {
        var data = {
            value: value
        };
        if (this.e.fire('beforeSetNativeEditorValue', data)) {
            return;
        }
        if (this.editor) {
            this.editor.innerHTML = data.value;
        }
    };
    Object.defineProperty(Jodit.prototype, "value", {
        get: function () {
            return this.getEditorValue();
        },
        set: function (html) {
            this.setEditorValue(html);
            this.history.__processChanges();
        },
        enumerable: false,
        configurable: true
    });
    Jodit.prototype.synchronizeValues = function () {
        this.__imdSynchronizeValues();
    };
    Jodit.prototype.__imdSynchronizeValues = function () {
        this.setEditorValue();
    };
    Jodit.prototype.getEditorValue = function (removeSelectionMarkers, consumer) {
        if (removeSelectionMarkers === void 0) { removeSelectionMarkers = true; }
        var value;
        value = this.e.fire('beforeGetValueFromEditor', consumer);
        if (value !== undefined) {
            return value;
        }
        value = this.getNativeEditorValue().replace(constants.INVISIBLE_SPACE_REG_EXP(), '');
        if (removeSelectionMarkers) {
            value = value.replace(/<span[^>]+id="jodit-selection_marker_[^>]+><\/span>/g, '');
        }
        if (value === '<br>') {
            value = '';
        }
        var new_value = { value: value };
        this.e.fire('afterGetValueFromEditor', new_value, consumer);
        return new_value.value;
    };
    Jodit.prototype.setEditorValue = function (value) {
        var newValue = this.e.fire('beforeSetValueToEditor', value);
        if (newValue === false) {
            return;
        }
        if ((0, helpers_1.isString)(newValue)) {
            value = newValue;
        }
        if (!this.editor) {
            if (value !== undefined) {
                this.__setElementValue(value);
            }
            return;
        }
        if (!(0, helpers_1.isString)(value) && !(0, helpers_1.isVoid)(value)) {
            throw (0, helpers_1.error)('value must be string');
        }
        if (!(0, helpers_1.isVoid)(value) && this.getNativeEditorValue() !== value) {
            this.setNativeEditorValue(value);
        }
        this.e.fire('postProcessSetEditorValue');
        var old_value = this.getElementValue(), new_value = this.getEditorValue();
        if (!this.__isSilentChange &&
            old_value !== new_value &&
            this.__callChangeCount < constants.SAFE_COUNT_CHANGE_CALL) {
            this.__setElementValue(new_value);
            this.__callChangeCount += 1;
            if (false) // removed by dead control flow
{}
            try {
                this.history.__upTick();
                this.e.fire('change', new_value, old_value);
                this.e.fire(this.history, 'change', new_value, old_value);
            }
            finally {
                this.__callChangeCount = 0;
            }
        }
    };
    Jodit.prototype.updateElementValue = function () {
        this.__setElementValue(this.getEditorValue());
    };
    Jodit.prototype.getElementValue = function () {
        return this.element.value !== undefined
            ? this.element.value
            : this.element.innerHTML;
    };
    Jodit.prototype.setElementValue = function (value) {
        var oldValue = this.getElementValue();
        if (value === undefined || ((0, helpers_1.isString)(value) && value !== oldValue)) {
            value !== null && value !== void 0 ? value : (value = oldValue);
            if (value !== this.getEditorValue()) {
                this.setEditorValue(value);
            }
        }
        return this.__setElementValue(value);
    };
    Jodit.prototype.__setElementValue = function (value) {
        var _this = this;
        if (!(0, helpers_1.isString)(value)) {
            throw (0, helpers_1.error)('value must be string');
        }
        if (this.element !== this.container &&
            value !== this.getElementValue()) {
            var data_1 = { value: value };
            var res = this.e.fire('beforeSetElementValue', data_1);
            (0, helpers_1.callPromise)(res, function () {
                if (_this.element.value !== undefined) {
                    _this.element.value = data_1.value;
                }
                else {
                    _this.element.innerHTML = data_1.value;
                }
                _this.e.fire('afterSetElementValue', data_1);
            });
        }
    };
    Jodit.prototype.registerCommand = function (commandNameOriginal, command, options) {
        var commandName = commandNameOriginal.toLowerCase();
        var commands = this.commands.get(commandName);
        if (commands === undefined) {
            commands = [];
            this.commands.set(commandName, commands);
        }
        commands.push(command);
        if (!(0, helpers_1.isFunction)(command)) {
            var hotkeys = this.o.commandToHotkeys[commandName] ||
                this.o.commandToHotkeys[commandNameOriginal] ||
                command.hotkeys;
            if (hotkeys) {
                this.registerHotkeyToCommand(hotkeys, commandName, options === null || options === void 0 ? void 0 : options.stopPropagation);
            }
        }
        return this;
    };
    Jodit.prototype.registerHotkeyToCommand = function (hotkeys, commandName, shouldStop) {
        var _this = this;
        if (shouldStop === void 0) { shouldStop = true; }
        var shortcuts = (0, helpers_1.asArray)(hotkeys)
            .map(helpers_1.normalizeKeyAliases)
            .map(function (hotkey) { return hotkey + '.hotkey'; })
            .join(' ');
        this.e
            .off(shortcuts)
            .on(shortcuts, function (type, stop) {
            if (stop) {
                stop.shouldStop = shouldStop !== null && shouldStop !== void 0 ? shouldStop : true;
            }
            return _this.execCommand(commandName);
        });
    };
    Jodit.prototype.execCommand = function (command, showUI, value) {
        var _a;
        var args = [];
        for (var _i = 3; _i < arguments.length; _i++) {
            args[_i - 3] = arguments[_i];
        }
        if (!this.s.isFocused()) {
            this.s.focus();
        }
        if (this.o.readonly &&
            !this.o.allowCommandsInReadOnly.includes(command)) {
            return;
        }
        var result;
        command = command.toLowerCase();
        result = (_a = this.e).fire.apply(_a, tslib_1.__spreadArray(['beforeCommand', command, showUI, value], tslib_1.__read(args), false));
        if (result !== false) {
            result = this.__execCustomCommands.apply(this, tslib_1.__spreadArray([command, showUI, value], tslib_1.__read(args), false));
        }
        if (result !== false) {
            this.s.focus();
            if (command === 'selectall') {
                this.s.select(this.editor, true);
                this.s.expandSelection();
            }
            else {
                try {
                    result = this.nativeExecCommand(command, showUI, value);
                }
                catch (e) {
                    if (false) // removed by dead control flow
{}
                }
            }
        }
        this.e.fire('afterCommand', command, showUI, value);
        this.setEditorValue();
        return result;
    };
    Jodit.prototype.nativeExecCommand = function (command, showUI, value) {
        this.__isSilentChange = true;
        try {
            return this.ed.execCommand(command, showUI, value);
        }
        finally {
            this.__isSilentChange = false;
        }
    };
    Jodit.prototype.__execCustomCommands = function (commandName, second, third) {
        var _this = this;
        var args = [];
        for (var _i = 3; _i < arguments.length; _i++) {
            args[_i - 3] = arguments[_i];
        }
        commandName = commandName.toLowerCase();
        var commands = this.commands.get(commandName);
        if (commands !== undefined) {
            var result_1;
            commands.forEach(function (command) {
                var callback;
                if ((0, helpers_1.isFunction)(command)) {
                    callback = command;
                }
                else {
                    callback = command.exec;
                }
                var resultCurrent = callback.call.apply(callback, tslib_1.__spreadArray([_this,
                    commandName,
                    second,
                    third], tslib_1.__read(args), false));
                if (resultCurrent !== undefined) {
                    result_1 = resultCurrent;
                }
            });
            return result_1;
        }
    };
    Jodit.prototype.lock = function (name) {
        if (name === void 0) { name = 'any'; }
        if (_super.prototype.lock.call(this, name)) {
            this.__selectionLocked = this.s.save();
            this.s.clear();
            this.editor.classList.add('jodit_lock');
            this.e.fire('lock', true);
            return true;
        }
        return false;
    };
    Jodit.prototype.unlock = function () {
        if (_super.prototype.unlock.call(this)) {
            this.editor.classList.remove('jodit_lock');
            if (this.__selectionLocked) {
                this.s.restore();
            }
            this.e.fire('lock', false);
            return true;
        }
        return false;
    };
    Jodit.prototype.getMode = function () {
        return this.mode;
    };
    Jodit.prototype.isEditorMode = function () {
        return this.getRealMode() === constants.MODE_WYSIWYG;
    };
    Jodit.prototype.getRealMode = function () {
        if (this.getMode() !== constants.MODE_SPLIT) {
            return this.getMode();
        }
        var active = this.od.activeElement;
        if (active &&
            (active === this.iframe ||
                modules_1.Dom.isOrContains(this.editor, active) ||
                modules_1.Dom.isOrContains(this.toolbar.container, active))) {
            return constants.MODE_WYSIWYG;
        }
        return constants.MODE_SOURCE;
    };
    Jodit.prototype.setMode = function (mode) {
        var _this = this;
        var oldMode = this.getMode();
        var data = {
            mode: parseInt(mode.toString(), 10)
        }, modeClasses = [
            'jodit-wysiwyg_mode',
            'jodit-source__mode',
            'jodit_split_mode'
        ];
        if (this.e.fire('beforeSetMode', data) === false) {
            return;
        }
        this.__mode = [
            constants.MODE_SOURCE,
            constants.MODE_WYSIWYG,
            constants.MODE_SPLIT
        ].includes(data.mode)
            ? data.mode
            : constants.MODE_WYSIWYG;
        if (this.o.saveModeInStorage) {
            this.storage.set('jodit_default_mode', this.mode);
        }
        modeClasses.forEach(function (className) {
            _this.container.classList.remove(className);
        });
        this.container.classList.add(modeClasses[this.mode - 1]);
        if (oldMode !== this.getMode()) {
            this.e.fire('afterSetMode');
        }
    };
    Jodit.prototype.toggleMode = function () {
        var mode = this.getMode();
        if ([
            constants.MODE_SOURCE,
            constants.MODE_WYSIWYG,
            this.o.useSplitMode ? constants.MODE_SPLIT : 9
        ].includes(mode + 1)) {
            mode += 1;
        }
        else {
            mode = constants.MODE_WYSIWYG;
        }
        this.setMode(mode);
    };
    Jodit.prototype.setDisabled = function (isDisabled) {
        this.o.disabled = isDisabled;
        var readOnly = this.__wasReadOnly;
        this.setReadOnly(isDisabled || readOnly);
        this.__wasReadOnly = readOnly;
        if (this.editor) {
            this.editor.setAttribute('aria-disabled', isDisabled.toString());
            this.container.classList.toggle('jodit_disabled', isDisabled);
            this.e.fire('disabled', isDisabled);
        }
    };
    Jodit.prototype.getDisabled = function () {
        return this.o.disabled;
    };
    Jodit.prototype.setReadOnly = function (isReadOnly) {
        if (this.__wasReadOnly === isReadOnly) {
            return;
        }
        this.__wasReadOnly = isReadOnly;
        this.o.readonly = isReadOnly;
        if (isReadOnly) {
            this.editor && this.editor.removeAttribute('contenteditable');
        }
        else {
            this.editor && this.editor.setAttribute('contenteditable', 'true');
        }
        this.e && this.e.fire('readonly', isReadOnly);
    };
    Jodit.prototype.getReadOnly = function () {
        return this.o.readonly;
    };
    Jodit.prototype.focus = function () {
        if (this.getMode() !== constants.MODE_SOURCE) {
            this.s.focus();
        }
    };
    Object.defineProperty(Jodit.prototype, "isFocused", {
        get: function () {
            return this.s.isFocused();
        },
        enumerable: false,
        configurable: true
    });
    Jodit.prototype.beforeInitHook = function () {
    };
    Jodit.prototype.afterInitHook = function () {
    };
    Jodit.prototype.initOptions = function (options) {
        this.options = ((0, helpers_1.ConfigProto)(options || {}, config_1.Config.defaultOptions));
    };
    Jodit.prototype.initOwners = function () {
        this.editorWindow = this.o.ownerWindow;
        this.ownerWindow = this.o.ownerWindow;
    };
    Jodit.prototype.addPlace = function (source, options) {
        var _this = this;
        var element = (0, helpers_1.resolveElement)(source, this.o.shadowRoot || this.od);
        this.attachEvents(options);
        if (element.attributes) {
            (0, helpers_1.toArray)(element.attributes).forEach(function (attr) {
                var name = attr.name;
                var value = attr.value;
                if (config_1.Config.defaultOptions[name] !== undefined &&
                    (!options || options[name] === undefined)) {
                    if (['readonly', 'disabled'].indexOf(name) !== -1) {
                        value = value === '' || value === 'true';
                    }
                    if (/^[0-9]+(\.)?([0-9]+)?$/.test(value.toString())) {
                        value = Number(value);
                    }
                    _this.options[name] = value;
                }
            });
        }
        var container = this.c.div('jodit-container');
        container.classList.add('jodit');
        container.classList.add('jodit-container');
        container.classList.add("jodit_theme_".concat(this.o.theme || 'default'));
        addClassNames(this.o.className, container);
        if (this.o.containerStyle) {
            (0, helpers_1.css)(container, this.o.containerStyle);
        }
        var styleValues = this.o.styleValues;
        Object.keys(styleValues).forEach(function (key) {
            var property = (0, helpers_1.kebabCase)(key);
            container.style.setProperty("--jd-".concat(property), styleValues[key]);
        });
        container.setAttribute('contenteditable', 'false');
        var buffer = null;
        if (this.o.inline) {
            if (['TEXTAREA', 'INPUT'].indexOf(element.nodeName) === -1) {
                container = element;
                element.setAttribute(__defaultClassesKey, element.className.toString());
                buffer = container.innerHTML;
                container.innerHTML = '';
            }
            container.classList.add('jodit_inline');
            container.classList.add('jodit-container');
        }
        if (element !== container) {
            if (element.style.display) {
                element.setAttribute(__defaultStyleDisplayKey, element.style.display);
            }
            element.style.display = 'none';
        }
        var workplace = this.c.div('jodit-workplace', {
            contenteditable: false
        });
        container.appendChild(workplace);
        this.message.destruct();
        this.message = new modules_1.UIMessages(this, workplace);
        if (element.parentNode && element !== container) {
            element.parentNode.insertBefore(container, element);
        }
        Object.defineProperty(element, 'component', {
            enumerable: false,
            configurable: true,
            value: this
        });
        var editor = this.c.div('jodit-wysiwyg', {
            contenteditable: true,
            'aria-disabled': false,
            tabindex: this.o.tabIndex
        });
        workplace.appendChild(editor);
        var currentPlace = {
            editor: editor,
            element: element,
            container: container,
            workplace: workplace,
            statusbar: new modules_1.StatusBar(this, container),
            options: this.isReady
                ? (0, helpers_1.ConfigProto)(options || {}, config_1.Config.defaultOptions)
                : this.options,
            history: new modules_1.History(this),
            editorWindow: this.ow
        };
        this.__elementToPlace.set(editor, currentPlace);
        this.setCurrentPlace(currentPlace);
        this.places.push(currentPlace);
        this.setNativeEditorValue(this.getElementValue());
        var initResult = this.__initEditor(buffer);
        var opt = this.options;
        var init = function () {
            if (opt.enableDragAndDropFileToEditor &&
                opt.uploader &&
                (opt.uploader.url || opt.uploader.insertImageAsBase64URI)) {
                _this.uploader.bind(_this.editor);
            }
            if (!_this.__elementToPlace.get(_this.editor)) {
                _this.__elementToPlace.set(_this.editor, currentPlace);
            }
            _this.e.fire('afterAddPlace', currentPlace);
        };
        return (0, helpers_1.callPromise)(initResult, init);
    };
    Jodit.prototype.addDisclaimer = function (elm) {
        this.workplace.appendChild(elm);
    };
    Jodit.prototype.setCurrentPlace = function (place) {
        if (this.currentPlace === place) {
            return;
        }
        if (!this.isEditorMode()) {
            this.setMode(constants.MODE_WYSIWYG);
        }
        this.currentPlace = place;
        this.buildToolbar();
        if (this.isReady) {
            this.e.fire('changePlace', place);
        }
    };
    Jodit.prototype.__initEditor = function (buffer) {
        var _this = this;
        var result = this.__createEditor();
        return (0, helpers_1.callPromise)(result, function () {
            if (_this.isInDestruct) {
                return;
            }
            if (_this.element !== _this.container) {
                var value = _this.getElementValue();
                if (value !== _this.getEditorValue()) {
                    _this.setEditorValue(value);
                }
            }
            else {
                buffer != null && _this.setEditorValue(buffer);
            }
            var mode = _this.o.defaultMode;
            if (_this.o.saveModeInStorage) {
                var localMode = _this.storage.get('jodit_default_mode');
                if (typeof localMode === 'string') {
                    mode = parseInt(localMode, 10);
                }
            }
            _this.setMode(mode);
            if (_this.o.readonly) {
                _this.__wasReadOnly = false;
                _this.setReadOnly(true);
            }
            if (_this.o.disabled) {
                _this.setDisabled(true);
            }
            try {
                _this.ed.execCommand('defaultParagraphSeparator', false, _this.o.enter.toLowerCase());
            }
            catch (_a) { }
            try {
                _this.ed.execCommand('enableObjectResizing', false, 'false');
            }
            catch (_b) { }
            try {
                _this.ed.execCommand('enableInlineTableEditing', false, 'false');
            }
            catch (_c) { }
        });
    };
    Jodit.prototype.__createEditor = function () {
        var _this = this;
        var defaultEditorArea = this.editor;
        var stayDefault = this.e.fire('createEditor', this);
        return (0, helpers_1.callPromise)(stayDefault, function () {
            if (_this.isInDestruct) {
                return;
            }
            if (stayDefault === false || (0, helpers_1.isPromise)(stayDefault)) {
                modules_1.Dom.safeRemove(defaultEditorArea);
            }
            addClassNames(_this.o.editorClassName || _this.o.editorCssClass, _this.editor);
            if (_this.o.editorCssClass) {
                _this.editor.classList.add(_this.o.editorCssClass);
            }
            if (_this.o.style) {
                (0, helpers_1.css)(_this.editor, _this.o.style);
            }
            _this.e
                .on('synchro', function () {
                _this.setEditorValue();
            })
                .on('focus', function () {
                _this.editorIsActive = true;
            })
                .on('blur', function () { return (_this.editorIsActive = false); });
            _this.__prepareWYSIWYGEditor();
            if (_this.o.direction) {
                var direction = _this.o.direction.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';
                _this.container.style.direction = direction;
                _this.container.setAttribute('dir', direction);
                _this.toolbar.setDirection(direction);
            }
            if (_this.o.triggerChangeEvent) {
                _this.e.on('change', _this.async.debounce(function () {
                    _this.e && _this.e.fire(_this.element, 'change');
                }, _this.defaultTimeout));
            }
        });
    };
    Jodit.prototype.__prepareWYSIWYGEditor = function () {
        var _this = this;
        var editor = this.editor;
        if (this.o.direction) {
            var direction = this.o.direction.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';
            this.editor.style.direction = direction;
            this.editor.setAttribute('dir', direction);
        }
        this.e
            .on(editor, 'mousedown touchstart focus', function () {
            var place = _this.__elementToPlace.get(editor);
            if (place) {
                _this.setCurrentPlace(place);
            }
        })
            .on(editor, 'compositionend', this.synchronizeValues)
            .on(editor, 'selectionchange selectionstart keydown keyup input keypress dblclick mousedown mouseup ' +
            'click copy cut dragstart drop dragover paste resize touchstart touchend focus blur', function (event) {
            if (_this.o.readonly || _this.__isSilentChange) {
                return;
            }
            var w = _this.ew;
            if (event instanceof w.KeyboardEvent &&
                event.isComposing) {
                return;
            }
            if (_this.e && _this.e.fire) {
                if (_this.e.fire(event.type, event) === false) {
                    return false;
                }
                _this.synchronizeValues();
            }
        });
    };
    Jodit.prototype.fetch = function (url, options) {
        var _this = this;
        var ajax = new request_1.Ajax(tslib_1.__assign({ url: url }, options), this.o.defaultAjaxOptions);
        var destroy = function () {
            _this.e.off('beforeDestruct', destroy);
            _this.progressbar.progress(100).hide();
            ajax.destruct();
        };
        this.e.one('beforeDestruct', destroy);
        this.progressbar.show().progress(30);
        var promise = ajax.send();
        promise.finally(destroy).catch(function () { return null; });
        return promise;
    };
    Jodit.prototype.destruct = function () {
        var _this = this;
        if (this.isInDestruct) {
            return;
        }
        this.setStatus(modules_1.STATUSES.beforeDestruct);
        this.__elementToPlace.clear();
        if (!this.editor) {
            return;
        }
        var buffer = this.getEditorValue();
        this.storage.clear();
        this.buffer.clear();
        this.commands.clear();
        this.__selectionLocked = null;
        this.e.off(this.ow, 'resize');
        this.e.off(this.ow);
        this.e.off(this.od);
        this.e.off(this.od.body);
        this.places.forEach(function (_a) {
            var container = _a.container, workplace = _a.workplace, statusbar = _a.statusbar, element = _a.element, iframe = _a.iframe, editor = _a.editor, history = _a.history;
            if (element !== container) {
                if (element.hasAttribute(__defaultStyleDisplayKey)) {
                    var display = (0, helpers_1.attr)(element, __defaultStyleDisplayKey);
                    if (display) {
                        element.style.display = display;
                        element.removeAttribute(__defaultStyleDisplayKey);
                    }
                }
                else {
                    element.style.display = '';
                }
            }
            else {
                if (element.hasAttribute(__defaultClassesKey)) {
                    element.className =
                        (0, helpers_1.attr)(element, __defaultClassesKey) || '';
                    element.removeAttribute(__defaultClassesKey);
                }
            }
            if (element.hasAttribute('style') && !(0, helpers_1.attr)(element, 'style')) {
                element.removeAttribute('style');
            }
            statusbar.destruct();
            _this.e.off(container);
            _this.e.off(element);
            _this.e.off(editor);
            modules_1.Dom.safeRemove(workplace);
            modules_1.Dom.safeRemove(editor);
            if (container !== element) {
                modules_1.Dom.safeRemove(container);
            }
            Object.defineProperty(element, 'component', {
                enumerable: false,
                configurable: true,
                value: null
            });
            modules_1.Dom.safeRemove(iframe);
            if (container === element) {
                element.innerHTML = buffer;
            }
            history.destruct();
        });
        this.places.length = 0;
        this.currentPlace = {};
        delete global_1.instances[this.id];
        _super.prototype.destruct.call(this);
    };
    var Jodit_1;
    Jodit.fatMode = false;
    Jodit.plugins = global_1.pluginSystem;
    Jodit.modules = global_1.modules;
    Jodit.ns = global_1.modules;
    Jodit.decorators = {};
    Jodit.constants = constants;
    Jodit.instances = global_1.instances;
    Jodit.lang = constants_1.lang;
    Jodit.core = {
        Plugin: modules_1.Plugin
    };
    tslib_1.__decorate([
        decorators_1.cache
    ], Jodit.prototype, "uploader", null);
    tslib_1.__decorate([
        decorators_1.cache
    ], Jodit.prototype, "filebrowser", null);
    tslib_1.__decorate([
        (0, decorators_1.throttle)()
    ], Jodit.prototype, "synchronizeValues", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':internalChange')
    ], Jodit.prototype, "updateElementValue", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Jodit.prototype, "__prepareWYSIWYGEditor", null);
    Jodit = Jodit_1 = tslib_1.__decorate([
        (0, decorators_1.derive)(traits_1.Dlgs)
    ], Jodit);
    return Jodit;
}(modules_1.ViewWithToolbar));
exports.Jodit = Jodit;
function addClassNames(className, elm) {
    if (className) {
        className.split(/\s+/).forEach(function (cn) { return elm.classList.add(cn); });
    }
}


/***/ }),

/***/ 26435:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_763617__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var checker_1 = __nested_webpack_require_763617__(10172);
var exp = {};
if (true) {
    var ar = __nested_webpack_require_763617__(90643);
    var cs_cz = __nested_webpack_require_763617__(52532);
    var de = __nested_webpack_require_763617__(75178);
    var en = __nested_webpack_require_763617__(51048);
    var es = __nested_webpack_require_763617__(22999);
    var fr = __nested_webpack_require_763617__(34145);
    var he = __nested_webpack_require_763617__(40272);
    var hu = __nested_webpack_require_763617__(2978);
    var id = __nested_webpack_require_763617__(99113);
    var it = __nested_webpack_require_763617__(51923);
    var ja = __nested_webpack_require_763617__(21268);
    var ko = __nested_webpack_require_763617__(37289);
    var mn = __nested_webpack_require_763617__(26501);
    var nl = __nested_webpack_require_763617__(17084);
    var pl = __nested_webpack_require_763617__(96891);
    var pt_br = __nested_webpack_require_763617__(31211);
    var ru = __nested_webpack_require_763617__(31109);
    var tr = __nested_webpack_require_763617__(79375);
    var zh_cn = __nested_webpack_require_763617__(21042);
    var zh_tw = __nested_webpack_require_763617__(73895);
    exp = {
        ar: ar,
        cs_cz: cs_cz,
        de: de,
        en: en,
        es: es,
        fr: fr,
        he: he,
        hu: hu,
        id: id,
        it: it,
        ja: ja,
        ko: ko,
        mn: mn,
        nl: nl,
        pl: pl,
        pt_br: pt_br,
        ru: ru,
        tr: tr,
        zh_cn: zh_cn,
        zh_tw: zh_tw
    };
}
var keys = __nested_webpack_require_763617__(11399);
var get = function (value) {
    return value ? value.default || value : {};
}, hashLang = {};
if ((0, checker_1.isArray)(get(keys))) {
    get(keys).forEach(function (key, index) {
        hashLang[index] = key;
    });
}
Object.keys(exp).forEach(function (lang) {
    var list = get(exp[lang]);
    if ((0, checker_1.isArray)(list)) {
        exp[lang] = {};
        list.forEach(function (value, index) {
            exp[lang][hashLang[index]] = value;
        });
    }
    else {
        exp[lang] = list;
    }
});
exports["default"] = exp;


/***/ }),

/***/ 60403:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_765869__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ContextMenu = void 0;
var tslib_1 = __nested_webpack_require_765869__(20255);
__nested_webpack_require_765869__(47086);
var popup_1 = __nested_webpack_require_765869__(35799);
var button_1 = __nested_webpack_require_765869__(96516);
var checker_1 = __nested_webpack_require_765869__(10172);
var component_1 = __nested_webpack_require_765869__(11441);
var ContextMenu = (function (_super) {
    tslib_1.__extends(ContextMenu, _super);
    function ContextMenu() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ContextMenu.prototype.className = function () {
        return 'ContextMenu';
    };
    ContextMenu.prototype.show = function (x, y, actions) {
        var _this = this;
        var self = this, content = this.j.c.div(this.getFullElName('actions'));
        if (!(0, checker_1.isArray)(actions)) {
            return;
        }
        actions.forEach(function (item) {
            if (!item) {
                return;
            }
            var action = (0, button_1.Button)(_this.jodit, item.icon || 'empty', item.title);
            _this.jodit && action.setParentView(_this.jodit);
            action.setMod('context', 'menu');
            action.onAction(function (e) {
                var _a;
                (_a = item.exec) === null || _a === void 0 ? void 0 : _a.call(self, e);
                self.close();
                return false;
            });
            content.appendChild(action.container);
        });
        this.setContent(content).open(function () { return ({ left: x, top: y, width: 0, height: 0 }); }, true);
    };
    ContextMenu = tslib_1.__decorate([
        component_1.component
    ], ContextMenu);
    return ContextMenu;
}(popup_1.Popup));
exports.ContextMenu = ContextMenu;


/***/ }),

/***/ 97528:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_767958__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Alert = void 0;
var dialog_1 = __nested_webpack_require_767958__(6690);
var helpers_1 = __nested_webpack_require_767958__(40332);
var dom_1 = __nested_webpack_require_767958__(64968);
var ui_1 = __nested_webpack_require_767958__(2074);
function Alert(msg, title, callback, className) {
    if (className === void 0) { className = 'jodit-dialog_alert'; }
    if ((0, helpers_1.isFunction)(title)) {
        callback = title;
        title = undefined;
    }
    var dialog = this instanceof dialog_1.Dialog ? this : new dialog_1.Dialog(), container = dialog.c.div(className), okButton = (0, ui_1.Button)(dialog, 'ok', 'Ok');
    (0, helpers_1.asArray)(msg).forEach(function (oneMessage) {
        container.appendChild(dom_1.Dom.isNode(oneMessage) ? oneMessage : dialog.c.fromHTML(oneMessage));
    });
    okButton.onAction(function () {
        if (!callback || !(0, helpers_1.isFunction)(callback) || callback(dialog) !== false) {
            dialog.close();
        }
    });
    dialog.setFooter([okButton]);
    dialog.open(container, title || '&nbsp;', true, true);
    okButton.focus();
    return dialog;
}
exports.Alert = Alert;


/***/ }),

/***/ 47360:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_769449__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Confirm = void 0;
var dialog_1 = __nested_webpack_require_769449__(6690);
var is_function_1 = __nested_webpack_require_769449__(42096);
var button_1 = __nested_webpack_require_769449__(96031);
function Confirm(msg, title, callback) {
    var dialog = this instanceof dialog_1.Dialog ? this : new dialog_1.Dialog(), $div = dialog.c.fromHTML('<form class="jodit-dialog_prompt"></form>'), $label = dialog.c.element('label');
    if ((0, is_function_1.isFunction)(title)) {
        callback = title;
        title = undefined;
    }
    $label.appendChild(dialog.c.fromHTML(msg));
    $div.appendChild($label);
    var action = function (yes) { return function () {
        if (!callback || callback(yes) !== false) {
            dialog.close();
        }
    }; };
    var $cancel = (0, button_1.Button)(dialog, 'cancel', 'Cancel');
    var $ok = (0, button_1.Button)(dialog, 'ok', 'Yes');
    $cancel.onAction(action(false));
    $ok.onAction(action(true));
    dialog.e.on($div, 'submit', function () {
        action(true)();
        return false;
    });
    dialog.setFooter([$ok, $cancel]);
    dialog.open($div, title || '&nbsp;', true, true);
    $ok.focus();
    return dialog;
}
exports.Confirm = Confirm;


/***/ }),

/***/ 6690:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_771028__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Dialog = void 0;
var tslib_1 = __nested_webpack_require_771028__(20255);
__nested_webpack_require_771028__(16462);
var config_1 = __nested_webpack_require_771028__(93166);
var constants_1 = __nested_webpack_require_771028__(86893);
var helpers_1 = __nested_webpack_require_771028__(40332);
var assert_1 = __nested_webpack_require_771028__(52378);
var view_with_toolbar_1 = __nested_webpack_require_771028__(43608);
var dom_1 = __nested_webpack_require_771028__(64968);
var component_1 = __nested_webpack_require_771028__(56562);
var global_1 = __nested_webpack_require_771028__(17332);
var decorators_1 = __nested_webpack_require_771028__(43441);
var view_1 = __nested_webpack_require_771028__(75902);
var ui_1 = __nested_webpack_require_771028__(2074);
var messages_1 = __nested_webpack_require_771028__(71014);
config_1.Config.prototype.dialog = {
    namespace: '',
    extraButtons: [],
    resizable: true,
    draggable: true,
    buttons: ['dialog.close'],
    removeButtons: [],
    toolbarButtonSize: 'middle',
    zIndex: 'inherit'
};
config_1.Config.prototype.controls.dialog = {
    close: {
        icon: 'cancel',
        exec: function (dialog) {
            dialog.close();
        }
    }
};
var Dialog = (function (_super) {
    tslib_1.__extends(Dialog, _super);
    function Dialog(options) {
        if (options === void 0) { options = {}; }
        var _this = _super.call(this, options) || this;
        _this.destroyAfterClose = false;
        _this.moved = false;
        _this.resizable = false;
        _this.draggable = false;
        _this.startX = 0;
        _this.startY = 0;
        _this.startPoint = { x: 0, y: 0, w: 0, h: 0 };
        _this.lockSelect = function () {
            _this.setMod('moved', true);
        };
        _this.unlockSelect = function () {
            _this.setMod('moved', false);
        };
        _this.onResize = function () {
            if (_this.options &&
                _this.o.resizable &&
                !_this.moved &&
                _this.isOpened &&
                !_this.offsetX &&
                !_this.offsetY) {
                _this.setPosition();
            }
        };
        _this.isModal = false;
        _this.isOpened = false;
        var self = _this;
        self.options = (0, helpers_1.ConfigProto)(options, (0, helpers_1.ConfigProto)(config_1.Config.prototype.dialog, view_1.View.defaultOptions));
        dom_1.Dom.safeRemove(self.container);
        var n = _this.getFullElName.bind(_this);
        self.container = _this.c.fromHTML("<div class=\"jodit jodit-dialog ".concat(_this.componentName, "\">\n\t\t\t\t<div class=\"").concat(n('overlay'), "\"></div>\n\t\t\t\t<div class=\"").concat(_this.getFullElName('panel'), "\">\n\t\t\t\t\t<div class=\"").concat(n('header'), "\">\n\t\t\t\t\t\t<div class=\"").concat(n('header-title'), "\"></div>\n\t\t\t\t\t\t<div class=\"").concat(n('header-toolbar'), "\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"").concat(n('content'), "\"></div>\n\t\t\t\t\t<div class=\"").concat(n('footer'), "\"></div>\n\t\t\t\t\t<div class=\"").concat(n('resizer'), "\">").concat(ui_1.Icon.get('resize_handler'), "</div>\n\t\t\t\t</div>\n\t\t\t</div>"));
        if (_this.o.zIndex) {
            _this.container.style.zIndex = _this.o.zIndex.toString();
        }
        (0, helpers_1.attr)(self.container, 'role', 'dialog');
        Object.defineProperty(self.container, 'component', {
            value: _this
        });
        self.setMod('theme', self.o.theme || 'default').setMod('resizable', Boolean(self.o.resizable));
        var dialog = self.getElm('panel');
        void 0;
        var resizer = self.getElm('resizer');
        void 0;
        var dialogbox_header = self.getElm('header-title');
        void 0;
        var dialogbox_content = self.getElm('content');
        void 0;
        var dialogbox_footer = self.getElm('footer');
        void 0;
        var dialogbox_toolbar = self.getElm('header-toolbar');
        void 0;
        _this.message.destruct();
        _this.message = new messages_1.UIMessages(_this, dialog);
        _this.dialog = dialog;
        _this.resizer = resizer;
        _this.dialogbox_header = dialogbox_header;
        _this.dialogbox_content = dialogbox_content;
        _this.dialogbox_footer = dialogbox_footer;
        _this.dialogbox_toolbar = dialogbox_toolbar;
        (0, helpers_1.css)(self.dialog, {
            maxWidth: self.options.maxWidth,
            minHeight: self.options.minHeight,
            minWidth: self.options.minWidth
        });
        var headerBox = self.getElm('header');
        headerBox &&
            self.e.on(headerBox, 'pointerdown touchstart', self.onHeaderMouseDown);
        self.e.on(self.resizer, 'mousedown touchstart', self.onResizerMouseDown);
        var fullSize = global_1.pluginSystem.get('fullsize');
        (0, helpers_1.isFunction)(fullSize) && fullSize(self);
        _this.e
            .on(self.container, 'close_dialog', self.close)
            .on(_this.ow, 'keydown', _this.onEsc)
            .on(_this.ow, 'resize', _this.onResize);
        return _this;
    }
    Dialog.prototype.className = function () {
        return 'Dialog';
    };
    Object.defineProperty(Dialog.prototype, "destination", {
        get: function () {
            var _a;
            return ((_a = this.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od.body);
        },
        enumerable: false,
        configurable: true
    });
    Dialog.prototype.setElements = function (root, elements) {
        var _this = this;
        var elements_list = [];
        (0, helpers_1.asArray)(elements).forEach(function (elm) {
            if ((0, helpers_1.isArray)(elm)) {
                var div = _this.c.div(_this.getFullElName('column'));
                elements_list.push(div);
                root.appendChild(div);
                return _this.setElements(div, elm);
            }
            var element;
            if ((0, helpers_1.isString)(elm)) {
                element = _this.c.fromHTML(elm);
            }
            else {
                element = (0, helpers_1.hasContainer)(elm) ? elm.container : elm;
            }
            elements_list.push(element);
            if (element.parentNode !== root) {
                root.appendChild(element);
            }
        });
        (0, helpers_1.toArray)(root.childNodes).forEach(function (elm) {
            if (elements_list.indexOf(elm) === -1) {
                root.removeChild(elm);
            }
        });
    };
    Dialog.prototype.onMouseUp = function () {
        if (this.draggable || this.resizable) {
            this.removeGlobalResizeListeners();
            this.draggable = false;
            this.resizable = false;
            this.unlockSelect();
            if (this.e) {
                this.removeGlobalResizeListeners();
                this.e.fire(this, 'endResize endMove');
            }
        }
    };
    Dialog.prototype.onHeaderMouseDown = function (e) {
        var target = e.target;
        if (!this.o.draggable ||
            (target && target.nodeName.match(/^(INPUT|SELECT)$/))) {
            return;
        }
        this.draggable = true;
        this.startX = e.clientX;
        this.startY = e.clientY;
        this.startPoint.x = (0, helpers_1.css)(this.dialog, 'left');
        this.startPoint.y = (0, helpers_1.css)(this.dialog, 'top');
        this.setMaxZIndex();
        if (e.cancelable) {
            e.preventDefault();
        }
        this.lockSelect();
        this.addGlobalResizeListeners();
        if (this.e) {
            this.e.fire(this, 'startMove');
        }
    };
    Dialog.prototype.onMouseMove = function (e) {
        if (this.draggable && this.o.draggable) {
            this.setPosition(this.startPoint.x + e.clientX - this.startX, this.startPoint.y + e.clientY - this.startY);
            if (this.e) {
                this.e.fire(this, 'move', e.clientX - this.startX, e.clientY - this.startY);
            }
            e.stopImmediatePropagation();
        }
        if (this.resizable && this.o.resizable) {
            this.setSize(this.startPoint.w + e.clientX - this.startX, this.startPoint.h + e.clientY - this.startY);
            if (this.e) {
                this.e.fire(this, 'resizeDialog', e.clientX - this.startX, e.clientY - this.startY);
            }
        }
    };
    Dialog.prototype.onEsc = function (e) {
        if (this.isOpened &&
            e.key === constants_1.KEY_ESC &&
            this.getMod('static') !== true) {
            var me = this.getMaxZIndexDialog();
            if (me) {
                me.close();
            }
            else {
                this.close();
            }
            e.stopImmediatePropagation();
        }
    };
    Dialog.prototype.onResizerMouseDown = function (e) {
        this.resizable = true;
        this.startX = e.clientX;
        this.startY = e.clientY;
        this.startPoint.w = this.dialog.offsetWidth;
        this.startPoint.h = this.dialog.offsetHeight;
        this.lockSelect();
        this.addGlobalResizeListeners();
        if (this.e) {
            this.e.fire(this, 'startResize');
        }
    };
    Dialog.prototype.addGlobalResizeListeners = function () {
        var self = this;
        self.e
            .on(self.ow, 'pointermove touchmove', self.onMouseMove)
            .on(self.ow, 'pointerup touchend', self.onMouseUp);
    };
    Dialog.prototype.removeGlobalResizeListeners = function () {
        var self = this;
        self.e
            .off(self.ow, 'mousemove pointermove', self.onMouseMove)
            .off(self.ow, 'mouseup pointerup', self.onMouseUp);
    };
    Dialog.prototype.setSize = function (w, h) {
        if (w == null) {
            w = this.dialog.offsetWidth;
        }
        if (h == null) {
            h = this.dialog.offsetHeight;
        }
        (0, helpers_1.css)(this.dialog, {
            width: w,
            height: h
        });
        return this;
    };
    Dialog.prototype.calcAutoSize = function () {
        this.setSize('auto', 'auto');
        this.setSize();
        return this;
    };
    Dialog.prototype.setPosition = function (x, y) {
        var w = this.ow.innerWidth, h = this.ow.innerHeight;
        var left = w / 2 - this.dialog.offsetWidth / 2, top = h / 2 - this.dialog.offsetHeight / 2;
        if (left < 0) {
            left = 0;
        }
        if (top < 0) {
            top = 0;
        }
        if (x !== undefined && y !== undefined) {
            this.offsetX = x;
            this.offsetY = y;
            this.moved = Math.abs(x - left) > 100 || Math.abs(y - top) > 100;
        }
        this.dialog.style.left = (x || left) + 'px';
        this.dialog.style.top = (y || top) + 'px';
        return this;
    };
    Dialog.prototype.setHeader = function (content) {
        this.setElements(this.dialogbox_header, content);
        return this;
    };
    Dialog.prototype.setContent = function (content) {
        this.setElements(this.dialogbox_content, content);
        return this;
    };
    Dialog.prototype.setFooter = function (content) {
        this.setElements(this.dialogbox_footer, content);
        this.setMod('footer', Boolean(content));
        return this;
    };
    Dialog.prototype.getZIndex = function () {
        return parseInt((0, helpers_1.css)(this.container, 'zIndex'), 10) || 0;
    };
    Dialog.prototype.getMaxZIndexDialog = function () {
        var maxZi = 0, dlg, zIndex, res = this;
        (0, helpers_1.$$)('.jodit-dialog', this.destination).forEach(function (dialog) {
            dlg = dialog.component;
            zIndex = parseInt((0, helpers_1.css)(dialog, 'zIndex'), 10);
            if (dlg.isOpened && !isNaN(zIndex) && zIndex > maxZi) {
                res = dlg;
                maxZi = zIndex;
            }
        });
        return res;
    };
    Dialog.prototype.setMaxZIndex = function () {
        if (this.getMod('static'))
            return;
        var maxZIndex = 20000004, zIndex = 0;
        (0, helpers_1.$$)('.jodit-dialog', this.destination).forEach(function (dialog) {
            zIndex = parseInt((0, helpers_1.css)(dialog, 'zIndex'), 10);
            maxZIndex = Math.max(isNaN(zIndex) ? 0 : zIndex, maxZIndex);
        });
        this.container.style.zIndex = (maxZIndex + 1).toString();
    };
    Dialog.prototype.toggleFullSize = function (isFullSize) {
        if ((0, helpers_1.isVoid)(isFullSize)) {
            isFullSize = !this.getMod('fullsize');
        }
        this.setMod('fullsize', isFullSize);
        _super.prototype.toggleFullSize.call(this, isFullSize);
    };
    Dialog.prototype.open = function (contentOrClose, titleOrModal, destroyAfterClose, modal) {
        global_1.eventEmitter.fire('closeAllPopups hideHelpers');
        if (this.e.fire(this, 'beforeOpen') === false) {
            return this;
        }
        if ((0, helpers_1.isBoolean)(contentOrClose)) {
            destroyAfterClose = contentOrClose;
        }
        if ((0, helpers_1.isBoolean)(titleOrModal)) {
            modal = titleOrModal;
        }
        this.destroyAfterClose = destroyAfterClose === true;
        var content = (0, helpers_1.isBoolean)(contentOrClose) ? undefined : contentOrClose;
        var title = (0, helpers_1.isBoolean)(titleOrModal) ? undefined : titleOrModal;
        if (title !== undefined) {
            this.setHeader(title);
        }
        if (content) {
            this.setContent(content);
        }
        this.setMod('active', true);
        this.isOpened = true;
        this.setModal(modal);
        this.destination.appendChild(this.container);
        if (this.getMod('static') !== true) {
            this.setPosition(this.offsetX, this.offsetY);
            this.setMaxZIndex();
        }
        else {
            this.container.style.removeProperty('z-index');
        }
        if (this.o.fullsize) {
            this.toggleFullSize(true);
        }
        this.e.fire('afterOpen', this);
        return this;
    };
    Dialog.prototype.setModal = function (modal) {
        this.isModal = Boolean(modal);
        this.setMod('modal', this.isModal);
        return this;
    };
    Dialog.prototype.close = function () {
        if (this.isDestructed ||
            !this.isOpened ||
            this.getMod('static') === true) {
            return this;
        }
        if (this.e.fire('beforeClose', this) === false) {
            return this;
        }
        this.setMod('active', false);
        this.isOpened = false;
        if (this.isFullSize) {
            this.toggleFullSize(false);
        }
        dom_1.Dom.safeRemove(this.container);
        this.removeGlobalResizeListeners();
        if (this.destroyAfterClose) {
            this.destruct();
        }
        this.e.fire(this, 'afterClose');
        this.e.fire(this.ow, 'joditCloseDialog');
        return this;
    };
    Dialog.prototype.buildToolbar = function () {
        this.o.buttons &&
            this.toolbar
                .build((0, helpers_1.splitArray)(this.o.buttons))
                .setMod('mode', 'header')
                .appendTo(this.dialogbox_toolbar);
    };
    Dialog.prototype.destruct = function () {
        if (this.isInDestruct) {
            return;
        }
        this.setStatus(component_1.STATUSES.beforeDestruct);
        if (this.isOpened) {
            this.close();
        }
        if (this.events) {
            this.removeGlobalResizeListeners();
            this.events
                .off(this.container, 'close_dialog', self.close)
                .off(this.ow, 'keydown', this.onEsc)
                .off(this.ow, 'resize', this.onResize);
        }
        _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "onMouseUp", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "onHeaderMouseDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "onMouseMove", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "onEsc", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "onResizerMouseDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], Dialog.prototype, "close", null);
    tslib_1.__decorate([
        (0, decorators_1.hook)('ready')
    ], Dialog.prototype, "buildToolbar", null);
    Dialog = tslib_1.__decorate([
        decorators_1.component
    ], Dialog);
    return Dialog;
}(view_with_toolbar_1.ViewWithToolbar));
exports.Dialog = Dialog;


/***/ }),

/***/ 92080:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_787859__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Confirm = exports.Prompt = exports.Alert = exports.Dialog = void 0;
var dialog_1 = __nested_webpack_require_787859__(6690);
Object.defineProperty(exports, "Dialog", ({ enumerable: true, get: function () { return dialog_1.Dialog; } }));
var alert_1 = __nested_webpack_require_787859__(97528);
Object.defineProperty(exports, "Alert", ({ enumerable: true, get: function () { return alert_1.Alert; } }));
var prompt_1 = __nested_webpack_require_787859__(35789);
Object.defineProperty(exports, "Prompt", ({ enumerable: true, get: function () { return prompt_1.Prompt; } }));
var confirm_1 = __nested_webpack_require_787859__(47360);
Object.defineProperty(exports, "Confirm", ({ enumerable: true, get: function () { return confirm_1.Confirm; } }));


/***/ }),

/***/ 35789:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_788955__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Prompt = void 0;
var dialog_1 = __nested_webpack_require_788955__(92080);
var ui_1 = __nested_webpack_require_788955__(2074);
var helpers_1 = __nested_webpack_require_788955__(40332);
function Prompt(msg, title, callback, placeholder, defaultValue) {
    var dialog = this instanceof dialog_1.Dialog ? this : new dialog_1.Dialog(), cancelButton = (0, ui_1.Button)(dialog, 'cancel', 'Cancel'), okButton = (0, ui_1.Button)(dialog, 'ok', 'Ok'), form = dialog.c.element('form', {
        class: 'jodit-dialog_prompt'
    }), inputElement = dialog.c.element('input', {
        autofocus: true,
        class: 'jodit-input'
    }), labelElement = dialog.c.element('label');
    if ((0, helpers_1.isFunction)(title)) {
        callback = title;
        title = undefined;
    }
    if (placeholder) {
        (0, helpers_1.attr)(inputElement, 'placeholder', placeholder);
    }
    labelElement.appendChild(dialog.c.text(msg));
    form.appendChild(labelElement);
    form.appendChild(inputElement);
    cancelButton.onAction(dialog.close);
    var onclick = function () {
        if (!callback ||
            !(0, helpers_1.isFunction)(callback) ||
            callback(inputElement.value) !== false) {
            dialog.close();
        }
    };
    okButton.onAction(onclick);
    dialog.e.on(form, 'submit', function () {
        onclick();
        return false;
    });
    dialog.setFooter([okButton, cancelButton]);
    dialog.open(form, title || '&nbsp;', true, true);
    inputElement.focus();
    if (defaultValue !== undefined && defaultValue.length) {
        inputElement.value = defaultValue;
        inputElement.select();
    }
    return dialog;
}
exports.Prompt = Prompt;


/***/ }),

/***/ 34468:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_791006__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_791006__(20255);
var dom_1 = __nested_webpack_require_791006__(64968);
var helpers_1 = __nested_webpack_require_791006__(40332);
var factories_1 = __nested_webpack_require_791006__(46341);
var ui_1 = __nested_webpack_require_791006__(2074);
var native_listeners_1 = __nested_webpack_require_791006__(21347);
var image_editor_1 = __nested_webpack_require_791006__(35503);
var elements_map_1 = __nested_webpack_require_791006__(66267);
var load_tree_1 = __nested_webpack_require_791006__(36303);
var delete_file_1 = __nested_webpack_require_791006__(48096);
var CLASS_PREVIEW = 'jodit-filebrowser-preview', preview_tpl_next = function (next, right) {
    if (next === void 0) { next = 'next'; }
    if (right === void 0) { right = 'right'; }
    return "<div class=\"".concat(CLASS_PREVIEW, "__navigation ").concat(CLASS_PREVIEW, "__navigation_arrow_").concat(next, "\">") +
        '' +
        ui_1.Icon.get('angle-' + right) +
        '</a>';
};
exports["default"] = (function (self) {
    if (!self.o.contextMenu) {
        return function () { };
    }
    var contextmenu = (0, factories_1.makeContextMenu)(self);
    return function (e) {
        var a = (0, native_listeners_1.getItem)(e.target, self.container);
        if (!a) {
            return;
        }
        var item = a;
        var opt = self.options, ga = function (key) { return (0, helpers_1.attr)(item, key) || ''; };
        self.async.setTimeout(function () {
            var selectedItem = (0, native_listeners_1.elementToItem)(a, (0, elements_map_1.elementsMap)(self));
            if (!selectedItem) {
                return;
            }
            self.state.activeElements = [selectedItem];
            contextmenu.show(e.clientX, e.clientY, [
                ga('data-is-file') !== '1' &&
                    opt.editImage &&
                    (self.dataProvider.canI('ImageResize') ||
                        self.dataProvider.canI('ImageCrop'))
                    ? {
                        icon: 'pencil',
                        title: 'Edit',
                        exec: function () {
                            return image_editor_1.openImageEditor.call(self, ga('href'), ga('data-name'), ga('data-path'), ga('data-source'));
                        }
                    }
                    : false,
                self.dataProvider.canI('FileRename')
                    ? {
                        icon: 'italic',
                        title: 'Rename',
                        exec: function () {
                            self.e.fire('fileRename.filebrowser', ga('data-name'), ga('data-path'), ga('data-source'));
                        }
                    }
                    : false,
                self.dataProvider.canI('FileRemove')
                    ? {
                        icon: 'bin',
                        title: 'Delete',
                        exec: function () { return tslib_1.__awaiter(void 0, void 0, Promise, function () {
                            var e_1;
                            return tslib_1.__generator(this, function (_a) {
                                switch (_a.label) {
                                    case 0:
                                        _a.trys.push([0, 2, , 3]);
                                        return [4, (0, delete_file_1.deleteFile)(self, ga('data-name'), ga('data-source'))];
                                    case 1:
                                        _a.sent();
                                        return [3, 3];
                                    case 2:
                                        e_1 = _a.sent();
                                        return [2, self.status(e_1)];
                                    case 3:
                                        self.state.activeElements = [];
                                        return [2, (0, load_tree_1.loadTree)(self).catch(self.status)];
                                }
                            });
                        }); }
                    }
                    : false,
                opt.preview
                    ? {
                        icon: 'eye',
                        title: 'Preview',
                        exec: function () {
                            var preview = self.dlg({
                                buttons: ['fullsize', 'dialog.close']
                            }), temp_content = self.c.div(CLASS_PREVIEW, '<div class="jodit-icon_loader"></div>'), preview_box = self.c.div(CLASS_PREVIEW + '__box'), next = self.c.fromHTML(preview_tpl_next()), prev = self.c.fromHTML(preview_tpl_next('prev', 'left')), addLoadHandler = function (src) {
                                var image = self.c.element('img');
                                image.setAttribute('src', src);
                                var onload = function () {
                                    var _a;
                                    if (self.isInDestruct) {
                                        return;
                                    }
                                    self.e.off(image, 'load');
                                    dom_1.Dom.detach(temp_content);
                                    if (opt.showPreviewNavigation) {
                                        if (dom_1.Dom.prevWithClass(item, self.files.getFullElName('item'))) {
                                            temp_content.appendChild(prev);
                                        }
                                        if (dom_1.Dom.nextWithClass(item, self.files.getFullElName('item'))) {
                                            temp_content.appendChild(next);
                                        }
                                    }
                                    temp_content.appendChild(preview_box);
                                    preview_box.appendChild(image);
                                    preview.setPosition();
                                    (_a = self === null || self === void 0 ? void 0 : self.events) === null || _a === void 0 ? void 0 : _a.fire('previewOpenedAndLoaded');
                                };
                                self.e.on(image, 'load', onload);
                                if (image.complete) {
                                    onload();
                                }
                            };
                            self.e.on([next, prev], 'click', function () {
                                if (this === next) {
                                    item = dom_1.Dom.nextWithClass(item, self.files.getFullElName('item'));
                                }
                                else {
                                    item = dom_1.Dom.prevWithClass(item, self.files.getFullElName('item'));
                                }
                                if (!item) {
                                    throw (0, helpers_1.error)('Need element');
                                }
                                dom_1.Dom.detach(temp_content);
                                dom_1.Dom.detach(preview_box);
                                temp_content.innerHTML =
                                    '<div class="jodit-icon_loader"></div>';
                                addLoadHandler(ga('href'));
                            });
                            self.e.on('beforeDestruct', function () {
                                preview.destruct();
                            });
                            preview.container.classList.add(CLASS_PREVIEW + '__dialog');
                            preview.setContent(temp_content);
                            preview.setPosition();
                            preview.open();
                            addLoadHandler(ga('href'));
                            self.events
                                .on('beforeDestruct', function () {
                                preview.destruct();
                            })
                                .fire('previewOpened');
                        }
                    }
                    : false,
                {
                    icon: 'upload',
                    title: 'Download',
                    exec: function () {
                        var url = ga('href');
                        if (url) {
                            self.ow.open(url);
                        }
                    }
                }
            ]);
        }, self.defaultTimeout);
        self.e
            .on('beforeClose', function () { return contextmenu.close(); })
            .on('beforeDestruct', function () { return contextmenu.destruct(); });
        e.stopPropagation();
        e.preventDefault();
        return false;
    };
});


/***/ }),

/***/ 66267:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.elementsMap = void 0;
var map = new WeakMap();
var elementsMap = function (view) {
    var result = map.get(view);
    if (!result) {
        result = {};
        map.set(view, result);
    }
    return result;
};
exports.elementsMap = elementsMap;


/***/ }),

/***/ 63511:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_800694__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.FileBrowserItem = void 0;
var helpers_1 = __nested_webpack_require_800694__(40332);
var FileBrowserItem = (function () {
    function FileBrowserItem(data) {
        var _this = this;
        this.data = data;
        Object.keys(data).forEach(function (key) {
            _this[key] = data[key];
        });
    }
    FileBrowserItem.create = function (data) {
        if (data instanceof FileBrowserItem) {
            return data;
        }
        return new FileBrowserItem(data);
    };
    Object.defineProperty(FileBrowserItem.prototype, "path", {
        get: function () {
            return (0, helpers_1.normalizePath)(this.data.source.path ? this.data.source.path + '/' : '/');
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(FileBrowserItem.prototype, "imageURL", {
        get: function () {
            var timestamp = this.time || new Date().getTime().toString(), _a = this.data, thumbIsAbsolute = _a.thumbIsAbsolute, source = _a.source, thumb = _a.thumb, file = _a.file, path = thumb || file;
            return thumbIsAbsolute && path
                ? path
                : (0, helpers_1.normalizeUrl)(source.baseurl, source.path, path || '') +
                    '?_tmst=' +
                    encodeURIComponent(timestamp);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(FileBrowserItem.prototype, "fileURL", {
        get: function () {
            var name = this.data.name;
            var _a = this.data, file = _a.file, fileIsAbsolute = _a.fileIsAbsolute, source = _a.source;
            if (file !== undefined) {
                name = file;
            }
            return fileIsAbsolute && name
                ? name
                : (0, helpers_1.normalizeUrl)(source.baseurl, source.path, name || '');
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(FileBrowserItem.prototype, "time", {
        get: function () {
            var changed = this.data.changed;
            return ((changed &&
                (typeof changed === 'number'
                    ? new Date(changed).toLocaleString()
                    : changed)) ||
                '');
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(FileBrowserItem.prototype, "uniqueHashKey", {
        get: function () {
            var data = this.data;
            var key = [
                data.sourceName,
                data.name,
                data.file,
                this.time,
                data.thumb
            ].join('_');
            key = key.toLowerCase().replace(/[^0-9a-z\-.]/g, '-');
            return key;
        },
        enumerable: false,
        configurable: true
    });
    FileBrowserItem.prototype.toJSON = function () {
        return this.data;
    };
    return FileBrowserItem;
}());
exports.FileBrowserItem = FileBrowserItem;


/***/ }),

/***/ 38097:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_804053__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_804053__(20255);
var config_1 = __nested_webpack_require_804053__(93166);
var checker_1 = __nested_webpack_require_804053__(10172);
var file_1 = __nested_webpack_require_804053__(41374);
var human_size_to_bytes_1 = __nested_webpack_require_804053__(6102);
config_1.Config.prototype.filebrowser = {
    namespace: '',
    extraButtons: [],
    filter: function (item, search) {
        search = search.toLowerCase();
        if ((0, checker_1.isString)(item)) {
            return item.toLowerCase().indexOf(search) !== -1;
        }
        if ((0, checker_1.isString)(item.name)) {
            return item.name.toLowerCase().indexOf(search) !== -1;
        }
        if ((0, checker_1.isString)(item.file)) {
            return item.file.toLowerCase().indexOf(search) !== -1;
        }
        return true;
    },
    sortBy: 'changed-desc',
    sort: function (a, b, sortBy) {
        var _a = tslib_1.__read(sortBy.toLowerCase().split('-'), 2), sortAttr = _a[0], arrow = _a[1], asc = arrow === 'asc';
        var compareStr = function (f, s) {
            if (f < s) {
                return asc ? -1 : 1;
            }
            if (f > s) {
                return asc ? 1 : -1;
            }
            return 0;
        };
        if ((0, checker_1.isString)(a)) {
            return compareStr(a.toLowerCase(), b.toLowerCase());
        }
        if (a[sortAttr] === undefined || sortAttr === 'name') {
            if ((0, checker_1.isString)(a.name)) {
                return compareStr(a.name.toLowerCase(), b.name.toLowerCase());
            }
            if ((0, checker_1.isString)(a.file)) {
                return compareStr(a.file.toLowerCase(), b.file.toLowerCase());
            }
            return 0;
        }
        switch (sortAttr) {
            case 'changed': {
                var f = new Date(a.changed).getTime(), s = new Date(b.changed).getTime();
                return asc ? f - s : s - f;
            }
            case 'size': {
                var f = (0, human_size_to_bytes_1.humanSizeToBytes)(a.size), s = (0, human_size_to_bytes_1.humanSizeToBytes)(b.size);
                return asc ? f - s : s - f;
            }
        }
        return 0;
    },
    editImage: true,
    preview: true,
    showPreviewNavigation: true,
    showSelectButtonInPreview: true,
    contextMenu: true,
    howLongShowMsg: 3000,
    createNewFolder: true,
    deleteFolder: true,
    renameFolder: true,
    moveFolder: true,
    moveFile: true,
    permissionsPresets: {
        allowFileDownload: undefined,
        allowFileMove: undefined,
        allowFileRemove: undefined,
        allowFileRename: undefined,
        allowFileUpload: undefined,
        allowFileUploadRemote: undefined,
        allowFiles: undefined,
        allowFolderCreate: undefined,
        allowFolderMove: undefined,
        allowFolderRemove: undefined,
        allowFolderRename: undefined,
        allowFolderTree: undefined,
        allowFolders: undefined,
        allowGeneratePdf: undefined,
        allowImageCrop: undefined,
        allowImageResize: undefined
    },
    showFoldersPanel: true,
    storeLastOpenedFolder: true,
    width: 859,
    height: 400,
    buttons: [
        'filebrowser.upload',
        'filebrowser.remove',
        'filebrowser.update',
        'filebrowser.select',
        'filebrowser.edit',
        '|',
        'filebrowser.tiles',
        'filebrowser.list',
        '|',
        'filebrowser.filter',
        '|',
        'filebrowser.sort'
    ],
    removeButtons: [],
    fullsize: false,
    showTooltip: true,
    view: null,
    isSuccess: function (resp) {
        return resp.success;
    },
    getMessage: function (resp) {
        return resp.data.messages !== undefined && (0, checker_1.isArray)(resp.data.messages)
            ? resp.data.messages.join(' ')
            : '';
    },
    showFileName: true,
    showFileSize: true,
    showFileChangeTime: true,
    saveStateInStorage: {
        storeLastOpenedFolder: true,
        storeView: true,
        storeSortBy: true
    },
    pixelOffsetLoadNewChunk: 200,
    getThumbTemplate: function (item, source, source_name) {
        var opt = this.options, IC = this.files.getFullElName('item'), showName = opt.showFileName, showSize = opt.showFileSize && item.size, showTime = opt.showFileChangeTime && item.time;
        var name = '';
        if (item.file !== undefined) {
            name = item.file;
        }
        var info = "<div class=\"".concat(IC, "-info\">").concat(showName ? "<span class=\"".concat(IC, "-info-filename\">").concat(name, "</span>") : '').concat(showSize
            ? "<span class=\"".concat(IC, "-info-filesize\">").concat(item.size, "</span>")
            : '').concat(showTime
            ? "<span class=\"".concat(IC, "-info-filechanged\">").concat(showTime, "</span>")
            : '', "</div>");
        return "<a\n\t\t\tdata-jodit-filebrowser-item=\"true\"\n\t\t\tdata-is-file=\"".concat(item.isImage ? 0 : 1, "\"\n\t\t\tdraggable=\"true\"\n\t\t\tclass=\"").concat(IC, "\"\n\t\t\thref=\"").concat(item.fileURL, "\"\n\t\t\tdata-source=\"").concat(source_name, "\"\n\t\t\tdata-path=\"").concat(item.path, "\"\n\t\t\tdata-name=\"").concat(name, "\"\n\t\t\ttitle=\"").concat(name, "\"\n\t\t\tdata-url=\"").concat(item.fileURL, "\">\n\t\t\t\t<img\n\t\t\t\t\tdata-is-file=\"").concat(item.isImage ? 0 : 1, "\"\n\t\t\t\t\tdata-src=\"").concat(item.fileURL, "\"\n\t\t\t\t\tsrc=\"").concat(item.imageURL, "\"\n\t\t\t\t\talt=\"").concat(name, "\"\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t/>\n\t\t\t\t").concat(showName || showSize || showTime ? info : '', "\n\t\t\t</a>");
    },
    ajax: tslib_1.__assign(tslib_1.__assign({}, config_1.Config.prototype.defaultAjaxOptions), { url: '', data: {}, cache: true, contentType: 'application/x-www-form-urlencoded; charset=UTF-8', method: 'POST', processData: true, headers: {}, prepareData: function (data) {
            return data;
        }, process: function (resp) {
            return resp;
        } }),
    create: {
        data: { action: 'folderCreate' }
    },
    getLocalFileByUrl: {
        data: { action: 'getLocalFileByUrl' }
    },
    resize: {
        data: { action: 'imageResize' }
    },
    crop: {
        data: { action: 'imageCrop' }
    },
    fileMove: {
        data: { action: 'fileMove' }
    },
    folderMove: {
        data: { action: 'folderMove' }
    },
    fileRename: {
        data: { action: 'fileRename' }
    },
    folderRename: {
        data: { action: 'folderRename' }
    },
    fileRemove: {
        data: { action: 'fileRemove' }
    },
    folderRemove: {
        data: { action: 'folderRemove' }
    },
    items: {
        data: { action: 'files' }
    },
    folder: {
        data: { action: 'folders' }
    },
    permissions: {
        data: { action: 'permissions' }
    }
};
config_1.Config.prototype.controls.filebrowser = {
    upload: {
        icon: 'plus',
        isInput: true,
        isDisabled: function (browser) {
            return !browser.dataProvider.canI('FileUpload');
        },
        getContent: function (filebrowser) {
            var btn = new file_1.UIFileInput(filebrowser, {
                onlyImages: filebrowser.state.onlyImages
            });
            filebrowser.e.fire('bindUploader.filebrowser', btn.container);
            return btn.container;
        }
    },
    remove: {
        icon: 'bin',
        isDisabled: function (browser) {
            return (!browser.state.activeElements.length ||
                !browser.dataProvider.canI('FileRemove'));
        },
        exec: function (editor) {
            editor.e.fire('fileRemove.filebrowser');
        }
    },
    update: {
        exec: function (editor) {
            editor.e.fire('update.filebrowser');
        }
    },
    select: {
        icon: 'check',
        isDisabled: function (browser) {
            return !browser.state.activeElements.length;
        },
        exec: function (editor) {
            editor.e.fire('select.filebrowser');
        }
    },
    edit: {
        icon: 'pencil',
        isDisabled: function (browser) {
            var selected = browser.state.activeElements;
            return (selected.length !== 1 ||
                !selected[0].isImage ||
                !(browser.dataProvider.canI('ImageCrop') ||
                    browser.dataProvider.canI('ImageResize')));
        },
        exec: function (editor) {
            editor.e.fire('edit.filebrowser');
        }
    },
    tiles: {
        icon: 'th',
        isActive: function (filebrowser) {
            return filebrowser.state.view === 'tiles';
        },
        exec: function (filebrowser) {
            filebrowser.e.fire('view.filebrowser', 'tiles');
        }
    },
    list: {
        icon: 'th-list',
        isActive: function (filebrowser) {
            return filebrowser.state.view === 'list';
        },
        exec: function (filebrowser) {
            filebrowser.e.fire('view.filebrowser', 'list');
        }
    },
    filter: {
        isInput: true,
        getContent: function (filebrowser, _, b) {
            var oldInput = b.container.querySelector('.jodit-input');
            if (oldInput) {
                return oldInput;
            }
            var input = filebrowser.c.element('input', {
                class: 'jodit-input',
                placeholder: filebrowser.i18n('Filter')
            });
            input.value = filebrowser.state.filterWord;
            filebrowser.e.on(input, 'keydown mousedown', filebrowser.async.debounce(function () {
                filebrowser.e.fire('filter.filebrowser', input.value);
            }, filebrowser.defaultTimeout));
            return input;
        }
    },
    sort: {
        isInput: true,
        getContent: function (fb) {
            var select = fb.c.fromHTML('<select class="jodit-input jodit-select">' +
                "<option value=\"changed-asc\">".concat(fb.i18n('Sort by changed'), " (\u2B06)</option>") +
                "<option value=\"changed-desc\">".concat(fb.i18n('Sort by changed'), " (\u2B07)</option>") +
                "<option value=\"name-asc\">".concat(fb.i18n('Sort by name'), " (\u2B06)</option>") +
                "<option value=\"name-desc\">".concat(fb.i18n('Sort by name'), " (\u2B07)</option>") +
                "<option value=\"size-asc\">".concat(fb.i18n('Sort by size'), " (\u2B06)</option>") +
                "<option value=\"size-desc\">".concat(fb.i18n('Sort by size'), " (\u2B07)</option>") +
                '</select>');
            select.value = fb.state.sortBy;
            fb.e
                .on('sort.filebrowser', function (value) {
                if (select.value !== value) {
                    select.value = value;
                }
            })
                .on(select, 'change', function () {
                fb.e.fire('sort.filebrowser', select.value);
            });
            return select;
        }
    }
};


/***/ }),

/***/ 82530:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_815359__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.DEFAULT_SOURCE_NAME = void 0;
var tslib_1 = __nested_webpack_require_815359__(20255);
var helpers_1 = __nested_webpack_require_815359__(40332);
var request_1 = __nested_webpack_require_815359__(30056);
var decorators_1 = __nested_webpack_require_815359__(43441);
var item_1 = __nested_webpack_require_815359__(63511);
exports.DEFAULT_SOURCE_NAME = 'default';
var possibleRules = (/* unused pure expression or super */ null && (0));
var DataProvider = (function () {
    function DataProvider(parent, options) {
        this.parent = parent;
        this.options = options;
        this.__currentPermissions = null;
        this.ajaxInstances = new Map();
        this.progressHandler = function (ignore) { };
    }
    Object.defineProperty(DataProvider.prototype, "o", {
        get: function () {
            return this.options;
        },
        enumerable: false,
        configurable: true
    });
    DataProvider.prototype.get = function (name) {
        var _this = this;
        var ai = this.ajaxInstances;
        if (ai.has(name)) {
            var ajax_1 = ai.get(name);
            ajax_1 === null || ajax_1 === void 0 ? void 0 : ajax_1.abort();
            ai.delete(name);
        }
        var opts = (0, helpers_1.ConfigProto)(this.options[name] !== undefined
            ? this.options[name]
            : {}, (0, helpers_1.ConfigProto)({
            onProgress: this.progressHandler
        }, this.o.ajax));
        if (opts.prepareData) {
            opts.data = opts.prepareData.call(this, opts.data);
        }
        var ajax = new request_1.Ajax(opts);
        ai.set(name, ajax);
        var promise = ajax.send();
        promise
            .finally(function () {
            ajax.destruct();
            ai.delete(name);
            _this.progressHandler(100);
        })
            .catch(function () { return null; });
        return promise
            .then(function (resp) { return resp.json(); })
            .then(function (resp) {
            if (resp && !_this.isSuccess(resp)) {
                throw new Error(_this.getMessage(resp));
            }
            return resp;
        });
    };
    DataProvider.prototype.onProgress = function (callback) {
        this.progressHandler = callback;
    };
    DataProvider.prototype.permissions = function (path, source) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var _this = this;
            return tslib_1.__generator(this, function (_a) {
                if (!this.o.permissions) {
                    return [2, null];
                }
                this.o.permissions.data.path = path;
                this.o.permissions.data.source = source;
                if (this.o.permissions.url) {
                    return [2, this.get('permissions').then(function (resp) {
                            var process = _this.o.permissions.process;
                            if (!process) {
                                process = _this.o.ajax.process;
                            }
                            if (process) {
                                var respData = process.call(self, resp);
                                if (respData.data.permissions) {
                                    _this.__currentPermissions = respData.data.permissions;
                                }
                            }
                            return _this.__currentPermissions;
                        })];
                }
                return [2, null];
            });
        });
    };
    DataProvider.prototype.canI = function (action) {
        var rule = 'allow' + action;
        if (false) // removed by dead control flow
{}
        var preset = this.o.permissionsPresets[rule];
        if (preset !== undefined) {
            return preset;
        }
        return (this.__currentPermissions == null ||
            this.__currentPermissions[rule] === undefined ||
            this.__currentPermissions[rule]);
    };
    DataProvider.prototype.__items = function (path, source, mods, onResult) {
        var _this = this;
        var opt = this.options;
        if (!opt.items) {
            return Promise.reject('Set Items api options');
        }
        opt.items.data.path = path;
        opt.items.data.source = source;
        opt.items.data.mods = mods;
        return this.get('items').then(function (resp) {
            var process = _this.o.items.process;
            if (!process) {
                process = _this.o.ajax.process;
            }
            if (process) {
                resp = process.call(self, resp);
            }
            return onResult(resp);
        });
    };
    DataProvider.prototype.items = function (path, source, mods) {
        var _this = this;
        if (mods === void 0) { mods = {}; }
        return this.__items(path, source, mods, function (resp) {
            return _this.generateItemsList(resp.data.sources, mods);
        });
    };
    DataProvider.prototype.itemsEx = function (path, source, mods) {
        var _this = this;
        if (mods === void 0) { mods = {}; }
        var calcTotal = function (sources) {
            return sources.reduce(function (acc, source) { return acc + source.files.length; }, 0);
        };
        return this.__items(path, source, mods, function (resp) { return ({
            items: _this.generateItemsList(resp.data.sources, mods),
            loadedTotal: calcTotal(resp.data.sources)
        }); });
    };
    DataProvider.prototype.generateItemsList = function (sources, mods) {
        var _this = this;
        if (mods === void 0) { mods = {}; }
        var elements = [];
        var canBeFile = function (item) {
            return item.type === 'folder' ||
                !mods.onlyImages ||
                item.isImage === undefined ||
                item.isImage;
        };
        var inFilter = function (item) {
            var _a;
            return !((_a = mods.filterWord) === null || _a === void 0 ? void 0 : _a.length) ||
                _this.o.filter === undefined ||
                _this.o.filter(item, mods.filterWord);
        };
        sources.forEach(function (source) {
            if (source.files && source.files.length) {
                var sort_1 = _this.o.sort;
                if ((0, helpers_1.isFunction)(sort_1) && mods.sortBy) {
                    source.files.sort(function (a, b) { return sort_1(a, b, mods.sortBy); });
                }
                source.files.forEach(function (item) {
                    if (inFilter(item) && canBeFile(item)) {
                        elements.push(item_1.FileBrowserItem.create(tslib_1.__assign(tslib_1.__assign({}, item), { sourceName: source.name, source: source })));
                    }
                });
            }
        });
        return elements;
    };
    DataProvider.prototype.tree = function (path, source) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var _this = this;
            return tslib_1.__generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        path = (0, helpers_1.normalizeRelativePath)(path);
                        if (!this.o.folder) {
                            return [2, Promise.reject('Set Folder Api options')];
                        }
                        return [4, this.permissions(path, source)];
                    case 1:
                        _a.sent();
                        this.o.folder.data.path = path;
                        this.o.folder.data.source = source;
                        return [2, this.get('folder').then(function (resp) {
                                var process = _this.o.folder.process;
                                if (!process) {
                                    process = _this.o.ajax.process;
                                }
                                if (process) {
                                    resp = process.call(self, resp);
                                }
                                return resp.data.sources;
                            })];
                }
            });
        });
    };
    DataProvider.prototype.getPathByUrl = function (url) {
        var _this = this;
        (0, helpers_1.set)('options.getLocalFileByUrl.data.url', url, this);
        return this.get('getLocalFileByUrl').then(function (resp) {
            if (_this.isSuccess(resp)) {
                return resp.data;
            }
            throw (0, helpers_1.error)(_this.getMessage(resp));
        });
    };
    DataProvider.prototype.createFolder = function (name, path, source) {
        var _this = this;
        var create = this.o.create;
        if (!create) {
            throw (0, helpers_1.error)('Set Create api options');
        }
        create.data.source = source;
        create.data.path = path;
        create.data.name = name;
        return this.get('create').then(function (resp) {
            if (_this.isSuccess(resp)) {
                return true;
            }
            throw (0, helpers_1.error)(_this.getMessage(resp));
        });
    };
    DataProvider.prototype.move = function (filepath, path, source, isFile) {
        var _this = this;
        var mode = isFile
            ? 'fileMove'
            : 'folderMove';
        var option = this.options[mode];
        if (!option) {
            throw (0, helpers_1.error)('Set Move api options');
        }
        option.data.from = filepath;
        option.data.path = path;
        option.data.source = source;
        return this.get(mode).then(function (resp) {
            if (_this.isSuccess(resp)) {
                return true;
            }
            throw (0, helpers_1.error)(_this.getMessage(resp));
        });
    };
    DataProvider.prototype.remove = function (action, path, file, source) {
        var _this = this;
        var fr = this.o[action];
        if (!fr) {
            throw (0, helpers_1.error)("Set \"".concat(action, "\" api options"));
        }
        fr.data.path = path;
        fr.data.name = file;
        fr.data.source = source;
        return this.get(action).then(function (resp) {
            if (fr.process) {
                resp = fr.process.call(_this, resp);
            }
            return _this.getMessage(resp);
        });
    };
    DataProvider.prototype.fileRemove = function (path, file, source) {
        return this.remove('fileRemove', path, file, source);
    };
    DataProvider.prototype.folderRemove = function (path, file, source) {
        return this.remove('folderRemove', path, file, source);
    };
    DataProvider.prototype.rename = function (action, path, name, newname, source) {
        var _this = this;
        var fr = this.o[action];
        if (!fr) {
            throw (0, helpers_1.error)("Set \"".concat(action, "\" api options"));
        }
        fr.data.path = path;
        fr.data.name = name;
        fr.data.newname = newname;
        fr.data.source = source;
        return this.get(action).then(function (resp) {
            if (fr.process) {
                resp = fr.process.call(self, resp);
            }
            return _this.getMessage(resp);
        });
    };
    DataProvider.prototype.folderRename = function (path, name, newname, source) {
        return this.rename('folderRename', path, name, newname, source);
    };
    DataProvider.prototype.fileRename = function (path, name, newname, source) {
        return this.rename('fileRename', path, name, newname, source);
    };
    DataProvider.prototype.changeImage = function (type, path, source, name, newname, box) {
        if (!this.o[type]) {
            this.o[type] = {
                data: {}
            };
        }
        var query = this.o[type];
        if (query.data === undefined) {
            query.data = {
                action: type
            };
        }
        query.data.newname = newname || name;
        if (box) {
            query.data.box = box;
        }
        query.data.path = path;
        query.data.name = name;
        query.data.source = source;
        return this.get(type).then(function () {
            return true;
        });
    };
    DataProvider.prototype.crop = function (path, source, name, newname, box) {
        return this.changeImage('crop', path, source, name, newname, box);
    };
    DataProvider.prototype.resize = function (path, source, name, newname, box) {
        return this.changeImage('resize', path, source, name, newname, box);
    };
    DataProvider.prototype.getMessage = function (resp) {
        return this.options.getMessage(resp);
    };
    DataProvider.prototype.isSuccess = function (resp) {
        return this.options.isSuccess(resp);
    };
    DataProvider.prototype.destruct = function () {
        this.ajaxInstances.forEach(function (a) { return a.destruct(); });
        this.ajaxInstances.clear();
    };
    DataProvider = tslib_1.__decorate([
        decorators_1.autobind
    ], DataProvider);
    return DataProvider;
}());
exports["default"] = DataProvider;


/***/ }),

/***/ 46341:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_829040__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.makeContextMenu = exports.makeDataProvider = void 0;
var data_provider_1 = __nested_webpack_require_829040__(82530);
var context_menu_1 = __nested_webpack_require_829040__(60403);
function makeDataProvider(parent, options) {
    return new data_provider_1.default(parent, options);
}
exports.makeDataProvider = makeDataProvider;
function makeContextMenu(parent) {
    return new context_menu_1.ContextMenu(parent);
}
exports.makeContextMenu = makeContextMenu;


/***/ }),

/***/ 48096:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.deleteFile = void 0;
function deleteFile(fb, name, source) {
    return fb.dataProvider
        .fileRemove(fb.state.currentPath, name, source)
        .then(function (message) {
        fb.status(message || fb.i18n('File "%s" was deleted', name), true);
    })
        .catch(fb.status);
}
exports.deleteFile = deleteFile;


/***/ }),

/***/ 4253:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.loadItems = void 0;
function loadItems(fb) {
    fb.files.setMod('active', true);
    fb.files.setMod('loading', true);
    return fb.dataProvider
        .items(fb.state.currentPath, fb.state.currentSource, {
        sortBy: fb.state.sortBy,
        onlyImages: fb.state.onlyImages,
        filterWord: fb.state.filterWord
    })
        .then(function (resp) {
        if (resp) {
            fb.state.elements = resp;
            fb.state.activeElements = [];
        }
    })
        .catch(fb.status)
        .finally(function () { return fb.files.setMod('loading', false); });
}
exports.loadItems = loadItems;


/***/ }),

/***/ 36303:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_831596__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.loadTree = void 0;
var tslib_1 = __nested_webpack_require_831596__(20255);
var dom_1 = __nested_webpack_require_831596__(64968);
var load_items_1 = __nested_webpack_require_831596__(4253);
function loadTree(fb) {
    return tslib_1.__awaiter(this, void 0, Promise, function () {
        var items, tree;
        return tslib_1.__generator(this, function (_a) {
            fb.tree.setMod('active', true);
            dom_1.Dom.detach(fb.tree.container);
            items = (0, load_items_1.loadItems)(fb);
            if (fb.o.showFoldersPanel) {
                fb.tree.setMod('loading', true);
                tree = fb.dataProvider
                    .tree(fb.state.currentPath, fb.state.currentSource)
                    .then(function (resp) {
                    fb.state.sources = resp;
                })
                    .catch(fb.status)
                    .finally(function () { return fb.tree.setMod('loading', false); });
                return [2, Promise.all([tree, items])];
            }
            fb.tree.setMod('active', false);
            return [2, items];
        });
    });
}
exports.loadTree = loadTree;


/***/ }),

/***/ 50885:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_833102__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isFileBrowserFilesItem = exports.FileBrowser = void 0;
var tslib_1 = __nested_webpack_require_833102__(20255);
__nested_webpack_require_833102__(40692);
var config_1 = __nested_webpack_require_833102__(93166);
var consts = __nested_webpack_require_833102__(86893);
var storage_1 = __nested_webpack_require_833102__(77462);
var helpers_1 = __nested_webpack_require_833102__(40332);
var dom_1 = __nested_webpack_require_833102__(64968);
var factories_1 = __nested_webpack_require_833102__(46341);
var state_listeners_1 = __nested_webpack_require_833102__(86774);
var native_listeners_1 = __nested_webpack_require_833102__(21347);
var self_listeners_1 = __nested_webpack_require_833102__(44734);
var data_provider_1 = __nested_webpack_require_833102__(82530);
var decorators_1 = __nested_webpack_require_833102__(43441);
var ui_1 = __nested_webpack_require_833102__(98782);
var event_emitter_1 = __nested_webpack_require_833102__(55395);
var load_tree_1 = __nested_webpack_require_833102__(36303);
var load_items_1 = __nested_webpack_require_833102__(4253);
var component_1 = __nested_webpack_require_833102__(56562);
var traits_1 = __nested_webpack_require_833102__(59829);
var view_with_toolbar_1 = __nested_webpack_require_833102__(43608);
__nested_webpack_require_833102__(38097);
var FileBrowser = (function (_super) {
    tslib_1.__extends(FileBrowser, _super);
    function FileBrowser(options) {
        var _this = this;
        var _a;
        _this = _super.call(this, options) || this;
        _this.browser = _this.c.div(_this.componentName);
        _this.status_line = _this.c.div(_this.getFullElName('status'));
        _this.tree = new ui_1.FileBrowserTree(_this);
        _this.files = new ui_1.FileBrowserFiles(_this);
        _this.state = (0, event_emitter_1.observable)({
            currentPath: '',
            currentSource: data_provider_1.DEFAULT_SOURCE_NAME,
            currentBaseUrl: '',
            activeElements: [],
            elements: [],
            sources: [],
            view: 'tiles',
            sortBy: 'changed-desc',
            filterWord: '',
            onlyImages: false
        });
        _this.errorHandler = function (resp) {
            if ((0, helpers_1.isAbort)(resp)) {
                return;
            }
            if (resp instanceof Error) {
                _this.status(_this.i18n(resp.message));
            }
            else {
                _this.status(_this.dataProvider.getMessage(resp));
            }
        };
        _this.close = function () {
            _this._dialog.close();
        };
        _this.attachEvents(options);
        var self = _this;
        self.options = (0, helpers_1.ConfigProto)(options || {}, config_1.Config.defaultOptions.filebrowser);
        self.storage = storage_1.Storage.makeStorage(Boolean(_this.o.saveStateInStorage), _this.componentName);
        self.dataProvider = (0, factories_1.makeDataProvider)(self, self.options);
        self._dialog = _this.dlg({
            minWidth: Math.min(700, screen.width),
            minHeight: 300,
            buttons: (_a = _this.o.headerButtons) !== null && _a !== void 0 ? _a : ['fullsize', 'dialog.close']
        });
        _this.proxyDialogEvents(self);
        self.browser.component = _this;
        self.container = self.browser;
        if (self.o.showFoldersPanel) {
            self.browser.appendChild(self.tree.container);
        }
        self.browser.appendChild(self.files.container);
        self.browser.appendChild(self.status_line);
        self_listeners_1.selfListeners.call(self);
        native_listeners_1.nativeListeners.call(self);
        state_listeners_1.stateListeners.call(self);
        self._dialog.setSize(self.o.width, self.o.height);
        var keys = [
            'getLocalFileByUrl',
            'crop',
            'resize',
            'create',
            'fileMove',
            'folderMove',
            'fileRename',
            'folderRename',
            'fileRemove',
            'folderRemove',
            'folder',
            'items',
            'permissions'
        ];
        keys.forEach(function (key) {
            if (_this.options[key] != null) {
                _this.options[key] = (0, helpers_1.ConfigProto)(_this.options[key], _this.o.ajax);
            }
        });
        var _b = _this.o
            .saveStateInStorage || {
            storeLastOpenedFolder: false,
            storeView: false,
            storeSortBy: false
        }, storeView = _b.storeView, storeSortBy = _b.storeSortBy, storeLastOpenedFolder = _b.storeLastOpenedFolder;
        var view = storeView && _this.storage.get('view');
        if (view && _this.o.view == null) {
            self.state.view = view === 'list' ? 'list' : 'tiles';
        }
        else {
            self.state.view = self.o.view === 'list' ? 'list' : 'tiles';
        }
        self.files.setMod('view', self.state.view);
        var sortBy = storeSortBy && self.storage.get('sortBy');
        if (sortBy) {
            var parts = sortBy.split('-');
            self.state.sortBy = ['changed', 'name', 'size'].includes(parts[0])
                ? sortBy
                : 'changed-desc';
        }
        else {
            self.state.sortBy = self.o.sortBy || 'changed-desc';
        }
        if (storeLastOpenedFolder) {
            var currentPath = self.storage.get('currentPath'), currentSource = self.storage.get('currentSource');
            self.state.currentPath = currentPath !== null && currentPath !== void 0 ? currentPath : '';
            self.state.currentSource = currentSource !== null && currentSource !== void 0 ? currentSource : '';
        }
        self.initUploader(self);
        self.setStatus(component_1.STATUSES.ready);
        return _this;
    }
    FileBrowser.prototype.className = function () {
        return 'Filebrowser';
    };
    FileBrowser.prototype.onSelect = function (callback) {
        var _this = this;
        return function () {
            if (_this.state.activeElements.length) {
                var files_1 = [];
                var isImages_1 = [];
                _this.state.activeElements.forEach(function (elm) {
                    var url = elm.fileURL;
                    if (url) {
                        files_1.push(url);
                        isImages_1.push(elm.isImage || false);
                    }
                });
                _this.close();
                var data = {
                    baseurl: '',
                    files: files_1,
                    isImages: isImages_1
                };
                if ((0, helpers_1.isFunction)(callback)) {
                    callback(data);
                }
                _this.close();
            }
            return false;
        };
    };
    Object.defineProperty(FileBrowser.prototype, "isOpened", {
        get: function () {
            return this._dialog.isOpened && this.browser.style.display !== 'none';
        },
        enumerable: false,
        configurable: true
    });
    FileBrowser.prototype.status = function (message, success) {
        if (!message || (0, helpers_1.isAbort)(message)) {
            return;
        }
        if (!(0, helpers_1.isString)(message)) {
            message = message.message;
        }
        if (!(0, helpers_1.isString)(message) || !(0, helpers_1.trim)(message).length) {
            return;
        }
        this.message.message(message, success ? 'success' : 'error', this.o.howLongShowMsg);
    };
    FileBrowser.prototype.open = function (callback, onlyImages) {
        var _this = this;
        if (callback === void 0) { callback = this.o
            .defaultCallback; }
        if (onlyImages === void 0) { onlyImages = false; }
        this.state.onlyImages = onlyImages;
        return this.async.promise(function (resolve, reject) {
            if (!_this.o.items || !_this.o.items.url) {
                throw (0, helpers_1.error)('Need set options.filebrowser.ajax.url');
            }
            var localTimeout = 0;
            _this.e
                .off(_this.files.container, 'dblclick')
                .on(_this.files.container, 'dblclick', _this.onSelect(callback))
                .on(_this.files.container, 'touchstart', function () {
                var now = new Date().getTime();
                if (now - localTimeout < consts.EMULATE_DBLCLICK_TIMEOUT) {
                    _this.onSelect(callback)();
                }
                localTimeout = now;
            })
                .off('select.filebrowser')
                .on('select.filebrowser', _this.onSelect(callback));
            var header = _this.c.div();
            _this.toolbar.build(_this.__getButtons()).appendTo(header);
            _this._dialog.open(_this.browser, header);
            _this.e.fire('sort.filebrowser', _this.state.sortBy);
            (0, load_tree_1.loadTree)(_this).then(resolve, reject);
        });
    };
    FileBrowser.prototype.__getButtons = function () {
        var _this = this;
        var _a;
        var options = ((_a = this.o.buttons) !== null && _a !== void 0 ? _a : []);
        return options.filter(function (btn) {
            if (!(0, helpers_1.isString)(btn)) {
                return true;
            }
            switch (btn) {
                case 'filebrowser.upload':
                    return _this.dataProvider.canI('FileUpload');
                case 'filebrowser.edit':
                    return (_this.dataProvider.canI('ImageResize') ||
                        _this.dataProvider.canI('ImageCrop'));
                case 'filebrowser.remove':
                    return _this.dataProvider.canI('FileRemove');
            }
            return true;
        });
    };
    FileBrowser.prototype.initUploader = function (editor) {
        var _this = this;
        var _a;
        var self = this, options = (_a = editor === null || editor === void 0 ? void 0 : editor.options) === null || _a === void 0 ? void 0 : _a.uploader, uploaderOptions = (0, helpers_1.ConfigProto)(options || {}, config_1.Config.defaultOptions.uploader);
        var uploadHandler = function () { return (0, load_items_1.loadItems)(_this); };
        self.uploader = self.getInstance('Uploader', uploaderOptions);
        self.uploader
            .setPath(self.state.currentPath)
            .setSource(self.state.currentSource)
            .bind(self.browser, uploadHandler, self.errorHandler);
        this.state.on(['change.currentPath', 'change.currentSource'], function () {
            _this.uploader
                .setPath(_this.state.currentPath)
                .setSource(_this.state.currentSource);
        });
        self.e.on('bindUploader.filebrowser', function (button) {
            self.uploader.bind(button, uploadHandler, self.errorHandler);
        });
    };
    FileBrowser.prototype.proxyDialogEvents = function (self) {
        var _this = this;
        ['afterClose', 'beforeOpen'].forEach(function (proxyEvent) {
            self._dialog.events.on(self.dlg, proxyEvent, function () {
                _this.e.fire(proxyEvent);
            });
        });
    };
    FileBrowser.prototype.destruct = function () {
        if (this.isInDestruct) {
            return;
        }
        _super.prototype.destruct.call(this);
        this._dialog.destruct();
        this.events && this.e.off('.filebrowser');
        this.uploader && this.uploader.destruct();
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], FileBrowser.prototype, "status", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], FileBrowser.prototype, "open", null);
    FileBrowser = tslib_1.__decorate([
        (0, decorators_1.derive)(traits_1.Dlgs)
    ], FileBrowser);
    return FileBrowser;
}(view_with_toolbar_1.ViewWithToolbar));
exports.FileBrowser = FileBrowser;
function isFileBrowserFilesItem(target) {
    return (dom_1.Dom.isElement(target) &&
        target.classList.contains(ui_1.FileBrowserFiles.prototype.getFullElName('item')));
}
exports.isFileBrowserFilesItem = isFileBrowserFilesItem;


/***/ }),

/***/ 63463:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_845275__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_845275__(20255);
tslib_1.__exportStar(__nested_webpack_require_845275__(50885), exports);


/***/ }),

/***/ 21347:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_845777__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.nativeListeners = exports.elementToItem = exports.getItem = void 0;
var tslib_1 = __nested_webpack_require_845777__(20255);
var helpers_1 = __nested_webpack_require_845777__(40332);
var context_menu_1 = __nested_webpack_require_845777__(34468);
var dom_1 = __nested_webpack_require_845777__(64968);
var elements_map_1 = __nested_webpack_require_845777__(66267);
var load_tree_1 = __nested_webpack_require_845777__(36303);
var getItem = function (node, root, tag) {
    if (tag === void 0) { tag = 'a'; }
    return dom_1.Dom.closest(node, function (elm) { return dom_1.Dom.isTag(elm, tag); }, root);
};
exports.getItem = getItem;
var elementToItem = function (elm, elementsMap) {
    var key = elm.dataset.key, item = elementsMap[key || ''].item;
    return item;
};
exports.elementToItem = elementToItem;
function nativeListeners() {
    var _this = this;
    var dragElement = false;
    var elmMap = (0, elements_map_1.elementsMap)(this);
    var self = this;
    self.e
        .on(self.tree.container, 'dragstart', function (e) {
        var a = (0, exports.getItem)(e.target, self.container);
        if (!a) {
            return;
        }
        if (self.o.moveFolder) {
            dragElement = a;
        }
    })
        .on(self.tree.container, 'drop', function (e) {
        if ((self.o.moveFile || self.o.moveFolder) && dragElement) {
            var path = (0, helpers_1.attr)(dragElement, '-path') || '';
            if (!self.o.moveFolder &&
                dragElement.classList.contains(_this.tree.getFullElName('item'))) {
                return false;
            }
            if (dragElement.classList.contains(_this.files.getFullElName('item'))) {
                path += (0, helpers_1.attr)(dragElement, '-name');
                if (!self.o.moveFile) {
                    return false;
                }
            }
            var a = (0, exports.getItem)(e.target, self.container);
            if (!a) {
                return;
            }
            self.dataProvider
                .move(path, (0, helpers_1.attr)(a, '-path') || '', (0, helpers_1.attr)(a, '-source') || '', dragElement.classList.contains(_this.files.getFullElName('item')))
                .then(function () { return (0, load_tree_1.loadTree)(_this); })
                .catch(self.status);
            dragElement = false;
        }
    })
        .on(self.files.container, 'contextmenu', (0, context_menu_1.default)(self))
        .on(self.files.container, 'click', function (e) {
        if (!(0, helpers_1.ctrlKey)(e)) {
            _this.state.activeElements = [];
        }
    })
        .on(self.files.container, 'click', function (e) {
        var a = (0, exports.getItem)(e.target, self.container);
        if (!a) {
            return;
        }
        var item = (0, exports.elementToItem)(a, elmMap);
        if (!item) {
            return;
        }
        if (!(0, helpers_1.ctrlKey)(e)) {
            self.state.activeElements = [item];
        }
        else {
            self.state.activeElements = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(self.state.activeElements), false), [
                item
            ], false);
        }
        e.stopPropagation();
        return false;
    })
        .on(self.files.container, 'dragstart', function (e) {
        if (self.o.moveFile) {
            var a = (0, exports.getItem)(e.target, self.container);
            if (!a) {
                return;
            }
            dragElement = a;
        }
    })
        .on(self.container, 'drop', function (e) { return e.preventDefault(); });
}
exports.nativeListeners = nativeListeners;


/***/ }),

/***/ 44734:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_849736__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.selfListeners = void 0;
var tslib_1 = __nested_webpack_require_849736__(20255);
var checker_1 = __nested_webpack_require_849736__(10172);
var helpers_1 = __nested_webpack_require_849736__(40332);
var data_provider_1 = __nested_webpack_require_849736__(82530);
var image_editor_1 = __nested_webpack_require_849736__(35503);
var load_tree_1 = __nested_webpack_require_849736__(36303);
var load_items_1 = __nested_webpack_require_849736__(4253);
var delete_file_1 = __nested_webpack_require_849736__(48096);
function selfListeners() {
    var _this = this;
    var state = this.state, dp = this.dataProvider, self = this;
    self.e
        .on('view.filebrowser', function (view) {
        if (view !== state.view) {
            state.view = view;
        }
    })
        .on('sort.filebrowser', function (value) {
        if (value !== state.sortBy) {
            state.sortBy = value;
            (0, load_items_1.loadItems)(self);
        }
    })
        .on('filter.filebrowser', function (value) {
        if (value !== state.filterWord) {
            state.filterWord = value;
            (0, load_items_1.loadItems)(self);
        }
    })
        .on('openFolder.filebrowser', function (data) {
        var path;
        if (data.name === '..') {
            path = data.path
                .split('/')
                .filter(function (p) { return p.length; })
                .slice(0, -1)
                .join('/');
        }
        else {
            path = (0, helpers_1.normalizePath)(data.path, data.name);
        }
        self.state.currentPath = path;
        self.state.currentSource =
            data.name === '.' ? data_provider_1.DEFAULT_SOURCE_NAME : data.source;
    })
        .on('removeFolder.filebrowser', function (data) {
        self.confirm('Are you sure?', 'Delete', function (yes) {
            if (yes) {
                dp.folderRemove(data.path, data.name, data.source)
                    .then(function (message) {
                    self.status(message, true);
                    return (0, load_tree_1.loadTree)(self);
                })
                    .catch(self.status);
            }
        });
    })
        .on('renameFolder.filebrowser', function (data) {
        self.prompt('Enter new name', 'Rename', function (newName) {
            if (!(0, checker_1.isValidName)(newName)) {
                self.status(self.i18n('Enter new name'));
                return false;
            }
            dp.folderRename(data.path, data.name, newName, data.source)
                .then(function (message) {
                self.state.activeElements = [];
                self.status(message, true);
                return (0, load_tree_1.loadTree)(self);
            })
                .catch(self.status);
            return;
        }, 'type name', data.name);
    })
        .on('addFolder.filebrowser', function (data) {
        self.prompt('Enter Directory name', 'Create directory', function (name) {
            dp.createFolder(name, data.path, data.source)
                .then(function () { return (0, load_tree_1.loadTree)(self); })
                .catch(self.status);
        }, 'type name');
    })
        .on('fileRemove.filebrowser', function () {
        if (self.state.activeElements.length) {
            self.confirm('Are you sure?', '', function (yes) {
                if (yes) {
                    var promises_1 = [];
                    self.state.activeElements.forEach(function (item) {
                        promises_1.push((0, delete_file_1.deleteFile)(self, item.file || item.name || '', item.sourceName));
                    });
                    self.state.activeElements = [];
                    Promise.all(promises_1).then(function () { return (0, load_tree_1.loadTree)(self).catch(self.status); }, self.status);
                }
            });
        }
    })
        .on('edit.filebrowser', function () {
        if (self.state.activeElements.length === 1) {
            var _a = tslib_1.__read(_this.state.activeElements, 1), file = _a[0];
            image_editor_1.openImageEditor.call(self, file.fileURL, file.file || '', file.path, file.sourceName);
        }
    })
        .on('fileRename.filebrowser', function (name, path, source) {
        if (self.state.activeElements.length === 1) {
            self.prompt('Enter new name', 'Rename', function (newName) {
                if (!(0, checker_1.isValidName)(newName)) {
                    self.status(self.i18n('Enter new name'));
                    return false;
                }
                dp.fileRename(path, name, newName, source)
                    .then(function (message) {
                    self.state.activeElements = [];
                    self.status(message, true);
                    (0, load_items_1.loadItems)(self);
                })
                    .catch(self.status);
                return;
            }, 'type name', name);
        }
    })
        .on('update.filebrowser', function () {
        (0, load_tree_1.loadTree)(_this).then(_this.status, _this.status);
    });
}
exports.selfListeners = selfListeners;


/***/ }),

/***/ 86774:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_855146__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.stateListeners = void 0;
var dom_1 = __nested_webpack_require_855146__(64968);
var normalize_1 = __nested_webpack_require_855146__(89693);
var ui_1 = __nested_webpack_require_855146__(2074);
var elements_map_1 = __nested_webpack_require_855146__(66267);
var load_tree_1 = __nested_webpack_require_855146__(36303);
var DEFAULT_SOURCE_NAME = 'default';
function stateListeners() {
    var _this = this;
    var elmMap = (0, elements_map_1.elementsMap)(this);
    var _a = this, state = _a.state, files = _a.files, create = _a.create, options = _a.options, getDomElement = function (item) {
        var key = item.uniqueHashKey;
        if (elmMap[key]) {
            return elmMap[key].elm;
        }
        var elm = create.fromHTML(options.getThumbTemplate.call(_this, item, item.source, item.sourceName.toString()));
        elm.dataset.key = key;
        elmMap[key] = {
            item: item,
            elm: elm
        };
        return elmMap[key].elm;
    };
    state
        .on(['change.currentPath', 'change.currentSource'], this.async.debounce(function () {
        if (_this.o.saveStateInStorage &&
            _this.o.saveStateInStorage.storeLastOpenedFolder) {
            _this.storage
                .set('currentPath', _this.state.currentPath)
                .set('currentSource', _this.state.currentSource);
        }
        (0, load_tree_1.loadTree)(_this).catch(_this.status);
    }, this.defaultTimeout))
        .on('beforeChange.activeElements', function () {
        state.activeElements.forEach(function (item) {
            var key = item.uniqueHashKey, elm = elmMap[key].elm;
            elm &&
                elm.classList.remove(files.getFullElName('item', 'active', true));
        });
    })
        .on('change.activeElements', function () {
        _this.e.fire('changeSelection');
        state.activeElements.forEach(function (item) {
            var key = item.uniqueHashKey, elm = elmMap[key].elm;
            elm &&
                elm.classList.add(files.getFullElName('item', 'active', true));
        });
    })
        .on('change.view', function () {
        files.setMod('view', state.view);
        if (_this.o.saveStateInStorage &&
            _this.o.saveStateInStorage.storeView) {
            _this.storage.set('view', state.view);
        }
    })
        .on('change.sortBy', function () {
        if (_this.o.saveStateInStorage &&
            _this.o.saveStateInStorage.storeSortBy) {
            _this.storage.set('sortBy', state.sortBy);
        }
    })
        .on('change.elements', this.async.debounce(function () {
        dom_1.Dom.detach(files.container);
        if (state.elements.length) {
            state.elements.forEach(function (item) {
                _this.files.container.appendChild(getDomElement(item));
            });
        }
        else {
            files.container.appendChild(create.div(_this.componentName + '_no-files_true', _this.i18n('There are no files')));
        }
    }, this.defaultTimeout))
        .on('change.sources', this.async.debounce(function () {
        dom_1.Dom.detach(_this.tree.container);
        state.sources.forEach(function (source) {
            var sourceName = source.name;
            if (sourceName && sourceName !== DEFAULT_SOURCE_NAME) {
                _this.tree.container.appendChild(create.div(_this.tree.getFullElName('source-title'), sourceName));
            }
            source.folders.forEach(function (name) {
                var folderElm = create.a(_this.tree.getFullElName('item'), {
                    draggable: 'draggable',
                    href: '#',
                    'data-path': (0, normalize_1.normalizePath)(source.path, name + '/'),
                    'data-name': name,
                    'data-source': sourceName,
                    'data-source-path': source.path
                }, create.span(_this.tree.getFullElName('item-title'), name));
                var action = function (actionName) { return function (e) {
                    _this.e.fire("".concat(actionName, ".filebrowser"), {
                        name: name,
                        path: (0, normalize_1.normalizePath)(source.path + '/'),
                        source: sourceName
                    });
                    e.stopPropagation();
                    e.preventDefault();
                }; };
                _this.e.on(folderElm, 'click', action('openFolder'));
                _this.tree.container.appendChild(folderElm);
                if (name === '..' || name === '.') {
                    return;
                }
                if (options.renameFolder &&
                    _this.dataProvider.canI('FolderRename')) {
                    var btn = (0, ui_1.Button)(_this, {
                        icon: { name: 'pencil' },
                        name: 'rename',
                        tooltip: 'Rename',
                        size: 'tiny'
                    });
                    btn.onAction(action('renameFolder'));
                    folderElm.appendChild(btn.container);
                }
                if (options.deleteFolder &&
                    _this.dataProvider.canI('FolderRemove')) {
                    var btn = (0, ui_1.Button)(_this, {
                        icon: { name: 'cancel' },
                        name: 'remove',
                        tooltip: 'Delete',
                        size: 'tiny'
                    });
                    btn.onAction(action('removeFolder'));
                    folderElm.appendChild(btn.container);
                }
            });
            if (options.createNewFolder &&
                _this.dataProvider.canI('FolderCreate')) {
                var button = (0, ui_1.Button)(_this, 'plus', 'Add folder', 'secondary');
                button.onAction(function () {
                    _this.e.fire('addFolder', {
                        path: (0, normalize_1.normalizePath)(source.path + '/'),
                        source: sourceName
                    });
                });
                _this.tree.append(button);
            }
        });
    }, this.defaultTimeout));
}
exports.stateListeners = stateListeners;


/***/ }),

/***/ 21505:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_861652__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.FileBrowserFiles = void 0;
var tslib_1 = __nested_webpack_require_861652__(20255);
__nested_webpack_require_861652__(27452);
var ui_1 = __nested_webpack_require_861652__(2074);
var FileBrowserFiles = (function (_super) {
    tslib_1.__extends(FileBrowserFiles, _super);
    function FileBrowserFiles() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    FileBrowserFiles.prototype.className = function () {
        return 'FilebrowserFiles';
    };
    return FileBrowserFiles;
}(ui_1.UIGroup));
exports.FileBrowserFiles = FileBrowserFiles;


/***/ }),

/***/ 98782:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_862593__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_862593__(20255);
tslib_1.__exportStar(__nested_webpack_require_862593__(21505), exports);
tslib_1.__exportStar(__nested_webpack_require_862593__(42472), exports);


/***/ }),

/***/ 42472:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_863154__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.FileBrowserTree = void 0;
var tslib_1 = __nested_webpack_require_863154__(20255);
__nested_webpack_require_863154__(51422);
var ui_1 = __nested_webpack_require_863154__(2074);
var FileBrowserTree = (function (_super) {
    tslib_1.__extends(FileBrowserTree, _super);
    function FileBrowserTree() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    FileBrowserTree.prototype.className = function () {
        return 'FilebrowserTree';
    };
    return FileBrowserTree;
}(ui_1.UIGroup));
exports.FileBrowserTree = FileBrowserTree;


/***/ }),

/***/ 3107:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Command = void 0;
var Command = (function () {
    function Command(oldValue, newValue, history, tick) {
        this.oldValue = oldValue;
        this.newValue = newValue;
        this.history = history;
        this.tick = tick;
    }
    Command.prototype.undo = function () {
        this.history.snapshot.restore(this.oldValue);
    };
    Command.prototype.redo = function () {
        this.history.snapshot.restore(this.newValue);
    };
    return Command;
}());
exports.Command = Command;


/***/ }),

/***/ 15432:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_864971__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.History = void 0;
var tslib_1 = __nested_webpack_require_864971__(20255);
var config_1 = __nested_webpack_require_864971__(93166);
var component_1 = __nested_webpack_require_864971__(56562);
var snapshot_1 = __nested_webpack_require_864971__(31648);
var stack_1 = __nested_webpack_require_864971__(3621);
var command_1 = __nested_webpack_require_864971__(3107);
var decorators_1 = __nested_webpack_require_864971__(43441);
config_1.Config.prototype.history = {
    enable: true,
    maxHistoryLength: Infinity,
    timeout: 1000
};
config_1.Config.prototype.observer = config_1.Config.prototype.history;
var History = (function (_super) {
    tslib_1.__extends(History, _super);
    function History(editor, stack, snapshot) {
        if (stack === void 0) { stack = new stack_1.Stack(editor.o.history.maxHistoryLength); }
        if (snapshot === void 0) { snapshot = new snapshot_1.Snapshot(editor); }
        var _this = _super.call(this, editor) || this;
        _this.updateTick = 0;
        _this.__stack = stack;
        _this.snapshot = snapshot;
        if (editor.o.history.enable) {
            editor.e.on('afterAddPlace.history', function () {
                if (_this.isInDestruct) {
                    return;
                }
                _this.startValue = _this.snapshot.make();
                editor.events
                    .on('internalChange internalUpdate', function () {
                    _this.startValue = _this.snapshot.make();
                })
                    .on(editor.editor, [
                    'changeSelection',
                    'selectionstart',
                    'selectionchange',
                    'mousedown',
                    'mouseup',
                    'keydown',
                    'keyup'
                ]
                    .map(function (f) { return f + '.history'; })
                    .join(' '), function () {
                    if (_this.startValue.html ===
                        _this.j.getNativeEditorValue()) {
                        _this.startValue = _this.snapshot.make();
                    }
                })
                    .on(_this, 'change.history', _this.onChange);
            });
        }
        return _this;
    }
    History.prototype.className = function () {
        return 'History';
    };
    Object.defineProperty(History.prototype, "startValue", {
        get: function () {
            return this.__startValue;
        },
        set: function (value) {
            this.__startValue = value;
        },
        enumerable: false,
        configurable: true
    });
    History.prototype.__upTick = function () {
        this.updateTick += 1;
    };
    History.prototype.onChange = function () {
        this.__processChanges();
    };
    History.prototype.__processChanges = function () {
        if (this.snapshot.isBlocked || !this.j.o.history.enable) {
            return;
        }
        this.updateStack();
    };
    History.prototype.updateStack = function (replace) {
        if (replace === void 0) { replace = false; }
        var newValue = this.snapshot.make();
        if (!snapshot_1.Snapshot.equal(newValue, this.startValue)) {
            var newCommand = new command_1.Command(this.startValue, newValue, this, this.updateTick);
            if (replace) {
                var command = this.__stack.current();
                if (command && this.updateTick === command.tick) {
                    this.__stack.replace(newCommand);
                }
            }
            else {
                this.__stack.push(newCommand);
            }
            this.startValue = newValue;
            this.fireChangeStack();
        }
    };
    History.prototype.redo = function () {
        if (this.__stack.redo()) {
            this.startValue = this.snapshot.make();
            this.fireChangeStack();
        }
    };
    History.prototype.canRedo = function () {
        return this.__stack.canRedo();
    };
    History.prototype.undo = function () {
        if (this.__stack.undo()) {
            this.startValue = this.snapshot.make();
            this.fireChangeStack();
        }
    };
    History.prototype.canUndo = function () {
        return this.__stack.canUndo();
    };
    History.prototype.clear = function () {
        this.startValue = this.snapshot.make();
        this.__stack.clear();
        this.fireChangeStack();
    };
    Object.defineProperty(History.prototype, "length", {
        get: function () {
            return this.__stack.length;
        },
        enumerable: false,
        configurable: true
    });
    History.prototype.fireChangeStack = function () {
        var _a;
        this.j && !this.j.isInDestruct && ((_a = this.j.events) === null || _a === void 0 ? void 0 : _a.fire('changeStack'));
    };
    History.prototype.destruct = function () {
        if (this.isInDestruct) {
            return;
        }
        if (this.j.events) {
            this.j.e.off('.history');
        }
        this.snapshot.destruct();
        _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        (0, decorators_1.debounce)()
    ], History.prototype, "onChange", null);
    return History;
}(component_1.ViewComponent));
exports.History = History;


/***/ }),

/***/ 31648:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_870535__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Snapshot = void 0;
var tslib_1 = __nested_webpack_require_870535__(20255);
var component_1 = __nested_webpack_require_870535__(56562);
var dom_1 = __nested_webpack_require_870535__(64968);
var constants_1 = __nested_webpack_require_870535__(86893);
var Snapshot = (function (_super) {
    tslib_1.__extends(Snapshot, _super);
    function Snapshot() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.__isBlocked = false;
        return _this;
    }
    Snapshot.prototype.className = function () {
        return 'Snapshot';
    };
    Snapshot.equal = function (first, second) {
        return (first.html === second.html &&
            JSON.stringify(first.range) === JSON.stringify(second.range));
    };
    Snapshot.countNodesBeforeInParent = function (elm) {
        if (!elm.parentNode) {
            return 0;
        }
        var elms = elm.parentNode.childNodes;
        var count = 0, previous = null;
        for (var j = 0; j < elms.length; j += 1) {
            if (previous &&
                !this.isIgnoredNode(elms[j]) &&
                !(dom_1.Dom.isText(previous) && dom_1.Dom.isText(elms[j]))) {
                count += 1;
            }
            if (elms[j] === elm) {
                return count;
            }
            previous = elms[j];
        }
        return 0;
    };
    Snapshot.strokeOffset = function (elm, offset) {
        while (dom_1.Dom.isText(elm)) {
            elm = elm.previousSibling;
            if (dom_1.Dom.isText(elm) && elm.nodeValue) {
                offset += elm.nodeValue.length;
            }
        }
        return offset;
    };
    Snapshot.prototype.calcHierarchyLadder = function (elm) {
        var counts = [];
        if (!elm || !elm.parentNode || !dom_1.Dom.isOrContains(this.j.editor, elm)) {
            return [];
        }
        while (elm && elm !== this.j.editor) {
            if (elm && !Snapshot.isIgnoredNode(elm)) {
                counts.push(Snapshot.countNodesBeforeInParent(elm));
            }
            elm = elm.parentNode;
        }
        return counts.reverse();
    };
    Snapshot.prototype.getElementByLadder = function (ladder) {
        var n = this.j.editor, i;
        for (i = 0; n && i < ladder.length; i += 1) {
            n = n.childNodes[ladder[i]];
        }
        return n;
    };
    Object.defineProperty(Snapshot.prototype, "isBlocked", {
        get: function () {
            return this.__isBlocked;
        },
        enumerable: false,
        configurable: true
    });
    Snapshot.prototype.__block = function (enable) {
        this.__isBlocked = enable;
    };
    Snapshot.prototype.transaction = function (changes) {
        this.__block(true);
        try {
            changes();
        }
        catch (e) {
              false && 0;
        }
        this.__block(false);
    };
    Snapshot.prototype.make = function () {
        var snapshot = {
            html: '',
            range: {
                startContainer: [],
                startOffset: 0,
                endContainer: [],
                endOffset: 0
            }
        };
        snapshot.html = this.removeJoditSelection(this.j.editor);
        var sel = this.j.s.sel;
        if (sel && sel.rangeCount) {
            var range = sel.getRangeAt(0), startContainer = this.calcHierarchyLadder(range.startContainer), endContainer = this.calcHierarchyLadder(range.endContainer);
            var startOffset = Snapshot.strokeOffset(range.startContainer, range.startOffset), endOffset = Snapshot.strokeOffset(range.endContainer, range.endOffset);
            if (!startContainer.length &&
                range.startContainer !== this.j.editor) {
                startOffset = 0;
            }
            if (!endContainer.length && range.endContainer !== this.j.editor) {
                endOffset = 0;
            }
            snapshot.range = {
                startContainer: startContainer,
                startOffset: startOffset,
                endContainer: endContainer,
                endOffset: endOffset
            };
        }
        return snapshot;
    };
    Snapshot.prototype.restore = function (snapshot) {
        var _this = this;
        this.transaction(function () {
            var scroll = _this.storeScrollState();
            var value = _this.j.getNativeEditorValue();
            if (value !== snapshot.html) {
                _this.j.value = snapshot.html;
            }
            _this.restoreOnlySelection(snapshot);
            _this.restoreScrollState(scroll);
        });
    };
    Snapshot.prototype.storeScrollState = function () {
        return [this.j.ow.scrollY, this.j.editor.scrollTop];
    };
    Snapshot.prototype.restoreScrollState = function (scrolls) {
        var j = this.j, ow = j.ow;
        ow.scrollTo(ow.scrollX, scrolls[0]);
        j.editor.scrollTop = scrolls[1];
    };
    Snapshot.prototype.restoreOnlySelection = function (snapshot) {
        try {
            if (snapshot.range) {
                var range = this.j.ed.createRange();
                range.setStart(this.getElementByLadder(snapshot.range.startContainer), snapshot.range.startOffset);
                range.setEnd(this.getElementByLadder(snapshot.range.endContainer), snapshot.range.endOffset);
                this.j.s.selectRange(range);
            }
        }
        catch (__ignore) {
            this.j.editor.lastChild &&
                this.j.s.setCursorAfter(this.j.editor.lastChild);
            if (false) // removed by dead control flow
{}
        }
    };
    Snapshot.prototype.destruct = function () {
        this.__block(false);
        _super.prototype.destruct.call(this);
    };
    Snapshot.isIgnoredNode = function (node) {
        return (dom_1.Dom.isText(node) && !node.nodeValue) || dom_1.Dom.isTemporary(node);
    };
    Snapshot.prototype.removeJoditSelection = function (node) {
        var clone = node.cloneNode(true);
        clone.querySelectorAll("[".concat(constants_1.TEMP_ATTR, "]")).forEach(dom_1.Dom.unwrap);
        return clone.innerHTML;
    };
    return Snapshot;
}(component_1.ViewComponent));
exports.Snapshot = Snapshot;


/***/ }),

/***/ 3621:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Stack = void 0;
var Stack = (function () {
    function Stack(size) {
        this.size = size;
        this.commands = [];
        this.stackPosition = -1;
    }
    Object.defineProperty(Stack.prototype, "length", {
        get: function () {
            return this.commands.length;
        },
        enumerable: false,
        configurable: true
    });
    Stack.prototype.clearRedo = function () {
        this.commands.length = this.stackPosition + 1;
    };
    Stack.prototype.clear = function () {
        this.commands.length = 0;
        this.stackPosition = -1;
    };
    Stack.prototype.push = function (command) {
        this.clearRedo();
        this.commands.push(command);
        this.stackPosition += 1;
        if (this.commands.length > this.size) {
            this.commands.shift();
            this.stackPosition -= 1;
        }
    };
    Stack.prototype.replace = function (command) {
        this.commands[this.stackPosition] = command;
    };
    Stack.prototype.current = function () {
        return this.commands[this.stackPosition];
    };
    Stack.prototype.undo = function () {
        if (this.canUndo()) {
            if (this.commands[this.stackPosition]) {
                this.commands[this.stackPosition].undo();
            }
            this.stackPosition -= 1;
            return true;
        }
        return false;
    };
    Stack.prototype.redo = function () {
        if (this.canRedo()) {
            this.stackPosition += 1;
            if (this.commands[this.stackPosition]) {
                this.commands[this.stackPosition].redo();
            }
            return true;
        }
        return false;
    };
    Stack.prototype.canUndo = function () {
        return this.stackPosition >= 0;
    };
    Stack.prototype.canRedo = function () {
        return this.stackPosition < this.commands.length - 1;
    };
    return Stack;
}());
exports.Stack = Stack;


/***/ }),

/***/ 95356:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_879329__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_879329__(93166);
var icon_1 = __nested_webpack_require_879329__(77904);
config_1.Config.prototype.imageeditor = {
    min_width: 20,
    min_height: 20,
    closeAfterSave: false,
    width: '85%',
    height: '85%',
    crop: true,
    resize: true,
    resizeUseRatio: true,
    resizeMinWidth: 20,
    resizeMinHeight: 20,
    cropUseRatio: true,
    cropDefaultWidth: '70%',
    cropDefaultHeight: '70%'
};
icon_1.Icon.set('crop', __nested_webpack_require_879329__(3610)).set('resize', __nested_webpack_require_879329__(56170));


/***/ }),

/***/ 35503:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_880247__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.openImageEditor = exports.ImageEditor = void 0;
var tslib_1 = __nested_webpack_require_880247__(20255);
__nested_webpack_require_880247__(62820);
var config_1 = __nested_webpack_require_880247__(93166);
var component_1 = __nested_webpack_require_880247__(56562);
var helpers_1 = __nested_webpack_require_880247__(40332);
var dom_1 = __nested_webpack_require_880247__(64968);
var button_1 = __nested_webpack_require_880247__(96516);
var form_1 = __nested_webpack_require_880247__(9249);
var decorators_1 = __nested_webpack_require_880247__(43441);
__nested_webpack_require_880247__(95356);
var jie = 'jodit-image-editor';
var TABS = {
    resize: 'resize',
    crop: 'crop'
};
var ImageEditor = (function (_super) {
    tslib_1.__extends(ImageEditor, _super);
    function ImageEditor(editor) {
        var _this = _super.call(this, editor) || this;
        _this.resizeUseRatio = true;
        _this.cropUseRatio = true;
        _this.clicked = false;
        _this.start_x = 0;
        _this.start_y = 0;
        _this.top_x = 0;
        _this.top_y = 0;
        _this.width = 0;
        _this.height = 0;
        _this.activeTab = TABS.resize;
        _this.naturalWidth = 0;
        _this.naturalHeight = 0;
        _this.ratio = 0;
        _this.new_h = 0;
        _this.new_w = 0;
        _this.diff_x = 0;
        _this.diff_y = 0;
        _this.cropBox = {
            x: 0,
            y: 0,
            w: 0,
            h: 0
        };
        _this.resizeBox = {
            w: 0,
            h: 0
        };
        _this.calcCropBox = function () {
            var node = _this.crop_box.parentNode, w = node.offsetWidth * 0.8, h = node.offsetHeight * 0.8;
            var wn = w, hn = h;
            var _a = _this, nw = _a.naturalWidth, nh = _a.naturalHeight;
            if (w > nw && h > nh) {
                wn = nw;
                hn = nh;
            }
            else if (_this.ratio > w / h) {
                wn = w;
                hn = nh * (w / nw);
            }
            else {
                wn = nw * (h / nh);
                hn = h;
            }
            (0, helpers_1.css)(_this.crop_box, {
                width: wn,
                height: hn
            });
        };
        _this.showCrop = function () {
            if (!_this.cropImage) {
                return;
            }
            _this.calcCropBox();
            var w = _this.cropImage.offsetWidth ||
                _this.image.offsetWidth ||
                _this.image.naturalWidth;
            _this.new_w = ImageEditor_1.calcValueByPercent(w, _this.o.cropDefaultWidth);
            var h = _this.cropImage.offsetHeight ||
                _this.image.offsetHeight ||
                _this.image.naturalHeight;
            if (_this.cropUseRatio) {
                _this.new_h = _this.new_w / _this.ratio;
            }
            else {
                _this.new_h = ImageEditor_1.calcValueByPercent(h, _this.o.cropDefaultHeight);
            }
            (0, helpers_1.css)(_this.cropHandler, {
                backgroundImage: 'url(' + (0, helpers_1.attr)(_this.cropImage, 'src') + ')',
                width: _this.new_w,
                height: _this.new_h,
                left: w / 2 - _this.new_w / 2,
                top: h / 2 - _this.new_h / 2
            });
            _this.j.e.fire(_this.cropHandler, 'updatesize');
        };
        _this.updateCropBox = function () {
            if (!_this.cropImage) {
                return;
            }
            var ratioX = _this.cropImage.offsetWidth / _this.naturalWidth, ratioY = _this.cropImage.offsetHeight / _this.naturalHeight;
            _this.cropBox.x = (0, helpers_1.css)(_this.cropHandler, 'left') / ratioX;
            _this.cropBox.y = (0, helpers_1.css)(_this.cropHandler, 'top') / ratioY;
            _this.cropBox.w = _this.cropHandler.offsetWidth / ratioX;
            _this.cropBox.h = _this.cropHandler.offsetHeight / ratioY;
            _this.sizes.textContent =
                _this.cropBox.w.toFixed(0) + 'x' + _this.cropBox.h.toFixed(0);
        };
        _this.updateResizeBox = function () {
            _this.resizeBox.w = _this.image.offsetWidth || _this.naturalWidth;
            _this.resizeBox.h = _this.image.offsetHeight || _this.naturalHeight;
        };
        _this.setHandlers = function () {
            var self = _this;
            var _a = (0, helpers_1.refs)(_this.editor), widthInput = _a.widthInput, heightInput = _a.heightInput;
            self.j.e
                .on([
                self.editor.querySelector('.jodit_bottomright'),
                self.cropHandler
            ], "mousedown.".concat(jie), _this.onResizeHandleMouseDown)
                .on(_this.j.ow, "resize.".concat(jie), function () {
                _this.j.e.fire(self.resizeHandler, 'updatesize');
                self.showCrop();
                _this.j.e.fire(self.cropHandler, 'updatesize');
            });
            self.j.e
                .on((0, helpers_1.toArray)(_this.editor.querySelectorAll(".".concat(jie, "__slider-title"))), 'click', _this.onTitleModeClick)
                .on([widthInput, heightInput], 'input', _this.onChangeSizeInput);
            var _b = (0, helpers_1.refs)(_this.editor), keepAspectRatioResize = _b.keepAspectRatioResize, keepAspectRatioCrop = _b.keepAspectRatioCrop;
            if (keepAspectRatioResize) {
                keepAspectRatioResize.addEventListener('change', function () {
                    _this.resizeUseRatio = keepAspectRatioResize.checked;
                });
            }
            if (keepAspectRatioCrop) {
                keepAspectRatioCrop.addEventListener('change', function () {
                    _this.cropUseRatio = keepAspectRatioCrop.checked;
                });
            }
            self.j.e
                .on(self.resizeHandler, 'updatesize', function () {
                (0, helpers_1.css)(self.resizeHandler, {
                    top: 0,
                    left: 0,
                    width: self.image.offsetWidth || self.naturalWidth,
                    height: self.image.offsetHeight || self.naturalHeight
                });
                _this.updateResizeBox();
            })
                .on(self.cropHandler, 'updatesize', function () {
                if (!self.cropImage) {
                    return;
                }
                var new_x = (0, helpers_1.css)(self.cropHandler, 'left'), new_y = (0, helpers_1.css)(self.cropHandler, 'top'), new_width = self.cropHandler.offsetWidth, new_height = self.cropHandler.offsetHeight;
                if (new_x < 0) {
                    new_x = 0;
                }
                if (new_y < 0) {
                    new_y = 0;
                }
                if (new_x + new_width > self.cropImage.offsetWidth) {
                    new_width = self.cropImage.offsetWidth - new_x;
                    if (self.cropUseRatio) {
                        new_height = new_width / self.ratio;
                    }
                }
                if (new_y + new_height > self.cropImage.offsetHeight) {
                    new_height = self.cropImage.offsetHeight - new_y;
                    if (self.cropUseRatio) {
                        new_width = new_height * self.ratio;
                    }
                }
                (0, helpers_1.css)(self.cropHandler, {
                    width: new_width,
                    height: new_height,
                    left: new_x,
                    top: new_y,
                    backgroundPosition: -new_x - 1 + 'px ' + (-new_y - 1) + 'px',
                    backgroundSize: self.cropImage.offsetWidth +
                        'px ' +
                        self.cropImage.offsetHeight +
                        'px'
                });
                self.updateCropBox();
            });
            Object.values(self.buttons).forEach(function (button) {
                button.onAction(function () {
                    var data = {
                        action: self.activeTab,
                        box: self.activeTab === TABS.resize
                            ? self.resizeBox
                            : self.cropBox
                    };
                    switch (button) {
                        case self.buttons.saveas:
                            self.j.prompt('Enter new name', 'Save in new file', function (name) {
                                if (!(0, helpers_1.trim)(name)) {
                                    self.j.alert('The name should not be empty');
                                    return false;
                                }
                                self.onSave(name, data, self.hide, function (e) {
                                    self.j.alert(e.message);
                                });
                            });
                            break;
                        case self.buttons.save:
                            self.onSave(undefined, data, self.hide, function (e) {
                                self.j.alert(e.message);
                            });
                            break;
                        case self.buttons.reset:
                            if (self.activeTab === TABS.resize) {
                                (0, helpers_1.css)(self.image, {
                                    width: null,
                                    height: null
                                });
                                widthInput.value = self.naturalWidth.toString();
                                heightInput.value = self.naturalHeight.toString();
                                self.j.e.fire(self.resizeHandler, 'updatesize');
                            }
                            else {
                                self.showCrop();
                            }
                            break;
                    }
                });
            });
        };
        _this.options =
            editor && editor.o && editor.o.imageeditor
                ? editor.o.imageeditor
                : config_1.Config.defaultOptions.imageeditor;
        var o = _this.options;
        _this.resizeUseRatio = o.resizeUseRatio;
        _this.cropUseRatio = o.cropUseRatio;
        _this.buttons = {
            reset: (0, button_1.Button)(_this.j, 'update', 'Reset'),
            save: (0, button_1.Button)(_this.j, 'save', 'Save'),
            saveas: (0, button_1.Button)(_this.j, 'save', 'Save as ...')
        };
        _this.activeTab = o.resize ? TABS.resize : TABS.crop;
        _this.editor = (0, form_1.form)(_this.j, _this.options);
        var _a = (0, helpers_1.refs)(_this.editor), resizeBox = _a.resizeBox, cropBox = _a.cropBox;
        _this.resize_box = resizeBox;
        _this.crop_box = cropBox;
        _this.sizes = _this.editor.querySelector(".".concat(jie, "__area.").concat(jie, "__area_crop .jodit-image-editor__sizes"));
        _this.resizeHandler = _this.editor.querySelector(".".concat(jie, "__resizer"));
        _this.cropHandler = _this.editor.querySelector(".".concat(jie, "__croper"));
        _this._dialog = _this.j.dlg({
            buttons: ['fullsize', 'dialog.close']
        });
        _this._dialog.setContent(_this.editor);
        _this._dialog.setSize(_this.o.width, _this.o.height);
        _this._dialog.setHeader([
            _this.buttons.reset,
            _this.buttons.save,
            _this.buttons.saveas
        ]);
        _this.setHandlers();
        return _this;
    }
    ImageEditor_1 = ImageEditor;
    ImageEditor.prototype.className = function () {
        return 'ImageEditor';
    };
    ImageEditor.prototype.onTitleModeClick = function (e) {
        var self = this, title = e.target;
        var slide = title === null || title === void 0 ? void 0 : title.parentElement;
        if (!slide) {
            return;
        }
        (0, helpers_1.$$)(".".concat(jie, "__slider,.").concat(jie, "__area"), self.editor).forEach(function (elm) {
            return elm.classList.remove("".concat(jie, "_active"));
        });
        slide.classList.add("".concat(jie, "_active"));
        this.activeTab = (0, helpers_1.attr)(slide, '-area') || TABS.resize;
        var tab = self.editor.querySelector(".".concat(jie, "__area.").concat(jie, "__area_") + self.activeTab);
        if (tab) {
            tab.classList.add("".concat(jie, "_active"));
        }
        if (self.activeTab === TABS.crop) {
            self.showCrop();
        }
    };
    ImageEditor.prototype.onChangeSizeInput = function (e) {
        var self = this, input = e.target, _a = (0, helpers_1.refs)(this.editor), widthInput = _a.widthInput, heightInput = _a.heightInput, isWidth = (0, helpers_1.attr)(input, 'data-ref') === 'widthInput', x = parseInt(input.value, 10), minX = isWidth ? self.o.min_width : self.o.min_height, minY = !isWidth ? self.o.min_width : self.o.min_height;
        var y;
        if (x > minX) {
            (0, helpers_1.css)(self.image, isWidth ? 'width' : 'height', x);
            if (self.resizeUseRatio) {
                y = isWidth
                    ? Math.round(x / self.ratio)
                    : Math.round(x * self.ratio);
                if (y > minY) {
                    (0, helpers_1.css)(self.image, !isWidth ? 'width' : 'height', y);
                    if (isWidth) {
                        heightInput.value = y.toString();
                    }
                    else {
                        widthInput.value = y.toString();
                    }
                }
            }
        }
        this.j.e.fire(self.resizeHandler, 'updatesize');
    };
    ImageEditor.prototype.onResizeHandleMouseDown = function (e) {
        var self = this;
        self.target = e.target;
        e.preventDefault();
        e.stopImmediatePropagation();
        self.clicked = true;
        self.start_x = e.clientX;
        self.start_y = e.clientY;
        if (self.activeTab === TABS.crop) {
            self.top_x = (0, helpers_1.css)(self.cropHandler, 'left');
            self.top_y = (0, helpers_1.css)(self.cropHandler, 'top');
            self.width = self.cropHandler.offsetWidth;
            self.height = self.cropHandler.offsetHeight;
        }
        else {
            self.width = self.image.offsetWidth;
            self.height = self.image.offsetHeight;
        }
        self.j.e
            .on(this.j.ow, 'mousemove', this.onGlobalMouseMove)
            .one(this.j.ow, 'mouseup', this.onGlobalMouseUp);
    };
    ImageEditor.prototype.onGlobalMouseUp = function (e) {
        if (this.clicked) {
            this.clicked = false;
            e.stopImmediatePropagation();
            this.j.e.off(this.j.ow, 'mousemove', this.onGlobalMouseMove);
        }
    };
    ImageEditor.prototype.onGlobalMouseMove = function (e) {
        var self = this;
        if (!self.clicked) {
            return;
        }
        var _a = (0, helpers_1.refs)(this.editor), widthInput = _a.widthInput, heightInput = _a.heightInput;
        self.diff_x = e.clientX - self.start_x;
        self.diff_y = e.clientY - self.start_y;
        if ((self.activeTab === TABS.resize && self.resizeUseRatio) ||
            (self.activeTab === TABS.crop && self.cropUseRatio)) {
            if (self.diff_x) {
                self.new_w = self.width + self.diff_x;
                self.new_h = Math.round(self.new_w / self.ratio);
            }
            else {
                self.new_h = self.height + self.diff_y;
                self.new_w = Math.round(self.new_h * self.ratio);
            }
        }
        else {
            self.new_w = self.width + self.diff_x;
            self.new_h = self.height + self.diff_y;
        }
        if (self.activeTab === TABS.resize) {
            if (self.new_w > self.o.resizeMinWidth) {
                (0, helpers_1.css)(self.image, 'width', self.new_w + 'px');
                widthInput.value = self.new_w.toString();
            }
            if (self.new_h > self.o.resizeMinHeight) {
                (0, helpers_1.css)(self.image, 'height', self.new_h + 'px');
                heightInput.value = self.new_h.toString();
            }
            this.j.e.fire(self.resizeHandler, 'updatesize');
        }
        else {
            if (self.target !== self.cropHandler) {
                if (self.top_x + self.new_w > self.cropImage.offsetWidth) {
                    self.new_w = self.cropImage.offsetWidth - self.top_x;
                }
                if (self.top_y + self.new_h > self.cropImage.offsetHeight) {
                    self.new_h = self.cropImage.offsetHeight - self.top_y;
                }
                (0, helpers_1.css)(self.cropHandler, {
                    width: self.new_w,
                    height: self.new_h
                });
            }
            else {
                if (self.top_x + self.diff_x + self.cropHandler.offsetWidth >
                    self.cropImage.offsetWidth) {
                    self.diff_x =
                        self.cropImage.offsetWidth -
                            self.top_x -
                            self.cropHandler.offsetWidth;
                }
                (0, helpers_1.css)(self.cropHandler, 'left', self.top_x + self.diff_x);
                if (self.top_y + self.diff_y + self.cropHandler.offsetHeight >
                    self.cropImage.offsetHeight) {
                    self.diff_y =
                        self.cropImage.offsetHeight -
                            self.top_y -
                            self.cropHandler.offsetHeight;
                }
                (0, helpers_1.css)(self.cropHandler, 'top', self.top_y + self.diff_y);
            }
            this.j.e.fire(self.cropHandler, 'updatesize');
        }
    };
    Object.defineProperty(ImageEditor.prototype, "o", {
        get: function () {
            return this.options;
        },
        enumerable: false,
        configurable: true
    });
    ImageEditor.prototype.hide = function () {
        this._dialog.close();
    };
    ImageEditor.prototype.open = function (url, save) {
        var _this = this;
        return this.j.async.promise(function (resolve) {
            var timestamp = new Date().getTime();
            _this.image = _this.j.c.element('img');
            (0, helpers_1.$$)('img,.jodit-icon_loader', _this.resize_box).forEach(dom_1.Dom.safeRemove);
            (0, helpers_1.$$)('img,.jodit-icon_loader', _this.crop_box).forEach(dom_1.Dom.safeRemove);
            (0, helpers_1.css)(_this.cropHandler, 'background', 'transparent');
            _this.onSave = save;
            _this.resize_box.appendChild(_this.j.c.element('i', { class: 'jodit-icon_loader' }));
            _this.crop_box.appendChild(_this.j.c.element('i', { class: 'jodit-icon_loader' }));
            if (/\?/.test(url)) {
                url += '&_tst=' + timestamp;
            }
            else {
                url += '?_tst=' + timestamp;
            }
            _this.image.setAttribute('src', url);
            _this._dialog.open();
            var _a = (0, helpers_1.refs)(_this.editor), widthInput = _a.widthInput, heightInput = _a.heightInput;
            var onload = function () {
                if (_this.isDestructed) {
                    return;
                }
                _this.image.removeEventListener('load', onload);
                _this.naturalWidth = _this.image.naturalWidth;
                _this.naturalHeight = _this.image.naturalHeight;
                widthInput.value = _this.naturalWidth.toString();
                heightInput.value = _this.naturalHeight.toString();
                _this.ratio = _this.naturalWidth / _this.naturalHeight;
                _this.resize_box.appendChild(_this.image);
                _this.cropImage = _this.image.cloneNode(true);
                _this.crop_box.appendChild(_this.cropImage);
                dom_1.Dom.safeRemove.apply(null, (0, helpers_1.$$)('.jodit-icon_loader', _this.editor));
                if (_this.activeTab === TABS.crop) {
                    _this.showCrop();
                }
                _this.j.e.fire(_this.resizeHandler, 'updatesize');
                _this.j.e.fire(_this.cropHandler, 'updatesize');
                _this._dialog.setPosition();
                _this.j.e.fire('afterImageEditor');
                resolve(_this._dialog);
            };
            _this.image.addEventListener('load', onload);
            if (_this.image.complete) {
                onload();
            }
        });
    };
    ImageEditor.prototype.destruct = function () {
        if (this.isDestructed) {
            return;
        }
        if (this._dialog && !this._dialog.isInDestruct) {
            this._dialog.destruct();
        }
        dom_1.Dom.safeRemove(this.editor);
        if (this.j.e) {
            this.j.e
                .off(this.j.ow, 'mousemove', this.onGlobalMouseMove)
                .off(this.j.ow, 'mouseup', this.onGlobalMouseUp)
                .off(this.ow, ".".concat(jie))
                .off(".".concat(jie));
        }
        _super.prototype.destruct.call(this);
    };
    var ImageEditor_1;
    ImageEditor.calcValueByPercent = function (value, percent) {
        var percentStr = percent.toString();
        var valueNbr = parseFloat(value.toString());
        var match;
        match = /^[-+]?[0-9]+(px)?$/.exec(percentStr);
        if (match) {
            return parseInt(percentStr, 10);
        }
        match = /^([-+]?[0-9.]+)%$/.exec(percentStr);
        if (match) {
            return Math.round(valueNbr * (parseFloat(match[1]) / 100));
        }
        return valueNbr || 0;
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], ImageEditor.prototype, "onTitleModeClick", null);
    tslib_1.__decorate([
        (0, decorators_1.debounce)(),
        decorators_1.autobind
    ], ImageEditor.prototype, "onChangeSizeInput", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ImageEditor.prototype, "onResizeHandleMouseDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ImageEditor.prototype, "onGlobalMouseUp", null);
    tslib_1.__decorate([
        (0, decorators_1.throttle)(10)
    ], ImageEditor.prototype, "onGlobalMouseMove", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ImageEditor.prototype, "hide", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ImageEditor.prototype, "open", null);
    ImageEditor = ImageEditor_1 = tslib_1.__decorate([
        decorators_1.component
    ], ImageEditor);
    return ImageEditor;
}(component_1.ViewComponent));
exports.ImageEditor = ImageEditor;
function openImageEditor(href, name, path, source, onSuccess, onFailed) {
    var _this = this;
    return this.getInstance('ImageEditor', this.o).open(href, function (newname, box, success, failed) {
        return (0, helpers_1.call)(box.action === 'resize'
            ? _this.dataProvider.resize
            : _this.dataProvider.crop, path, source, name, newname, box.box)
            .then(function (ok) {
            if (ok) {
                success();
                if (onSuccess) {
                    onSuccess();
                }
            }
        })
            .catch(function (error) {
            failed(error);
            if (onFailed) {
                onFailed(error);
            }
        });
    });
}
exports.openImageEditor = openImageEditor;


/***/ }),

/***/ 9249:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_903900__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.form = void 0;
var ui_1 = __nested_webpack_require_903900__(2074);
var jie = 'jodit-image-editor';
var gi = ui_1.Icon.get.bind(ui_1.Icon);
var act = function (el, className) {
    if (className === void 0) { className = 'jodti-image-editor_active'; }
    return el ? className : '';
};
var form = function (editor, o) {
    var i = editor.i18n.bind(editor);
    var switcher = function (label, ref, active) {
        if (active === void 0) { active = true; }
        return "<div class=\"jodit-form__group\">\n\t\t\t<label>".concat(i(label), "</label>\n\n\t\t\t<label class='jodit-switcher'>\n\t\t\t\t<input ").concat(act(active, 'checked'), " data-ref=\"").concat(ref, "\" type=\"checkbox\"/>\n\t\t\t\t<span class=\"jodit-switcher__slider\"></span>\n\t\t\t</label>\n\t</div>");
    };
    return editor.create.fromHTML("<form class=\"".concat(jie, " jodit-properties\">\n\t\t<div class=\"jodit-grid jodit-grid_xs-column\">\n\t\t\t<div class=\"jodit_col-lg-3-4 jodit_col-sm-5-5\">\n\t\t\t").concat(o.resize
        ? "<div class=\"".concat(jie, "__area ").concat(jie, "__area_resize ").concat(jie, "_active\">\n\t\t\t\t\t\t\t<div data-ref=\"resizeBox\" class=\"").concat(jie, "__box\"></div>\n\t\t\t\t\t\t\t<div class=\"").concat(jie, "__resizer\">\n\t\t\t\t\t\t\t\t<i class=\"jodit_bottomright\"></i>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>")
        : '', "\n\t\t\t").concat(o.crop
        ? "<div class=\"".concat(jie, "__area ").concat(jie, "__area_crop ").concat(act(!o.resize), "\">\n\t\t\t\t\t\t\t<div data-ref=\"cropBox\" class=\"").concat(jie, "__box\">\n\t\t\t\t\t\t\t\t<div class=\"").concat(jie, "__croper\">\n\t\t\t\t\t\t\t\t\t<i class=\"jodit_bottomright\"></i>\n\t\t\t\t\t\t\t\t\t<i class=\"").concat(jie, "__sizes\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>")
        : '', "\n\t\t\t</div>\n\t\t\t<div class=\"jodit_col-lg-1-4 jodit_col-sm-5-5\">\n\t\t\t").concat(o.resize
        ? "<div data-area=\"resize\" class=\"".concat(jie, "__slider ").concat(jie, "_active\">\n\t\t\t\t\t\t\t<div class=\"").concat(jie, "__slider-title\">\n\t\t\t\t\t\t\t\t").concat(gi('resize'), "\n\t\t\t\t\t\t\t\t").concat(i('Resize'), "\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"").concat(jie, "__slider-content\">\n\t\t\t\t\t\t\t\t<div class=\"jodit-form__group\">\n\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t").concat(i('Width'), "\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<input type=\"number\" data-ref=\"widthInput\" class=\"jodit-input\"/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"jodit-form__group\">\n\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t").concat(i('Height'), "\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<input type=\"number\" data-ref=\"heightInput\" class=\"jodit-input\"/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t").concat(switcher('Keep Aspect Ratio', 'keepAspectRatioResize'), "\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>")
        : '', "\n\t\t\t").concat(o.crop
        ? "<div data-area=\"crop\" class=\"".concat(jie, "__slider ").concat(act(!o.resize), "'\">\n\t\t\t\t\t\t\t<div class=\"").concat(jie, "__slider-title\">\n\t\t\t\t\t\t\t\t").concat(gi('crop'), "\n\t\t\t\t\t\t\t\t").concat(i('Crop'), "\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"").concat(jie, "__slider-content\">\n\t\t\t\t\t\t\t\t").concat(switcher('Keep Aspect Ratio', 'keepAspectRatioCrop'), "\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>")
        : '', "\n\t\t\t</div>\n\t\t</div>\n\t</form>"));
};
exports.form = form;


/***/ }),

/***/ 87837:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_907781__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.PluginSystem = exports.UIMessages = exports.Uploader = exports.ToolbarCollection = exports.ToolbarEditorCollection = exports.Table = exports.StatusBar = exports.CommitStyle = exports.Select = exports.Snapshot = exports.History = exports.ImageEditor = exports.Helpers = exports.ViewWithToolbar = exports.View = exports.Icon = exports.ProgressBar = exports.UIBlock = exports.UICheckbox = exports.UITextArea = exports.UIInput = exports.UIForm = exports.UIList = exports.UIGroup = exports.UISeparator = exports.Popup = exports.UIButton = exports.UIElement = exports.Create = exports.Plugin = exports.LazyWalker = exports.Dom = exports.ContextMenu = exports.STATUSES = exports.ViewComponent = exports.Component = exports.Async = void 0;
var tslib_1 = __nested_webpack_require_907781__(20255);
tslib_1.__exportStar(__nested_webpack_require_907781__(55395), exports);
var async_1 = __nested_webpack_require_907781__(22630);
Object.defineProperty(exports, "Async", ({ enumerable: true, get: function () { return async_1.Async; } }));
tslib_1.__exportStar(__nested_webpack_require_907781__(30056), exports);
var component_1 = __nested_webpack_require_907781__(56562);
Object.defineProperty(exports, "Component", ({ enumerable: true, get: function () { return component_1.Component; } }));
Object.defineProperty(exports, "ViewComponent", ({ enumerable: true, get: function () { return component_1.ViewComponent; } }));
Object.defineProperty(exports, "STATUSES", ({ enumerable: true, get: function () { return component_1.STATUSES; } }));
var context_menu_1 = __nested_webpack_require_907781__(60403);
Object.defineProperty(exports, "ContextMenu", ({ enumerable: true, get: function () { return context_menu_1.ContextMenu; } }));
tslib_1.__exportStar(__nested_webpack_require_907781__(92080), exports);
var dom_1 = __nested_webpack_require_907781__(64968);
Object.defineProperty(exports, "Dom", ({ enumerable: true, get: function () { return dom_1.Dom; } }));
Object.defineProperty(exports, "LazyWalker", ({ enumerable: true, get: function () { return dom_1.LazyWalker; } }));
var plugin_1 = __nested_webpack_require_907781__(57549);
Object.defineProperty(exports, "Plugin", ({ enumerable: true, get: function () { return plugin_1.Plugin; } }));
var create_1 = __nested_webpack_require_907781__(42841);
Object.defineProperty(exports, "Create", ({ enumerable: true, get: function () { return create_1.Create; } }));
var ui_1 = __nested_webpack_require_907781__(2074);
Object.defineProperty(exports, "UIElement", ({ enumerable: true, get: function () { return ui_1.UIElement; } }));
Object.defineProperty(exports, "UIButton", ({ enumerable: true, get: function () { return ui_1.UIButton; } }));
Object.defineProperty(exports, "Popup", ({ enumerable: true, get: function () { return ui_1.Popup; } }));
Object.defineProperty(exports, "UISeparator", ({ enumerable: true, get: function () { return ui_1.UISeparator; } }));
Object.defineProperty(exports, "UIGroup", ({ enumerable: true, get: function () { return ui_1.UIGroup; } }));
Object.defineProperty(exports, "UIList", ({ enumerable: true, get: function () { return ui_1.UIList; } }));
Object.defineProperty(exports, "UIForm", ({ enumerable: true, get: function () { return ui_1.UIForm; } }));
Object.defineProperty(exports, "UIInput", ({ enumerable: true, get: function () { return ui_1.UIInput; } }));
Object.defineProperty(exports, "UITextArea", ({ enumerable: true, get: function () { return ui_1.UITextArea; } }));
Object.defineProperty(exports, "UICheckbox", ({ enumerable: true, get: function () { return ui_1.UICheckbox; } }));
Object.defineProperty(exports, "UIBlock", ({ enumerable: true, get: function () { return ui_1.UIBlock; } }));
Object.defineProperty(exports, "ProgressBar", ({ enumerable: true, get: function () { return ui_1.ProgressBar; } }));
Object.defineProperty(exports, "Icon", ({ enumerable: true, get: function () { return ui_1.Icon; } }));
var view_1 = __nested_webpack_require_907781__(75902);
Object.defineProperty(exports, "View", ({ enumerable: true, get: function () { return view_1.View; } }));
var view_with_toolbar_1 = __nested_webpack_require_907781__(43608);
Object.defineProperty(exports, "ViewWithToolbar", ({ enumerable: true, get: function () { return view_with_toolbar_1.ViewWithToolbar; } }));
tslib_1.__exportStar(__nested_webpack_require_907781__(63463), exports);
var Helpers = __nested_webpack_require_907781__(40332);
exports.Helpers = Helpers;
var image_editor_1 = __nested_webpack_require_907781__(35503);
Object.defineProperty(exports, "ImageEditor", ({ enumerable: true, get: function () { return image_editor_1.ImageEditor; } }));
var history_1 = __nested_webpack_require_907781__(15432);
Object.defineProperty(exports, "History", ({ enumerable: true, get: function () { return history_1.History; } }));
var snapshot_1 = __nested_webpack_require_907781__(31648);
Object.defineProperty(exports, "Snapshot", ({ enumerable: true, get: function () { return snapshot_1.Snapshot; } }));
var selection_1 = __nested_webpack_require_907781__(46325);
Object.defineProperty(exports, "Select", ({ enumerable: true, get: function () { return selection_1.Select; } }));
Object.defineProperty(exports, "CommitStyle", ({ enumerable: true, get: function () { return selection_1.CommitStyle; } }));
var status_bar_1 = __nested_webpack_require_907781__(38603);
Object.defineProperty(exports, "StatusBar", ({ enumerable: true, get: function () { return status_bar_1.StatusBar; } }));
var table_1 = __nested_webpack_require_907781__(25120);
Object.defineProperty(exports, "Table", ({ enumerable: true, get: function () { return table_1.Table; } }));
var editor_collection_1 = __nested_webpack_require_907781__(81698);
Object.defineProperty(exports, "ToolbarEditorCollection", ({ enumerable: true, get: function () { return editor_collection_1.ToolbarEditorCollection; } }));
var collection_1 = __nested_webpack_require_907781__(72719);
Object.defineProperty(exports, "ToolbarCollection", ({ enumerable: true, get: function () { return collection_1.ToolbarCollection; } }));
tslib_1.__exportStar(__nested_webpack_require_907781__(3890), exports);
var uploader_1 = __nested_webpack_require_907781__(50454);
Object.defineProperty(exports, "Uploader", ({ enumerable: true, get: function () { return uploader_1.Uploader; } }));
var messages_1 = __nested_webpack_require_907781__(71014);
Object.defineProperty(exports, "UIMessages", ({ enumerable: true, get: function () { return messages_1.UIMessages; } }));
var plugin_system_1 = __nested_webpack_require_907781__(44540);
Object.defineProperty(exports, "PluginSystem", ({ enumerable: true, get: function () { return plugin_system_1.PluginSystem; } }));


/***/ }),

/***/ 37762:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_914482__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIMessage = void 0;
var tslib_1 = __nested_webpack_require_914482__(20255);
var ui_1 = __nested_webpack_require_914482__(2074);
var component_1 = __nested_webpack_require_914482__(11441);
var UIMessage = (function (_super) {
    tslib_1.__extends(UIMessage, _super);
    function UIMessage(jodit, options) {
        var _this = _super.call(this, jodit) || this;
        _this.setMod('active', true);
        _this.setMod('variant', options.variant);
        _this.container.textContent = options.text;
        return _this;
    }
    UIMessage.prototype.className = function () {
        return 'UIMessage';
    };
    UIMessage = tslib_1.__decorate([
        component_1.component
    ], UIMessage);
    return UIMessage;
}(ui_1.UIElement));
exports.UIMessage = UIMessage;


/***/ }),

/***/ 71014:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_915623__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIMessages = void 0;
var tslib_1 = __nested_webpack_require_915623__(20255);
__nested_webpack_require_915623__(63421);
var css_1 = __nested_webpack_require_915623__(26911);
var group_1 = __nested_webpack_require_915623__(61479);
var component_1 = __nested_webpack_require_915623__(11441);
var watch_1 = __nested_webpack_require_915623__(46163);
var message_1 = __nested_webpack_require_915623__(37762);
var UIMessages = (function (_super) {
    tslib_1.__extends(UIMessages, _super);
    function UIMessages(jodit, __box, options) {
        if (options === void 0) { options = {
            defaultTimeout: 3000,
            defaultOffset: 5
        }; }
        var _this = _super.call(this, jodit) || this;
        _this.__box = __box;
        _this.options = options;
        _this.__messages = new Set();
        return _this;
    }
    UIMessages.prototype.className = function () {
        return 'UIMessages';
    };
    UIMessages.prototype.info = function (text, timeout) {
        this.__message(text, 'info', timeout);
    };
    UIMessages.prototype.success = function (text, timeout) {
        this.__message(text, 'success', timeout);
    };
    UIMessages.prototype.error = function (text, timeout) {
        this.__message(text, 'error', timeout);
    };
    UIMessages.prototype.message = function (text, variant, timeout) {
        this.__message(text, variant, timeout);
    };
    UIMessages.prototype.__message = function (text, variant, timeout) {
        if (variant === void 0) { variant = 'info'; }
        var key = text + ':' + variant;
        if (this.__messages.has(key)) {
            this.async.updateTimeout(key, timeout || this.options.defaultTimeout);
            return;
        }
        this.__box.appendChild(this.container);
        var msg = new message_1.UIMessage(this.j, { text: text, variant: variant });
        this.append(msg);
        this.__calcOffsets();
        this.__messages.add(key);
        var remove = this.__getRemoveCallback(msg, key);
        this.j.e.on(msg.container, 'pointerdown', remove);
        this.async.setTimeout(remove, {
            label: key,
            timeout: timeout || this.options.defaultTimeout
        });
    };
    UIMessages.prototype.__getRemoveCallback = function (msg, key) {
        var _this = this;
        var remove = function (e) {
            e && e.preventDefault();
            if (msg.isInDestruct) {
                return;
            }
            _this.async.clearTimeout(key);
            _this.j.e.off(msg.container, 'pointerdown', remove);
            _this.__messages.delete(key);
            msg.setMod('active', false);
            _this.async.setTimeout(function () {
                _this.remove(msg);
                msg.destruct();
                _this.__calcOffsets();
            }, 300);
        };
        return remove;
    };
    UIMessages.prototype.__calcOffsets = function () {
        var _this = this;
        var height = 5;
        this.elements.forEach(function (elm) {
            (0, css_1.css)(elm.container, 'bottom', height + 'px');
            height += elm.container.offsetHeight + _this.options.defaultOffset;
        });
    };
    tslib_1.__decorate([
        (0, watch_1.watch)(':errorMessage')
    ], UIMessages.prototype, "__message", null);
    UIMessages = tslib_1.__decorate([
        component_1.component
    ], UIMessages);
    return UIMessages;
}(group_1.UIGroup));
exports.UIMessages = UIMessages;


/***/ }),

/***/ 38603:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_919385__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.StatusBar = void 0;
var tslib_1 = __nested_webpack_require_919385__(20255);
__nested_webpack_require_919385__(32115);
var component_1 = __nested_webpack_require_919385__(56562);
var dom_1 = __nested_webpack_require_919385__(64968);
var traits_1 = __nested_webpack_require_919385__(59829);
var decorators_1 = __nested_webpack_require_919385__(43441);
var StatusBar = (function (_super) {
    tslib_1.__extends(StatusBar, _super);
    function StatusBar(jodit, target) {
        var _this = _super.call(this, jodit) || this;
        _this.target = target;
        _this.mods = {};
        _this.container = jodit.c.div('jodit-status-bar');
        target.appendChild(_this.container);
        _this.hide();
        return _this;
    }
    StatusBar.prototype.className = function () {
        return 'StatusBar';
    };
    StatusBar.prototype.hide = function () {
        this.container.classList.add('jodit_hidden');
    };
    StatusBar.prototype.show = function () {
        this.container.classList.remove('jodit_hidden');
    };
    Object.defineProperty(StatusBar.prototype, "isShown", {
        get: function () {
            return !this.container.classList.contains('jodit_hidden');
        },
        enumerable: false,
        configurable: true
    });
    StatusBar.prototype.getHeight = function () {
        var _a, _b;
        return (_b = (_a = this.container) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0;
    };
    StatusBar.prototype.findEmpty = function (inTheRight) {
        if (inTheRight === void 0) { inTheRight = false; }
        var items = this.getElms(inTheRight ? 'item-right' : 'item');
        for (var i = 0; i < items.length; i += 1) {
            if (!items[i].innerHTML.trim().length) {
                return items[i];
            }
        }
        return;
    };
    StatusBar.prototype.append = function (child, inTheRight) {
        var _a;
        if (inTheRight === void 0) { inTheRight = false; }
        var wrapper = this.findEmpty(inTheRight) ||
            this.j.c.div(this.getFullElName('item'));
        if (inTheRight) {
            wrapper.classList.add(this.getFullElName('item-right'));
        }
        wrapper.appendChild(child);
        (_a = this.container) === null || _a === void 0 ? void 0 : _a.appendChild(wrapper);
        if (this.j.o.statusbar) {
            this.show();
        }
        this.j.e.fire('resize');
    };
    StatusBar.prototype.destruct = function () {
        if (this.isInDestruct) {
            return;
        }
        this.setStatus(component_1.STATUSES.beforeDestruct);
        dom_1.Dom.safeRemove(this.container);
        _super.prototype.destruct.call(this);
    };
    StatusBar = tslib_1.__decorate([
        decorators_1.component,
        (0, decorators_1.derive)(traits_1.Mods, traits_1.Elms)
    ], StatusBar);
    return StatusBar;
}(component_1.ViewComponent));
exports.StatusBar = StatusBar;


/***/ }),

/***/ 25120:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_922652__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Table = void 0;
var tslib_1 = __nested_webpack_require_922652__(20255);
var consts = __nested_webpack_require_922652__(86893);
var dom_1 = __nested_webpack_require_922652__(64968);
var helpers_1 = __nested_webpack_require_922652__(40332);
var component_1 = __nested_webpack_require_922652__(56562);
var global_1 = __nested_webpack_require_922652__(17332);
var decorators_1 = __nested_webpack_require_922652__(43441);
var markedValue = new WeakMap();
var Table = (function (_super) {
    tslib_1.__extends(Table, _super);
    function Table() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.selected = new Set();
        return _this;
    }
    Table.prototype.className = function () {
        return 'Table';
    };
    Table.prototype.recalculateStyles = function () {
        var style = (0, global_1.getContainer)(this.j, Table, 'style', true);
        var selectors = [];
        this.selected.forEach(function (td) {
            var selector = (0, helpers_1.cssPath)(td);
            selector && selectors.push(selector);
        });
        style.innerHTML = selectors.length
            ? selectors.join(',') +
                "{".concat(this.jodit.options.table.selectionCellStyle, "}")
            : '';
    };
    Table.prototype.addSelection = function (td) {
        this.selected.add(td);
        this.recalculateStyles();
        var table = dom_1.Dom.closest(td, 'table', this.j.editor);
        if (table) {
            var cells = Table.selectedByTable.get(table) || new Set();
            cells.add(td);
            Table.selectedByTable.set(table, cells);
        }
    };
    Table.prototype.removeSelection = function (td) {
        this.selected.delete(td);
        this.recalculateStyles();
        var table = dom_1.Dom.closest(td, 'table', this.j.editor);
        if (table) {
            var cells = Table.selectedByTable.get(table);
            if (cells) {
                cells.delete(td);
                if (!cells.size) {
                    Table.selectedByTable.delete(table);
                }
            }
        }
    };
    Table.prototype.getAllSelectedCells = function () {
        return (0, helpers_1.toArray)(this.selected);
    };
    Table.getSelectedCellsByTable = function (table) {
        var cells = Table.selectedByTable.get(table);
        return cells ? (0, helpers_1.toArray)(cells) : [];
    };
    Table.prototype.destruct = function () {
        this.selected.clear();
        return _super.prototype.destruct.call(this);
    };
    Table.getRowsCount = function (table) {
        return table.rows.length;
    };
    Table.getColumnsCount = function (table) {
        var matrix = Table.formalMatrix(table);
        return matrix.reduce(function (max_count, cells) { return Math.max(max_count, cells.length); }, 0);
    };
    Table.formalMatrix = function (table, callback) {
        var matrix = [[]];
        var rows = (0, helpers_1.toArray)(table.rows);
        var setCell = function (cell, i) {
            if (matrix[i] === undefined) {
                matrix[i] = [];
            }
            var colSpan = cell.colSpan, rowSpan = cell.rowSpan;
            var column, row, currentColumn = 0;
            while (matrix[i][currentColumn]) {
                currentColumn += 1;
            }
            for (row = 0; row < rowSpan; row += 1) {
                for (column = 0; column < colSpan; column += 1) {
                    if (matrix[i + row] === undefined) {
                        matrix[i + row] = [];
                    }
                    if (callback &&
                        callback(cell, i + row, currentColumn + column, colSpan, rowSpan) === false) {
                        return false;
                    }
                    matrix[i + row][currentColumn + column] = cell;
                }
            }
        };
        for (var i = 0; i < rows.length; i += 1) {
            var cells = (0, helpers_1.toArray)(rows[i].cells);
            for (var j = 0; j < cells.length; j += 1) {
                if (setCell(cells[j], i) === false) {
                    return matrix;
                }
            }
        }
        return matrix;
    };
    Table.formalCoordinate = function (table, cell, max) {
        if (max === void 0) { max = false; }
        var i = 0, j = 0, width = 1, height = 1;
        Table.formalMatrix(table, function (td, ii, jj, colSpan, rowSpan) {
            if (cell === td) {
                i = ii;
                j = jj;
                width = colSpan || 1;
                height = rowSpan || 1;
                if (max) {
                    j += (colSpan || 1) - 1;
                    i += (rowSpan || 1) - 1;
                }
                return false;
            }
        });
        return [i, j, width, height];
    };
    Table.appendRow = function (table, line, after, create) {
        var _a;
        var row;
        if (!line) {
            var columnsCount = Table.getColumnsCount(table);
            row = create.element('tr');
            for (var j = 0; j < columnsCount; j += 1) {
                row.appendChild(create.element('td'));
            }
        }
        else {
            row = line.cloneNode(true);
            (0, helpers_1.$$)('td,th', line).forEach(function (cell) {
                var rowspan = (0, helpers_1.attr)(cell, 'rowspan');
                if (rowspan && parseInt(rowspan, 10) > 1) {
                    var newRowSpan = parseInt(rowspan, 10) - 1;
                    (0, helpers_1.attr)(cell, 'rowspan', newRowSpan > 1 ? newRowSpan : null);
                }
            });
            (0, helpers_1.$$)('td,th', row).forEach(function (cell) {
                cell.innerHTML = '';
            });
        }
        if (after && line && line.nextSibling) {
            line.parentNode &&
                line.parentNode.insertBefore(row, line.nextSibling);
        }
        else if (!after && line) {
            line.parentNode && line.parentNode.insertBefore(row, line);
        }
        else {
            (((_a = table.getElementsByTagName('tbody')) === null || _a === void 0 ? void 0 : _a[0]) || table).appendChild(row);
        }
    };
    Table.removeRow = function (table, rowIndex) {
        var box = Table.formalMatrix(table);
        var dec;
        var row = table.rows[rowIndex];
        box[rowIndex].forEach(function (cell, j) {
            dec = false;
            if (rowIndex - 1 >= 0 && box[rowIndex - 1][j] === cell) {
                dec = true;
            }
            else if (box[rowIndex + 1] && box[rowIndex + 1][j] === cell) {
                if (cell.parentNode === row && cell.parentNode.nextSibling) {
                    dec = true;
                    var nextCell = j + 1;
                    while (box[rowIndex + 1][nextCell] === cell) {
                        nextCell += 1;
                    }
                    var nextRow = dom_1.Dom.next(cell.parentNode, function (elm) { return dom_1.Dom.isTag(elm, 'tr'); }, table);
                    if (nextRow) {
                        if (box[rowIndex + 1][nextCell]) {
                            nextRow.insertBefore(cell, box[rowIndex + 1][nextCell]);
                        }
                        else {
                            nextRow.appendChild(cell);
                        }
                    }
                }
            }
            else {
                dom_1.Dom.safeRemove(cell);
            }
            if (dec &&
                (cell.parentNode === row || cell !== box[rowIndex][j - 1])) {
                var rowSpan = cell.rowSpan;
                (0, helpers_1.attr)(cell, 'rowspan', rowSpan - 1 > 1 ? rowSpan - 1 : null);
            }
        });
        dom_1.Dom.safeRemove(row);
    };
    Table.appendColumn = function (table, j, after, create) {
        var box = Table.formalMatrix(table);
        var i;
        if (j === undefined || j < 0) {
            j = Table.getColumnsCount(table) - 1;
        }
        for (i = 0; i < box.length; i += 1) {
            var cell = create.element('td');
            var td = box[i][j];
            var added = false;
            if (after) {
                if ((box[i] && td && j + 1 >= box[i].length) ||
                    td !== box[i][j + 1]) {
                    if (td.nextSibling) {
                        dom_1.Dom.before(td.nextSibling, cell);
                    }
                    else {
                        td.parentNode && td.parentNode.appendChild(cell);
                    }
                    added = true;
                }
            }
            else {
                if (j - 1 < 0 ||
                    (box[i][j] !== box[i][j - 1] && box[i][j].parentNode)) {
                    dom_1.Dom.before(box[i][j], cell);
                    added = true;
                }
            }
            if (!added) {
                (0, helpers_1.attr)(box[i][j], 'colspan', parseInt((0, helpers_1.attr)(box[i][j], 'colspan') || '1', 10) + 1);
            }
        }
    };
    Table.removeColumn = function (table, j) {
        var box = Table.formalMatrix(table);
        var dec;
        box.forEach(function (cells, i) {
            var td = cells[j];
            dec = false;
            if (j - 1 >= 0 && box[i][j - 1] === td) {
                dec = true;
            }
            else if (j + 1 < cells.length && box[i][j + 1] === td) {
                dec = true;
            }
            else {
                dom_1.Dom.safeRemove(td);
            }
            if (dec && (i - 1 < 0 || td !== box[i - 1][j])) {
                var colSpan = td.colSpan;
                (0, helpers_1.attr)(td, 'colspan', colSpan - 1 > 1 ? (colSpan - 1).toString() : null);
            }
        });
    };
    Table.getSelectedBound = function (table, selectedCells) {
        var bound = [
            [Infinity, Infinity],
            [0, 0]
        ];
        var box = Table.formalMatrix(table);
        var i, j, k;
        for (i = 0; i < box.length; i += 1) {
            for (j = 0; box[i] && j < box[i].length; j += 1) {
                if (selectedCells.includes(box[i][j])) {
                    bound[0][0] = Math.min(i, bound[0][0]);
                    bound[0][1] = Math.min(j, bound[0][1]);
                    bound[1][0] = Math.max(i, bound[1][0]);
                    bound[1][1] = Math.max(j, bound[1][1]);
                }
            }
        }
        for (i = bound[0][0]; i <= bound[1][0]; i += 1) {
            for (k = 1, j = bound[0][1]; j <= bound[1][1]; j += 1) {
                while (box[i] && box[i][j - k] && box[i][j] === box[i][j - k]) {
                    bound[0][1] = Math.min(j - k, bound[0][1]);
                    bound[1][1] = Math.max(j - k, bound[1][1]);
                    k += 1;
                }
                k = 1;
                while (box[i] && box[i][j + k] && box[i][j] === box[i][j + k]) {
                    bound[0][1] = Math.min(j + k, bound[0][1]);
                    bound[1][1] = Math.max(j + k, bound[1][1]);
                    k += 1;
                }
                k = 1;
                while (box[i - k] && box[i][j] === box[i - k][j]) {
                    bound[0][0] = Math.min(i - k, bound[0][0]);
                    bound[1][0] = Math.max(i - k, bound[1][0]);
                    k += 1;
                }
                k = 1;
                while (box[i + k] && box[i][j] === box[i + k][j]) {
                    bound[0][0] = Math.min(i + k, bound[0][0]);
                    bound[1][0] = Math.max(i + k, bound[1][0]);
                    k += 1;
                }
            }
        }
        return bound;
    };
    Table.normalizeTable = function (table) {
        var i, j, min, not;
        var __marked = [], box = Table.formalMatrix(table);
        for (j = 0; j < box[0].length; j += 1) {
            min = 1000000;
            not = false;
            for (i = 0; i < box.length; i += 1) {
                if (box[i][j] === undefined) {
                    continue;
                }
                if (box[i][j].colSpan < 2) {
                    not = true;
                    break;
                }
                min = Math.min(min, box[i][j].colSpan);
            }
            if (!not) {
                for (i = 0; i < box.length; i += 1) {
                    if (box[i][j] === undefined) {
                        continue;
                    }
                    Table.mark(box[i][j], 'colspan', box[i][j].colSpan - min + 1, __marked);
                }
            }
        }
        for (i = 0; i < box.length; i += 1) {
            min = 1000000;
            not = false;
            for (j = 0; j < box[i].length; j += 1) {
                if (box[i][j] === undefined) {
                    continue;
                }
                if (box[i][j].rowSpan < 2) {
                    not = true;
                    break;
                }
                min = Math.min(min, box[i][j].rowSpan);
            }
            if (!not) {
                for (j = 0; j < box[i].length; j += 1) {
                    if (box[i][j] === undefined) {
                        continue;
                    }
                    Table.mark(box[i][j], 'rowspan', box[i][j].rowSpan - min + 1, __marked);
                }
            }
        }
        for (i = 0; i < box.length; i += 1) {
            for (j = 0; j < box[i].length; j += 1) {
                if (box[i][j] === undefined) {
                    continue;
                }
                if (box[i][j].hasAttribute('rowspan') &&
                    box[i][j].rowSpan === 1) {
                    (0, helpers_1.attr)(box[i][j], 'rowspan', null);
                }
                if (box[i][j].hasAttribute('colspan') &&
                    box[i][j].colSpan === 1) {
                    (0, helpers_1.attr)(box[i][j], 'colspan', null);
                }
                if (box[i][j].hasAttribute('class') &&
                    !(0, helpers_1.attr)(box[i][j], 'class')) {
                    (0, helpers_1.attr)(box[i][j], 'class', null);
                }
            }
        }
        Table.unmark(__marked);
    };
    Table.mergeSelected = function (table, jodit) {
        var html = [], bound = Table.getSelectedBound(table, Table.getSelectedCellsByTable(table));
        var w = 0, first = null, first_j = 0, td, cols = 0, rows = 0;
        var alreadyMerged = new Set(), __marked = [];
        if (bound && (bound[0][0] - bound[1][0] || bound[0][1] - bound[1][1])) {
            Table.formalMatrix(table, function (cell, i, j, cs, rs) {
                if (i >= bound[0][0] && i <= bound[1][0]) {
                    if (j >= bound[0][1] && j <= bound[1][1]) {
                        td = cell;
                        if (alreadyMerged.has(td)) {
                            return;
                        }
                        alreadyMerged.add(td);
                        if (i === bound[0][0] && td.style.width) {
                            w += td.offsetWidth;
                        }
                        if ((0, helpers_1.trim)(cell.innerHTML.replace(/<br(\/)?>/g, '')) !== '') {
                            html.push(cell.innerHTML);
                        }
                        if (cs > 1) {
                            cols += cs - 1;
                        }
                        if (rs > 1) {
                            rows += rs - 1;
                        }
                        if (!first) {
                            first = cell;
                            first_j = j;
                        }
                        else {
                            Table.mark(td, 'remove', 1, __marked);
                            instance(jodit).removeSelection(td);
                        }
                    }
                }
            });
            cols = bound[1][1] - bound[0][1] + 1;
            rows = bound[1][0] - bound[0][0] + 1;
            if (first) {
                if (cols > 1) {
                    Table.mark(first, 'colspan', cols, __marked);
                }
                if (rows > 1) {
                    Table.mark(first, 'rowspan', rows, __marked);
                }
                if (w) {
                    Table.mark(first, 'width', ((w / table.offsetWidth) * 100).toFixed(consts.ACCURACY) + '%', __marked);
                    if (first_j) {
                        Table.setColumnWidthByDelta(table, first_j, 0, true, __marked);
                    }
                }
                first.innerHTML = html.join('<br/>');
                instance(jodit).addSelection(first);
                alreadyMerged.delete(first);
                Table.unmark(__marked);
                Table.normalizeTable(table);
                (0, helpers_1.toArray)(table.rows).forEach(function (tr, index) {
                    if (!tr.cells.length) {
                        dom_1.Dom.safeRemove(tr);
                    }
                });
            }
        }
    };
    Table.splitHorizontal = function (table, jodit) {
        var coord, td, tr, parent, after;
        var __marked = [];
        Table.getSelectedCellsByTable(table).forEach(function (cell) {
            td = jodit.createInside.element('td');
            td.appendChild(jodit.createInside.element('br'));
            tr = jodit.createInside.element('tr');
            coord = Table.formalCoordinate(table, cell);
            if (cell.rowSpan < 2) {
                Table.formalMatrix(table, function (tdElm, i, j) {
                    if (coord[0] === i &&
                        coord[1] !== j &&
                        tdElm !== cell) {
                        Table.mark(tdElm, 'rowspan', tdElm.rowSpan + 1, __marked);
                    }
                });
                dom_1.Dom.after(dom_1.Dom.closest(cell, 'tr', table), tr);
                tr.appendChild(td);
            }
            else {
                Table.mark(cell, 'rowspan', cell.rowSpan - 1, __marked);
                Table.formalMatrix(table, function (tdElm, i, j) {
                    if (i > coord[0] &&
                        i < coord[0] + cell.rowSpan &&
                        coord[1] > j &&
                        tdElm.parentNode
                            .rowIndex === i) {
                        after = tdElm;
                    }
                    if (coord[0] < i && tdElm === cell) {
                        parent = table.rows[i];
                    }
                });
                if (after) {
                    dom_1.Dom.after(after, td);
                }
                else {
                    parent.insertBefore(td, parent.firstChild);
                }
            }
            if (cell.colSpan > 1) {
                Table.mark(td, 'colspan', cell.colSpan, __marked);
            }
            Table.unmark(__marked);
            instance(jodit).removeSelection(cell);
        });
        this.normalizeTable(table);
    };
    Table.splitVertical = function (table, jodit) {
        var coord, td, percentage;
        var __marked = [];
        Table.getSelectedCellsByTable(table).forEach(function (cell) {
            coord = Table.formalCoordinate(table, cell);
            if (cell.colSpan < 2) {
                Table.formalMatrix(table, function (tdElm, i, j) {
                    if (coord[1] === j && coord[0] !== i && tdElm !== cell) {
                        Table.mark(tdElm, 'colspan', tdElm.colSpan + 1, __marked);
                    }
                });
            }
            else {
                Table.mark(cell, 'colspan', cell.colSpan - 1, __marked);
            }
            td = jodit.createInside.element('td');
            td.appendChild(jodit.createInside.element('br'));
            if (cell.rowSpan > 1) {
                Table.mark(td, 'rowspan', cell.rowSpan, __marked);
            }
            var oldWidth = cell.offsetWidth;
            dom_1.Dom.after(cell, td);
            percentage = oldWidth / table.offsetWidth / 2;
            Table.mark(cell, 'width', (percentage * 100).toFixed(consts.ACCURACY) + '%', __marked);
            Table.mark(td, 'width', (percentage * 100).toFixed(consts.ACCURACY) + '%', __marked);
            Table.unmark(__marked);
            instance(jodit).removeSelection(cell);
        });
        Table.normalizeTable(table);
    };
    Table.setColumnWidthByDelta = function (table, column, delta, noUnmark, marked) {
        var box = Table.formalMatrix(table);
        var clearWidthIndex = 0;
        for (var i = 0; i < box.length; i += 1) {
            var cell = box[i][column];
            if (cell.colSpan > 1 && box.length > 1) {
                continue;
            }
            var w = cell.offsetWidth;
            var percent = ((w + delta) / table.offsetWidth) * 100;
            Table.mark(cell, 'width', percent.toFixed(consts.ACCURACY) + '%', marked);
            clearWidthIndex = i;
            break;
        }
        for (var i = clearWidthIndex + 1; i < box.length; i += 1) {
            var cell = box[i][column];
            Table.mark(cell, 'width', null, marked);
        }
        if (!noUnmark) {
            Table.unmark(marked);
        }
    };
    Table.mark = function (cell, key, value, marked) {
        var _a;
        marked.push(cell);
        var dict = (_a = markedValue.get(cell)) !== null && _a !== void 0 ? _a : {};
        dict[key] = value === undefined ? 1 : value;
        markedValue.set(cell, dict);
    };
    Table.unmark = function (marked) {
        marked.forEach(function (cell) {
            var dict = markedValue.get(cell);
            if (dict) {
                Object.keys(dict).forEach(function (key) {
                    var value = dict[key];
                    switch (key) {
                        case 'remove':
                            dom_1.Dom.safeRemove(cell);
                            break;
                        case 'rowspan':
                            (0, helpers_1.attr)(cell, 'rowspan', (0, helpers_1.isNumber)(value) && value > 1 ? value : null);
                            break;
                        case 'colspan':
                            (0, helpers_1.attr)(cell, 'colspan', (0, helpers_1.isNumber)(value) && value > 1 ? value : null);
                            break;
                        case 'width':
                            if (value == null) {
                                cell.style.removeProperty('width');
                                if (!(0, helpers_1.attr)(cell, 'style')) {
                                    (0, helpers_1.attr)(cell, 'style', null);
                                }
                            }
                            else {
                                cell.style.width = value.toString();
                            }
                            break;
                    }
                    delete dict[key];
                });
                markedValue.delete(cell);
            }
        });
    };
    Table.selectedByTable = new WeakMap();
    tslib_1.__decorate([
        (0, decorators_1.debounce)()
    ], Table.prototype, "recalculateStyles", null);
    return Table;
}(component_1.ViewComponent));
exports.Table = Table;
var instance = function (j) { return j.getInstance('Table', j.o); };


/***/ }),

/***/ 48197:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_946225__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ToolbarButton = void 0;
var tslib_1 = __nested_webpack_require_946225__(20255);
__nested_webpack_require_946225__(53362);
var button_1 = __nested_webpack_require_946225__(96516);
var decorators_1 = __nested_webpack_require_946225__(43441);
var dom_1 = __nested_webpack_require_946225__(64968);
var popup_1 = __nested_webpack_require_946225__(12680);
var factory_1 = __nested_webpack_require_946225__(81438);
var helpers_1 = __nested_webpack_require_946225__(40332);
var icon_1 = __nested_webpack_require_946225__(77904);
var collection_1 = __nested_webpack_require_946225__(72719);
var statuses_1 = __nested_webpack_require_946225__(29411);
var get_control_type_1 = __nested_webpack_require_946225__(38546);
var ToolbarButton = (function (_super) {
    tslib_1.__extends(ToolbarButton, _super);
    function ToolbarButton(jodit, control, target) {
        if (target === void 0) { target = null; }
        var _this = _super.call(this, jodit) || this;
        _this.control = control;
        _this.target = target;
        _this.state = tslib_1.__assign(tslib_1.__assign({}, (0, button_1.UIButtonState)()), { theme: 'toolbar', currentValue: '', hasTrigger: false });
        _this.openedPopup = null;
        jodit.e.on([_this.button, _this.trigger], 'mousedown', function (e) {
            return e.preventDefault();
        });
        _this.onAction(_this.onClick);
        _this.hookStatus(statuses_1.STATUSES.ready, function () {
            _this.initFromControl();
            _this.initTooltip();
            _this.update();
        });
        if (control.mods) {
            Object.keys(control.mods).forEach(function (mod) {
                control.mods && _this.setMod(mod, control.mods[mod]);
            });
        }
        return _this;
    }
    ToolbarButton.prototype.className = function () {
        return 'ToolbarButton';
    };
    Object.defineProperty(ToolbarButton.prototype, "toolbar", {
        get: function () {
            return this.closest(collection_1.ToolbarCollection);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(ToolbarButton.prototype, "button", {
        get: function () {
            return this.container.querySelector("button.".concat(this.componentName, "__button"));
        },
        enumerable: false,
        configurable: true
    });
    ToolbarButton.prototype.update = function () {
        var _a = this, control = _a.control, state = _a.state, tc = this.closest(collection_1.ToolbarCollection);
        state.disabled = this.calculateDisabledStatus(tc);
        state.activated = this.calculateActivatedStatus(tc);
        if ((0, helpers_1.isFunction)(control.update) && tc) {
            control.update(this, tc.jodit);
        }
        _super.prototype.update.call(this);
    };
    ToolbarButton.prototype.calculateActivatedStatus = function (tc) {
        if ((0, helpers_1.isJoditObject)(this.j) && !this.j.editorIsActive) {
            return false;
        }
        if ((0, helpers_1.isFunction)(this.control.isActive) &&
            this.control.isActive(this.j, this.control, this)) {
            return true;
        }
        return Boolean(tc && tc.shouldBeActive(this));
    };
    ToolbarButton.prototype.calculateDisabledStatus = function (tc) {
        if (this.j.o.disabled) {
            return true;
        }
        if (this.j.o.readonly &&
            (!this.j.o.activeButtonsInReadOnly ||
                !this.j.o.activeButtonsInReadOnly.includes(this.control.name))) {
            return true;
        }
        if ((0, helpers_1.isFunction)(this.control.isDisabled) &&
            this.control.isDisabled(this.j, this.control, this)) {
            return true;
        }
        return Boolean(tc && tc.shouldBeDisabled(this));
    };
    ToolbarButton.prototype.onChangeActivated = function () {
        (0, helpers_1.attr)(this.button, 'aria-pressed', this.state.activated);
        _super.prototype.onChangeActivated.call(this);
    };
    ToolbarButton.prototype.onChangeText = function () {
        if ((0, helpers_1.isFunction)(this.control.template)) {
            this.text.innerHTML = this.control.template(this.j, this.control.name, this.j.i18n(this.state.text));
        }
        else {
            _super.prototype.onChangeText.call(this);
        }
        this.setMod('text-icons', Boolean(this.text.innerText.trim().length));
    };
    ToolbarButton.prototype.onChangeTabIndex = function () {
        (0, helpers_1.attr)(this.button, 'tabindex', this.state.tabIndex);
    };
    ToolbarButton.prototype.onChangeTooltip = function () {
        (0, helpers_1.attr)(this.button, 'aria-label', this.state.tooltip);
        _super.prototype.onChangeTooltip.call(this);
    };
    ToolbarButton.prototype.createContainer = function () {
        var cn = this.componentName;
        var container = this.j.c.span(cn), button = _super.prototype.createContainer.call(this);
        (0, helpers_1.attr)(container, 'role', 'listitem');
        button.classList.remove(cn);
        button.classList.add(cn + '__button');
        Object.defineProperty(button, 'component', {
            value: this
        });
        container.appendChild(button);
        this.trigger = this.j.c.fromHTML("<span role=\"trigger\" class=\"".concat(cn, "__trigger\">").concat(icon_1.Icon.get('chevron'), "</span>"));
        return container;
    };
    ToolbarButton.prototype.focus = function () {
        var _a;
        (_a = this.container.querySelector('button')) === null || _a === void 0 ? void 0 : _a.focus();
    };
    ToolbarButton.prototype.onChangeHasTrigger = function () {
        if (this.state.hasTrigger) {
            this.container.appendChild(this.trigger);
        }
        else {
            dom_1.Dom.safeRemove(this.trigger);
        }
        this.setMod('with-trigger', this.state.hasTrigger || null);
    };
    ToolbarButton.prototype.onChangeDisabled = function () {
        var dsb = this.state.disabled ? 'disabled' : null;
        (0, helpers_1.attr)(this.trigger, 'disabled', dsb);
        (0, helpers_1.attr)(this.button, 'disabled', dsb);
        (0, helpers_1.attr)(this.container, 'disabled', dsb);
    };
    ToolbarButton.prototype.initTooltip = function () {
        var _this = this;
        if (!this.j.o.textIcons &&
            this.j.o.showTooltip &&
            !this.j.o.useNativeTooltip) {
            this.j.e
                .off(this.container, 'mouseenter mouseleave')
                .on(this.container, 'mousemove', function (e) {
                if (!_this.state.tooltip) {
                    return;
                }
                !_this.state.disabled &&
                    _this.j.e.fire('delayShowTooltip', function () { return ({
                        x: e.clientX + 10,
                        y: e.clientY + 10
                    }); }, _this.state.tooltip);
            })
                .on(this.container, 'mouseleave', function () {
                _this.j.e.fire('hideTooltip');
            });
        }
    };
    ToolbarButton.prototype.initFromControl = function () {
        var _a;
        var _b = this, ctr = _b.control, state = _b.state;
        this.updateSize();
        state.name = ctr.name;
        var textIcons = this.j.o.textIcons;
        if (textIcons === true ||
            ((0, helpers_1.isFunction)(textIcons) && textIcons(ctr.name)) ||
            ctr.template) {
            state.icon = (0, button_1.UIButtonState)().icon;
            state.text = ctr.text || ctr.name;
        }
        else {
            if (ctr.iconURL) {
                state.icon.iconURL = ctr.iconURL;
            }
            else {
                var name = ctr.icon || ctr.name;
                state.icon.name =
                    icon_1.Icon.exists(name) || ((_a = this.j.o.extraIcons) === null || _a === void 0 ? void 0 : _a[name])
                        ? name
                        : '';
            }
            if (!ctr.iconURL && !state.icon.name) {
                state.text = ctr.text || ctr.name;
            }
        }
        if (ctr.tooltip) {
            state.tooltip = this.j.i18n((0, helpers_1.isFunction)(ctr.tooltip)
                ? ctr.tooltip(this.j, ctr, this)
                : ctr.tooltip);
        }
        state.hasTrigger = Boolean(ctr.list || (ctr.popup && ctr.exec));
    };
    ToolbarButton.prototype.onTriggerClick = function (e) {
        var _this = this;
        var _a, _b, _c;
        if (this.openedPopup) {
            this.closePopup();
            return;
        }
        var ctr = this.control;
        e.buffer = {
            actionTrigger: this
        };
        if (ctr.list) {
            return this.openControlList(ctr);
        }
        if ((0, helpers_1.isFunction)(ctr.popup)) {
            var popup = this.openPopup();
            popup.parentElement = this;
            if (this.j.e.fire((0, helpers_1.camelCase)("before-".concat(ctr.name, "-open-popup")), this.target, ctr, popup) !== false) {
                var target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
                var elm = ctr.popup(this.j, target, ctr, this.closePopup, this);
                if (elm) {
                    popup
                        .setContent((0, helpers_1.isString)(elm) ? this.j.c.fromHTML(elm) : elm)
                        .open(function () { return (0, helpers_1.position)(_this.container); }, false, this.j.o.allowTabNavigation
                        ? this.container
                        : undefined);
                }
            }
            this.j.e.fire((0, helpers_1.camelCase)("after-".concat(ctr.name, "-open-popup")), popup.container);
        }
    };
    ToolbarButton.prototype.openControlList = function (control) {
        var _this = this;
        var _a;
        var controls = (_a = this.jodit.options.controls) !== null && _a !== void 0 ? _a : {}, getControl = function (key) {
            return (0, get_control_type_1.findControlType)(key, controls);
        };
        var list = control.list, menu = this.openPopup(), toolbar = (0, factory_1.makeCollection)(this.j);
        menu.parentElement = this;
        toolbar.parentElement = menu;
        toolbar.mode = 'vertical';
        var isListItem = function (key) {
            return (0, helpers_1.isPlainObject)(key) && 'title' in key && 'value' in key;
        };
        var getButton = function (key, value) {
            if ((0, helpers_1.isString)(value) && getControl(value)) {
                return tslib_1.__assign({ name: value.toString() }, getControl(value));
            }
            if ((0, helpers_1.isString)(key) && getControl(key)) {
                return tslib_1.__assign(tslib_1.__assign({ name: key.toString() }, getControl(key)), (typeof value === 'object' ? value : {}));
            }
            if (isListItem(key)) {
                value = key.value;
                key = key.title;
            }
            var childTemplate = control.childTemplate;
            var childControl = {
                name: key.toString(),
                template: childTemplate &&
                    (function (j, k, v) { return childTemplate(j, k, v, _this); }),
                exec: control.childExec
                    ? function (view, current, options) {
                        var _a;
                        return (_a = control.childExec) === null || _a === void 0 ? void 0 : _a.call(control, view, current, tslib_1.__assign(tslib_1.__assign({}, options), { parentControl: control }));
                    }
                    : control.exec,
                data: control.data,
                command: control.command,
                isActive: control.isChildActive,
                isDisabled: control.isChildDisabled,
                mode: control.mode,
                args: tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read((control.args ? control.args : [])), false), [key, value], false)
            };
            if ((0, helpers_1.isString)(value)) {
                childControl.text = value;
            }
            return childControl;
        };
        toolbar.build((0, helpers_1.isArray)(list)
            ? list.map(getButton)
            : (0, helpers_1.keys)(list, false).map(function (key) { return getButton(key, list[key]); }), this.target);
        menu.setContent(toolbar.container).open(function () { return (0, helpers_1.position)(_this.container); }, false, this.j.o.allowTabNavigation ? this.container : undefined);
        this.state.activated = true;
    };
    ToolbarButton.prototype.onOutsideClick = function (e) {
        if (!this.openedPopup) {
            return;
        }
        if (!e ||
            !dom_1.Dom.isNode(e.target) ||
            (!dom_1.Dom.isOrContains(this.container, e.target) &&
                !this.openedPopup.isOwnClick(e))) {
            this.closePopup();
        }
    };
    ToolbarButton.prototype.openPopup = function () {
        this.closePopup();
        this.openedPopup = new popup_1.Popup(this.j, false);
        this.j.e
            .on(this.ow, 'mousedown touchstart', this.onOutsideClick)
            .on('escape closeAllPopups', this.onOutsideClick);
        return this.openedPopup;
    };
    ToolbarButton.prototype.closePopup = function () {
        if (this.openedPopup) {
            this.j.e
                .off(this.ow, 'mousedown touchstart', this.onOutsideClick)
                .off('escape closeAllPopups', this.onOutsideClick);
            this.state.activated = false;
            this.openedPopup.close();
            this.openedPopup.destruct();
            this.openedPopup = null;
        }
    };
    ToolbarButton.prototype.onClick = function (originalEvent) {
        var _a, _b, _c, _d, _e, _f, _g;
        var ctr = this.control;
        if ((0, helpers_1.isFunction)(ctr.exec)) {
            var target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
            var result = ctr.exec(this.j, target, {
                control: ctr,
                originalEvent: originalEvent,
                button: this
            });
            if (result !== false && result !== true) {
                (_e = (_d = this.j) === null || _d === void 0 ? void 0 : _d.e) === null || _e === void 0 ? void 0 : _e.fire('synchro');
                if (this.parentElement) {
                    this.parentElement.update();
                }
                (_g = (_f = this.j) === null || _f === void 0 ? void 0 : _f.e) === null || _g === void 0 ? void 0 : _g.fire('closeAllPopups afterExec');
            }
            if (result !== false) {
                return;
            }
        }
        if (ctr.list) {
            return this.openControlList(ctr);
        }
        if ((0, helpers_1.isFunction)(ctr.popup)) {
            return this.onTriggerClick(originalEvent);
        }
        if (ctr.command || ctr.name) {
            (0, helpers_1.call)((0, helpers_1.isJoditObject)(this.j)
                ? this.j.execCommand.bind(this.j)
                : this.j.od.execCommand.bind(this.j.od), ctr.command || ctr.name, false, ctr.args && ctr.args[0]);
            this.j.e.fire('closeAllPopups');
        }
    };
    ToolbarButton.prototype.destruct = function () {
        this.closePopup();
        return _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.tooltip')
    ], ToolbarButton.prototype, "onChangeTooltip", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.hasTrigger')
    ], ToolbarButton.prototype, "onChangeHasTrigger", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('trigger:click')
    ], ToolbarButton.prototype, "onTriggerClick", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ToolbarButton.prototype, "onOutsideClick", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], ToolbarButton.prototype, "closePopup", null);
    ToolbarButton = tslib_1.__decorate([
        decorators_1.component
    ], ToolbarButton);
    return ToolbarButton;
}(button_1.UIButton));
exports.ToolbarButton = ToolbarButton;


/***/ }),

/***/ 34375:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_962793__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ToolbarContent = void 0;
var tslib_1 = __nested_webpack_require_962793__(20255);
__nested_webpack_require_962793__(48904);
var button_1 = __nested_webpack_require_962793__(96516);
var dom_1 = __nested_webpack_require_962793__(64968);
var helpers_1 = __nested_webpack_require_962793__(40332);
var decorators_1 = __nested_webpack_require_962793__(43441);
var ToolbarContent = (function (_super) {
    tslib_1.__extends(ToolbarContent, _super);
    function ToolbarContent(jodit, control, target) {
        if (target === void 0) { target = null; }
        var _this = _super.call(this, jodit) || this;
        _this.control = control;
        _this.target = target;
        _this.container.classList.add("".concat(_this.componentName, "_").concat(_this.clearName(control.name)));
        (0, helpers_1.attr)(_this.container, 'role', 'content');
        return _this;
    }
    ToolbarContent.prototype.className = function () {
        return 'ToolbarContent';
    };
    ToolbarContent.prototype.update = function () {
        var content = this.control.getContent(this.j, this.control, this);
        if ((0, helpers_1.isString)(content) || content.parentNode !== this.container) {
            dom_1.Dom.detach(this.container);
            this.container.appendChild((0, helpers_1.isString)(content) ? this.j.create.fromHTML(content) : content);
        }
        _super.prototype.update.call(this);
    };
    ToolbarContent.prototype.createContainer = function () {
        return this.j.c.span(this.componentName);
    };
    ToolbarContent = tslib_1.__decorate([
        decorators_1.component
    ], ToolbarContent);
    return ToolbarContent;
}(button_1.UIButton));
exports.ToolbarContent = ToolbarContent;


/***/ }),

/***/ 3890:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_964830__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_964830__(20255);
tslib_1.__exportStar(__nested_webpack_require_964830__(48197), exports);
tslib_1.__exportStar(__nested_webpack_require_964830__(34375), exports);


/***/ }),

/***/ 72719:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_965391__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ToolbarCollection = void 0;
var tslib_1 = __nested_webpack_require_965391__(20255);
__nested_webpack_require_965391__(85796);
var helpers_1 = __nested_webpack_require_965391__(40332);
var ui_1 = __nested_webpack_require_965391__(2074);
var factory_1 = __nested_webpack_require_965391__(81438);
var decorators_1 = __nested_webpack_require_965391__(43441);
var ToolbarCollection = (function (_super) {
    tslib_1.__extends(ToolbarCollection, _super);
    function ToolbarCollection(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.__listenEvents = 'updatePlugins updateToolbar changeStack mousedown mouseup keydown change afterInit readonly afterResize ' +
            'selectionchange changeSelection focus afterSetMode touchstart focus blur';
        _this.update = _this.j.async.debounce(_this.__immediateUpdate, function () { return _this.j.defaultTimeout; });
        _this.__tooltip = null;
        _this.__initEvents();
        _this.__tooltip = ui_1.UITooltip.make(jodit);
        return _this;
    }
    ToolbarCollection.prototype.className = function () {
        return 'ToolbarCollection';
    };
    Object.defineProperty(ToolbarCollection.prototype, "firstButton", {
        get: function () {
            var _a = tslib_1.__read(this.buttons, 1), button = _a[0];
            return button || null;
        },
        enumerable: false,
        configurable: true
    });
    ToolbarCollection.prototype.makeButton = function (control, target) {
        if (target === void 0) { target = null; }
        return (0, factory_1.makeButton)(this.j, control, target);
    };
    ToolbarCollection.prototype.shouldBeActive = function (button) {
        return undefined;
    };
    ToolbarCollection.prototype.shouldBeDisabled = function (button) {
        return undefined;
    };
    ToolbarCollection.prototype.getTarget = function (button) {
        return button.target || null;
    };
    ToolbarCollection.prototype.__immediateUpdate = function () {
        if (this.isDestructed || this.j.isLocked) {
            return;
        }
        _super.prototype.update.call(this);
        this.j.e.fire('afterUpdateToolbar');
    };
    ToolbarCollection.prototype.setDirection = function (direction) {
        this.container.style.direction = direction;
        this.container.setAttribute('dir', direction);
    };
    ToolbarCollection.prototype.__initEvents = function () {
        this.j.e
            .on(this.__listenEvents, this.update)
            .on('afterSetMode focus', this.__immediateUpdate);
    };
    ToolbarCollection.prototype.hide = function () {
        this.container.remove();
    };
    ToolbarCollection.prototype.show = function () {
        this.appendTo(this.j.toolbarContainer);
    };
    ToolbarCollection.prototype.showInline = function (bound) {
        throw (0, helpers_1.error)('The method is not implemented for this class.');
    };
    ToolbarCollection.prototype.build = function (items, target) {
        if (target === void 0) { target = null; }
        var itemsWithGroupps = this.j.e.fire('beforeToolbarBuild', items);
        if (itemsWithGroupps) {
            items = itemsWithGroupps;
        }
        _super.prototype.build.call(this, items, target);
        return this;
    };
    ToolbarCollection.prototype.destruct = function () {
        var _a;
        if (this.isDestructed) {
            return;
        }
        (_a = this.__tooltip) === null || _a === void 0 ? void 0 : _a.destruct();
        this.j.e
            .off(this.__listenEvents, this.update)
            .off('afterSetMode focus', this.__immediateUpdate);
        _super.prototype.destruct.call(this);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], ToolbarCollection.prototype, "__immediateUpdate", null);
    ToolbarCollection = tslib_1.__decorate([
        decorators_1.component
    ], ToolbarCollection);
    return ToolbarCollection;
}(ui_1.UIList));
exports.ToolbarCollection = ToolbarCollection;


/***/ }),

/***/ 81698:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_969703__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ToolbarEditorCollection = void 0;
var tslib_1 = __nested_webpack_require_969703__(20255);
var collection_1 = __nested_webpack_require_969703__(72719);
var consts = __nested_webpack_require_969703__(86893);
var dom_1 = __nested_webpack_require_969703__(64968);
var helpers_1 = __nested_webpack_require_969703__(40332);
var decorators_1 = __nested_webpack_require_969703__(43441);
var ToolbarEditorCollection = (function (_super) {
    tslib_1.__extends(ToolbarEditorCollection, _super);
    function ToolbarEditorCollection(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.checkActiveStatus = function (cssObject, node) {
            var matches = 0, total = 0;
            Object.keys(cssObject).forEach(function (cssProperty) {
                var cssValue = cssObject[cssProperty];
                if ((0, helpers_1.isFunction)(cssValue)) {
                    if (cssValue(_this.j, (0, helpers_1.css)(node, cssProperty).toString())) {
                        matches += 1;
                    }
                }
                else {
                    if (cssValue.indexOf((0, helpers_1.css)(node, cssProperty).toString()) !== -1) {
                        matches += 1;
                    }
                }
                total += 1;
            });
            return total === matches;
        };
        _this.prependInvisibleInput(_this.container);
        return _this;
    }
    ToolbarEditorCollection.prototype.className = function () {
        return 'ToolbarEditorCollection';
    };
    ToolbarEditorCollection.prototype.shouldBeDisabled = function (button) {
        var disabled = _super.prototype.shouldBeDisabled.call(this, button);
        if (disabled !== undefined) {
            return disabled;
        }
        var mode = button.control.mode === undefined
            ? consts.MODE_WYSIWYG
            : button.control.mode;
        return !(mode === consts.MODE_SPLIT || mode === this.j.getRealMode());
    };
    ToolbarEditorCollection.prototype.shouldBeActive = function (button) {
        var _this = this;
        var active = _super.prototype.shouldBeActive.call(this, button);
        if (active !== undefined) {
            return active;
        }
        var element = this.j.selection ? this.j.s.current() : null;
        if (!element) {
            return false;
        }
        var elm;
        if (button.control.tags) {
            var tags_1 = button.control.tags;
            elm = element;
            if (dom_1.Dom.up(elm, function (node) {
                if (node &&
                    tags_1.indexOf(node.nodeName.toLowerCase()) !== -1) {
                    return true;
                }
            }, this.j.editor)) {
                return true;
            }
        }
        if (button.control.css) {
            var css_1 = button.control.css;
            elm = element;
            if (dom_1.Dom.up(elm, function (node) {
                if (node && !dom_1.Dom.isText(node)) {
                    return _this.checkActiveStatus(css_1, node);
                }
            }, this.j.editor)) {
                return true;
            }
        }
        return false;
    };
    ToolbarEditorCollection.prototype.getTarget = function (button) {
        return button.target || this.j.s.current() || null;
    };
    ToolbarEditorCollection.prototype.prependInvisibleInput = function (container) {
        var input = this.j.create.element('input', {
            tabIndex: -1,
            disabled: true,
            style: 'width: 0; height:0; position: absolute; visibility: hidden;'
        });
        dom_1.Dom.appendChildFirst(container, input);
    };
    ToolbarEditorCollection.prototype.showInline = function (bound) {
        this.jodit.e.fire('showInlineToolbar', bound);
    };
    ToolbarEditorCollection.prototype.hide = function () {
        this.jodit.e.fire('hidePopup');
        _super.prototype.hide.call(this);
        this.jodit.e.fire('toggleToolbar');
    };
    ToolbarEditorCollection.prototype.show = function () {
        _super.prototype.show.call(this);
        this.jodit.e.fire('toggleToolbar');
    };
    ToolbarEditorCollection = tslib_1.__decorate([
        decorators_1.component
    ], ToolbarEditorCollection);
    return ToolbarEditorCollection;
}(collection_1.ToolbarCollection));
exports.ToolbarEditorCollection = ToolbarEditorCollection;


/***/ }),

/***/ 81438:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_974407__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.makeButton = exports.makeCollection = void 0;
var helpers_1 = __nested_webpack_require_974407__(40332);
var collection_1 = __nested_webpack_require_974407__(72719);
var editor_collection_1 = __nested_webpack_require_974407__(81698);
var button_1 = __nested_webpack_require_974407__(48197);
var content_1 = __nested_webpack_require_974407__(34375);
function makeCollection(jodit, parentElement) {
    var collection = (0, helpers_1.isJoditObject)(jodit)
        ? new editor_collection_1.ToolbarEditorCollection(jodit)
        : new collection_1.ToolbarCollection(jodit);
    if (jodit.o.textIcons) {
        collection.container.classList.add('jodit_text_icons');
    }
    if (parentElement) {
        collection.parentElement = parentElement;
    }
    if (jodit.o.toolbarButtonSize) {
        collection.buttonSize = jodit.o.toolbarButtonSize;
    }
    return collection;
}
exports.makeCollection = makeCollection;
function makeButton(jodit, control, target) {
    if (target === void 0) { target = null; }
    if ((0, helpers_1.isFunction)(control.getContent)) {
        return new content_1.ToolbarContent(jodit, control, target);
    }
    var button = new button_1.ToolbarButton(jodit, control, target);
    button.state.tabIndex = jodit.o.allowTabNavigation ? 0 : -1;
    return button;
}
exports.makeButton = makeButton;


/***/ }),

/***/ 36262:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_976077__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_976077__(20255);
var config_1 = __nested_webpack_require_976077__(93166);
var is_array_1 = __nested_webpack_require_976077__(49781);
var is_jodit_object_1 = __nested_webpack_require_976077__(77892);
config_1.Config.prototype.enableDragAndDropFileToEditor = true;
config_1.Config.prototype.uploader = {
    url: '',
    insertImageAsBase64URI: false,
    imagesExtensions: ['jpg', 'png', 'jpeg', 'gif'],
    headers: null,
    data: null,
    filesVariableName: function (i) {
        return "files[".concat(i, "]");
    },
    withCredentials: false,
    pathVariableName: 'path',
    format: 'json',
    method: 'POST',
    prepareData: function (formData) {
        return formData;
    },
    isSuccess: function (resp) {
        return resp.success;
    },
    getMessage: function (resp) {
        return resp.data.messages !== undefined && (0, is_array_1.isArray)(resp.data.messages)
            ? resp.data.messages.join(' ')
            : '';
    },
    processFileName: function (key, file, name) {
        return [key, file, name];
    },
    process: function (resp) {
        return resp.data;
    },
    error: function (e) {
        this.j.e.fire('errorMessage', e.message, 'error', 4000);
    },
    getDisplayName: function (baseurl, filename) {
        return baseurl + filename;
    },
    defaultHandlerSuccess: function (resp) {
        var _this = this;
        var j = this.j || this;
        if (!(0, is_jodit_object_1.isJoditObject)(j)) {
            return;
        }
        if (resp.files && resp.files.length) {
            resp.files.forEach(function (filename, index) {
                var _a = tslib_1.__read(resp.isImages && resp.isImages[index]
                    ? ['img', 'src']
                    : ['a', 'href'], 2), tagName = _a[0], attr = _a[1];
                var elm = j.createInside.element(tagName);
                elm.setAttribute(attr, resp.baseurl + filename);
                if (tagName === 'a') {
                    elm.textContent = j.o.uploader.getDisplayName.call(_this, resp.baseurl, filename);
                }
                if (tagName === 'img') {
                    j.s.insertImage(elm, null, j.o.imageDefaultWidth);
                }
                else {
                    j.s.insertNode(elm);
                }
            });
        }
    },
    defaultHandlerError: function (e) {
        this.j.e.fire('errorMessage', e.message);
    },
    contentType: function (requestData) {
        return this.ow.FormData !== undefined &&
            typeof requestData !== 'string'
            ? false
            : 'application/x-www-form-urlencoded; charset=UTF-8';
    }
};


/***/ }),

/***/ 55778:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_979104__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.buildData = void 0;
var helpers_1 = __nested_webpack_require_979104__(40332);
function buildData(uploader, data) {
    if ((0, helpers_1.isFunction)(uploader.o.buildData)) {
        return uploader.o.buildData.call(uploader, data);
    }
    var FD = uploader.ow.FormData;
    if (FD !== undefined) {
        if (data instanceof FD) {
            return data;
        }
        if ((0, helpers_1.isString)(data)) {
            return data;
        }
        var newData_1 = new FD();
        Object.keys(data).forEach(function (key) {
            newData_1.append(key, data[key]);
        });
        return newData_1;
    }
    return data;
}
exports.buildData = buildData;


/***/ }),

/***/ 98099:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.dataURItoBlob = void 0;
function dataURItoBlob(dataURI) {
    var byteString = atob(dataURI.split(',')[1]), mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0], ab = new ArrayBuffer(byteString.length), ia = new Uint8Array(ab);
    for (var i = 0; i < byteString.length; i += 1) {
        ia[i] = byteString.charCodeAt(i);
    }
    return new Blob([ia], { type: mimeString });
}
exports.dataURItoBlob = dataURItoBlob;


/***/ }),

/***/ 41566:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_980991__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasItems = exports.hasFiles = void 0;
var tslib_1 = __nested_webpack_require_980991__(20255);
tslib_1.__exportStar(__nested_webpack_require_980991__(32937), exports);
tslib_1.__exportStar(__nested_webpack_require_980991__(98099), exports);
tslib_1.__exportStar(__nested_webpack_require_980991__(55778), exports);
tslib_1.__exportStar(__nested_webpack_require_980991__(30863), exports);
tslib_1.__exportStar(__nested_webpack_require_980991__(20704), exports);
function hasFiles(data) {
    return Boolean(data && data.files && data.files.length > 0);
}
exports.hasFiles = hasFiles;
function hasItems(data) {
    return Boolean(data && data.items && data.items.length > 0);
}
exports.hasItems = hasItems;


/***/ }),

/***/ 32937:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_982019__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.processOldBrowserDrag = void 0;
var constants_1 = __nested_webpack_require_982019__(86893);
var global_1 = __nested_webpack_require_982019__(17332);
var helpers_1 = __nested_webpack_require_982019__(40332);
var dom_1 = __nested_webpack_require_982019__(64968);
var index_1 = __nested_webpack_require_982019__(41566);
function processOldBrowserDrag(self, cData, handlerSuccess, handlerError, onFinally) {
    if (cData && (!cData.types.length || cData.types[0] !== constants_1.TEXT_PLAIN)) {
        var div_1 = self.j.c.div('', {
            tabindex: -1,
            style: 'left: -9999px; top: 0; width: 0; height: 100%;line-height: 140%; ' +
                'overflow: hidden; position: fixed; z-index: 2147483647; word-break: break-all;',
            contenteditable: true
        });
        (0, global_1.getContainer)(self.j, self.constructor).appendChild(div_1);
        var selection_1 = (0, helpers_1.isJoditObject)(self.j) ? self.j.s.save() : null, restore_1 = function () {
            return selection_1 && (0, helpers_1.isJoditObject)(self.j) && self.j.s.restore();
        };
        div_1.focus();
        self.j.async.setTimeout(function () {
            var child = div_1.firstChild;
            dom_1.Dom.safeRemove(div_1);
            if (child && child.hasAttribute('src')) {
                var src = (0, helpers_1.attr)(child, 'src') || '';
                restore_1();
                (0, index_1.sendFiles)(self, [(0, index_1.dataURItoBlob)(src)], handlerSuccess, handlerError).finally(onFinally);
            }
        }, self.j.defaultTimeout);
    }
}
exports.processOldBrowserDrag = processOldBrowserDrag;


/***/ }),

/***/ 20704:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_983992__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.sendFiles = void 0;
var tslib_1 = __nested_webpack_require_983992__(20255);
var helpers_1 = __nested_webpack_require_983992__(40332);
var send_1 = __nested_webpack_require_983992__(30863);
function sendFiles(uploader, files, handlerSuccess, handlerError, process) {
    if (!files) {
        return Promise.reject((0, helpers_1.error)('Need files'));
    }
    var o = uploader.o;
    var fileList = (0, helpers_1.toArray)(files);
    if (!fileList.length) {
        return Promise.reject((0, helpers_1.error)('Need files'));
    }
    var promises = [];
    if (o.insertImageAsBase64URI) {
        var file_1, i = void 0;
        var _loop_1 = function () {
            file_1 = fileList[i];
            if (file_1 && file_1.type) {
                var mime = file_1.type.match(/\/([a-z0-9]+)/i);
                var extension = mime[1] ? mime[1].toLowerCase() : '';
                if (o.imagesExtensions.includes(extension)) {
                    var reader_1 = new FileReader();
                    promises.push(uploader.j.async.promise(function (resolve, reject) {
                        reader_1.onerror = reject;
                        reader_1.onloadend = function () {
                            var resp = {
                                baseurl: '',
                                files: [reader_1.result],
                                isImages: [true]
                            };
                            var handler = (0, helpers_1.isFunction)(handlerSuccess)
                                ? handlerSuccess
                                : o.defaultHandlerSuccess;
                            handler.call(uploader, resp);
                            resolve(resp);
                        };
                        reader_1.readAsDataURL(file_1);
                    }));
                    fileList[i] = null;
                }
            }
        };
        for (i = 0; i < fileList.length; i += 1) {
            _loop_1();
        }
    }
    fileList = fileList.filter(function (a) { return a; });
    if (fileList.length) {
        var form_1 = new FormData();
        form_1.append(o.pathVariableName, uploader.path);
        form_1.append('source', uploader.source);
        var file = void 0;
        for (var i = 0; i < fileList.length; i += 1) {
            file = fileList[i];
            if (file) {
                var hasRealExtension = /\.[\d\w]+$/.test(file.name);
                var mime = file.type.match(/\/([a-z0-9]+)/i);
                var extension = mime && mime[1] ? mime[1].toLowerCase() : '';
                var newName = fileList[i].name ||
                    Math.random().toString().replace('.', '');
                if (!hasRealExtension && extension) {
                    var extForReg = extension;
                    if (['jpeg', 'jpg'].includes(extForReg)) {
                        extForReg = 'jpeg|jpg';
                    }
                    var reEnd = new RegExp('.(' + extForReg + ')$', 'i');
                    if (!reEnd.test(newName)) {
                        newName += '.' + extension;
                    }
                }
                var _a = tslib_1.__read(o.processFileName.call(uploader, o.filesVariableName(i), fileList[i], newName), 3), key = _a[0], iFile = _a[1], name = _a[2];
                form_1.append(key, iFile, name);
            }
        }
        if (process) {
            process(form_1);
        }
        if (o.data && (0, helpers_1.isPlainObject)(o.data)) {
            Object.keys(o.data).forEach(function (key) {
                form_1.append(key, o.data[key]);
            });
        }
        o.prepareData.call(uploader, form_1);
        promises.push((0, send_1.send)(uploader, form_1)
            .then(function (resp) {
            if (o.isSuccess.call(uploader, resp)) {
                var handler_1 = (0, helpers_1.isFunction)(handlerSuccess)
                    ? handlerSuccess
                    : o.defaultHandlerSuccess;
                handler_1.call(uploader, o.process.call(uploader, resp));
                return resp;
            }
            var handler = (0, helpers_1.isFunction)(handlerError)
                ? handlerError
                : o.defaultHandlerError;
            handler.call(uploader, (0, helpers_1.error)(o.getMessage.call(uploader, resp)));
            return resp;
        })
            .then(function () {
            uploader.j.events && uploader.j.e.fire('filesWereUploaded');
        }));
    }
    return Promise.all(promises);
}
exports.sendFiles = sendFiles;


/***/ }),

/***/ 30863:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_988897__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.send = exports.ajaxInstances = void 0;
var request_1 = __nested_webpack_require_988897__(30056);
var helpers_1 = __nested_webpack_require_988897__(40332);
var build_data_1 = __nested_webpack_require_988897__(55778);
exports.ajaxInstances = new WeakMap();
function send(uploader, data) {
    var requestData = (0, build_data_1.buildData)(uploader, data);
    var sendData = function (request) {
        var ajax = new request_1.Ajax({
            xhr: function () {
                var xhr = new XMLHttpRequest();
                if (uploader.j.ow.FormData !== undefined &&
                    xhr.upload) {
                    uploader.j.progressbar.show().progress(10);
                    xhr.upload.addEventListener('progress', function (evt) {
                        if (evt.lengthComputable) {
                            var percentComplete = evt.loaded / evt.total;
                            percentComplete *= 100;
                            console.log('progress', percentComplete);
                            uploader.j.progressbar
                                .show()
                                .progress(percentComplete);
                            if (percentComplete >= 100) {
                                uploader.j.progressbar.hide();
                            }
                        }
                    }, false);
                }
                else {
                    uploader.j.progressbar.hide();
                }
                return xhr;
            },
            method: uploader.o.method || 'POST',
            data: request,
            url: (0, helpers_1.isFunction)(uploader.o.url)
                ? uploader.o.url(request)
                : uploader.o.url,
            headers: uploader.o.headers,
            queryBuild: uploader.o.queryBuild,
            contentType: uploader.o.contentType.call(uploader, request),
            withCredentials: uploader.o.withCredentials || false
        });
        var instances = exports.ajaxInstances.get(uploader);
        if (!instances) {
            instances = new Set();
            exports.ajaxInstances.set(uploader, instances);
        }
        instances.add(ajax);
        uploader.j.e.one('beforeDestruct', ajax.destruct);
        return ajax
            .send()
            .then(function (resp) { return resp.json(); })
            .catch(function (error) {
            uploader.o.error.call(uploader, error);
        })
            .finally(function () {
            ajax.destruct();
            instances === null || instances === void 0 ? void 0 : instances.delete(ajax);
        });
    };
    if ((0, helpers_1.isPromise)(requestData)) {
        return requestData.then(sendData).catch(function (error) {
            uploader.o.error.call(uploader, error);
        });
    }
    return sendData(requestData);
}
exports.send = send;


/***/ }),

/***/ 50454:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_992117__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Uploader = void 0;
var tslib_1 = __nested_webpack_require_992117__(20255);
__nested_webpack_require_992117__(28654);
var config_1 = __nested_webpack_require_992117__(93166);
var constants_1 = __nested_webpack_require_992117__(86893);
var helpers_1 = __nested_webpack_require_992117__(40332);
var component_1 = __nested_webpack_require_992117__(56562);
var helpers_2 = __nested_webpack_require_992117__(41566);
__nested_webpack_require_992117__(36262);
var Uploader = (function (_super) {
    tslib_1.__extends(Uploader, _super);
    function Uploader(editor, options) {
        var _this = _super.call(this, editor) || this;
        _this.path = '';
        _this.source = 'default';
        _this.options = (0, helpers_1.ConfigProto)(options || {}, (0, helpers_1.ConfigProto)(config_1.Config.defaultOptions.uploader, (0, helpers_1.isJoditObject)(editor) ? editor.o.uploader : {}));
        return _this;
    }
    Object.defineProperty(Uploader.prototype, "j", {
        get: function () {
            return this.jodit;
        },
        enumerable: false,
        configurable: true
    });
    Uploader.prototype.className = function () {
        return 'Uploader';
    };
    Object.defineProperty(Uploader.prototype, "o", {
        get: function () {
            return this.options;
        },
        enumerable: false,
        configurable: true
    });
    Uploader.prototype.setPath = function (path) {
        this.path = path;
        return this;
    };
    Uploader.prototype.setSource = function (source) {
        this.source = source;
        return this;
    };
    Uploader.prototype.bind = function (form, handlerSuccess, handlerError) {
        var onFinally = function () {
            form.classList.remove('jodit_drag_hover');
        };
        var self = this, onPaste = function (e) {
            var i, file, extension;
            var cData = e.clipboardData;
            var process = function (formdata) {
                if (file) {
                    formdata.append('extension', extension);
                    formdata.append('mimetype', file.type);
                }
            };
            if (!constants_1.IS_IE && (0, helpers_2.hasFiles)(cData)) {
                (0, helpers_2.sendFiles)(self, cData.files, handlerSuccess, handlerError).finally(onFinally);
                return false;
            }
            if (constants_1.IS_IE && !false) {
                return (0, helpers_2.processOldBrowserDrag)(self, cData, handlerSuccess, handlerError, onFinally);
            }
            if ((0, helpers_2.hasItems)(cData)) {
                var items = cData.items;
                for (i = 0; i < items.length; i += 1) {
                    if (items[i].kind === 'file' &&
                        items[i].type === 'image/png') {
                        file = items[i].getAsFile();
                        if (file) {
                            var mime = file.type.match(/\/([a-z0-9]+)/i);
                            extension = mime[1]
                                ? mime[1].toLowerCase()
                                : '';
                            (0, helpers_2.sendFiles)(self, [file], handlerSuccess, handlerError, process).finally(onFinally);
                        }
                        e.preventDefault();
                        break;
                    }
                }
            }
        };
        if (self.j && self.j.editor !== form) {
            self.j.e.on(form, 'paste', onPaste);
        }
        else {
            self.j.e.on('beforePaste', onPaste);
        }
        this.attachEvents(form, handlerSuccess, handlerError, onFinally);
    };
    Uploader.prototype.attachEvents = function (form, handlerSuccess, handlerError, onFinally) {
        var self = this;
        self.j.e
            .on(form, 'dragend dragover dragenter dragleave drop', function (e) {
            e.preventDefault();
        })
            .on(form, 'dragover', function (event) {
            if ((0, helpers_2.hasFiles)(event.dataTransfer) ||
                (0, helpers_2.hasItems)(event.dataTransfer)) {
                form.classList.add('jodit_drag_hover');
                event.preventDefault();
            }
        })
            .on(form, 'dragend dragleave', function (event) {
            form.classList.remove('jodit_drag_hover');
            if ((0, helpers_2.hasFiles)(event.dataTransfer)) {
                event.preventDefault();
            }
        })
            .on(form, 'drop', function (event) {
            form.classList.remove('jodit_drag_hover');
            if ((0, helpers_2.hasFiles)(event.dataTransfer)) {
                event.preventDefault();
                event.stopImmediatePropagation();
                (0, helpers_2.sendFiles)(self, event.dataTransfer.files, handlerSuccess, handlerError).finally(onFinally);
            }
        });
        var inputFile = form.querySelector('input[type=file]');
        if (inputFile) {
            self.j.e.on(inputFile, 'change', function () {
                (0, helpers_2.sendFiles)(self, inputFile.files, handlerSuccess, handlerError)
                    .then(function () {
                    inputFile.value = '';
                    if (!/safari/i.test(navigator.userAgent)) {
                        inputFile.type = '';
                        inputFile.type = 'file';
                    }
                })
                    .finally(onFinally);
            });
        }
    };
    Uploader.prototype.uploadRemoteImage = function (url, handlerSuccess, handlerError) {
        var uploader = this, o = uploader.o;
        var handlerE = (0, helpers_1.isFunction)(handlerError)
            ? handlerError
            : o.defaultHandlerError;
        (0, helpers_2.send)(uploader, {
            action: 'fileUploadRemote',
            url: url
        })
            .then(function (resp) {
            if (o.isSuccess.call(uploader, resp)) {
                var handler = (0, helpers_1.isFunction)(handlerSuccess)
                    ? handlerSuccess
                    : o.defaultHandlerSuccess;
                handler.call(uploader, o.process.call(uploader, resp));
                return;
            }
            handlerE.call(uploader, (0, helpers_1.error)(o.getMessage.call(uploader, resp)));
        })
            .catch(function (e) { return handlerE.call(uploader, e); });
    };
    Uploader.prototype.destruct = function () {
        this.setStatus(component_1.STATUSES.beforeDestruct);
        var instances = helpers_2.ajaxInstances.get(this);
        if (instances) {
            instances.forEach(function (ajax) {
                try {
                    ajax.destruct();
                }
                catch (_a) { }
            });
            instances.clear();
        }
        _super.prototype.destruct.call(this);
    };
    return Uploader;
}(component_1.ViewComponent));
exports.Uploader = Uploader;


/***/ }),

/***/ 75243:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_999317__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ColorPickerWidget = void 0;
__nested_webpack_require_999317__(60819);
var helpers_1 = __nested_webpack_require_999317__(40332);
var ui_1 = __nested_webpack_require_999317__(2074);
var dom_1 = __nested_webpack_require_999317__(64968);
ui_1.Icon.set('palette', __nested_webpack_require_999317__(95331));
var ColorPickerWidget = function (editor, callback, coldColor) {
    var cn = 'jodit-color-picker', valueHex = (0, helpers_1.normalizeColor)(coldColor), form = editor.c.div(cn), iconPalette = editor.o.textIcons
        ? "<span>".concat(editor.i18n('palette'), "</span>")
        : ui_1.Icon.get('palette'), eachColor = function (colors) {
        var stack = [];
        if ((0, helpers_1.isPlainObject)(colors)) {
            Object.keys(colors).forEach(function (key) {
                stack.push("<div class=\"".concat(cn, "__group ").concat(cn, "__group-").concat(key, "\">"));
                stack.push(eachColor(colors[key]));
                stack.push('</div>');
            });
        }
        else if ((0, helpers_1.isArray)(colors)) {
            colors.forEach(function (color) {
                stack.push("<span class='".concat(cn, "__color-item ").concat(valueHex === color
                    ? cn + '__color-item_active_true'
                    : '', "' title=\"").concat(color, "\" style=\"background-color:").concat(color, "\" data-color=\"").concat(color, "\"></span>"));
            });
        }
        return stack.join('');
    };
    form.appendChild(editor.c.fromHTML("<div class=\"".concat(cn, "__groups\">").concat(eachColor(editor.o.colors), "</div>")));
    form.appendChild(editor.c.fromHTML("<div data-ref=\"extra\" class=\"".concat(cn, "__extra\"></div>")));
    var extra = (0, helpers_1.refs)(form).extra;
    if (editor.o.showBrowserColorPicker && (0, helpers_1.hasBrowserColorPicker)()) {
        extra.appendChild(editor.c.fromHTML("<div class=\"".concat(cn, "__native\">").concat(iconPalette, "<input type=\"color\" value=\"#ffffff\"/></div>")));
        editor.e.on(form, 'change', function (e) {
            e.stopPropagation();
            var target = e.target;
            if (!target || !target.tagName || !dom_1.Dom.isTag(target, 'input')) {
                return;
            }
            var color = target.value || '';
            if ((0, helpers_1.isFunction)(callback)) {
                callback(color);
            }
            e.preventDefault();
        });
    }
    editor.e.on(form, 'mousedown touchend', function (e) {
        e.stopPropagation();
        e.preventDefault();
        var target = e.target;
        if ((!target ||
            !target.tagName ||
            dom_1.Dom.isTag(target, 'svg') ||
            dom_1.Dom.isTag(target, 'path')) &&
            target.parentNode) {
            target = dom_1.Dom.closest(target.parentNode, 'span', editor.editor);
        }
        if (!dom_1.Dom.isTag(target, 'span') ||
            !target.classList.contains(cn + '__color-item')) {
            return;
        }
        var color = (0, helpers_1.attr)(target, '-color') || '';
        if (callback && (0, helpers_1.isFunction)(callback)) {
            callback(color);
        }
    });
    editor.e.fire('afterGenerateColorPicker', form, extra, callback, valueHex);
    return form;
};
exports.ColorPickerWidget = ColorPickerWidget;


/***/ }),

/***/ 83029:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1002970__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.FileSelectorWidget = void 0;
var helpers_1 = __nested_webpack_require_1002970__(40332);
var dom_1 = __nested_webpack_require_1002970__(64968);
var ui_1 = __nested_webpack_require_1002970__(2074);
var tabs_1 = __nested_webpack_require_1002970__(60929);
var FileSelectorWidget = function (editor, callbacks, elm, close, isImage) {
    if (isImage === void 0) { isImage = true; }
    var currentImage;
    var tabs = [];
    if (callbacks.upload &&
        editor.o.uploader &&
        (editor.o.uploader.url || editor.o.uploader.insertImageAsBase64URI)) {
        var dragBox = editor.c.fromHTML('<div class="jodit-drag-and-drop__file-box">' +
            "<strong>".concat(editor.i18n(isImage ? 'Drop image' : 'Drop file'), "</strong>") +
            "<span><br>".concat(editor.i18n('or click'), "</span>") +
            "<input type=\"file\" accept=\"".concat(isImage ? 'image/*' : '*', "\" tabindex=\"-1\" dir=\"auto\" multiple=\"\"/>") +
            '</div>');
        editor.uploader.bind(dragBox, function (resp) {
            var handler = (0, helpers_1.isFunction)(callbacks.upload)
                ? callbacks.upload
                : editor.o.uploader.defaultHandlerSuccess;
            if ((0, helpers_1.isFunction)(handler)) {
                handler.call(editor, resp);
            }
            editor.e.fire('closeAllPopups');
        }, function (error) {
            editor.e.fire('errorMessage', error.message);
            editor.e.fire('closeAllPopups');
        });
        tabs.push({
            icon: 'upload',
            name: 'Upload',
            content: dragBox
        });
    }
    if (callbacks.filebrowser) {
        if (editor.o.filebrowser.ajax.url || editor.o.filebrowser.items.url) {
            tabs.push({
                icon: 'folder',
                name: 'Browse',
                content: function () {
                    close && close();
                    if (callbacks.filebrowser) {
                        editor.filebrowser.open(callbacks.filebrowser, isImage);
                    }
                }
            });
        }
    }
    if (callbacks.url) {
        var button = new ui_1.UIButton(editor, {
            type: 'submit',
            variant: 'primary',
            text: 'Insert'
        }), form = new ui_1.UIForm(editor, [
            new ui_1.UIInput(editor, {
                required: true,
                label: 'URL',
                name: 'url',
                type: 'text',
                placeholder: 'https://'
            }),
            new ui_1.UIInput(editor, {
                name: 'text',
                label: 'Alternative text'
            }),
            new ui_1.UIBlock(editor, [button])
        ]);
        currentImage = null;
        if (elm &&
            !dom_1.Dom.isText(elm) &&
            (dom_1.Dom.isTag(elm, 'img') || (0, helpers_1.$$)('img', elm).length)) {
            currentImage = elm.tagName === 'IMG' ? elm : (0, helpers_1.$$)('img', elm)[0];
            (0, helpers_1.val)(form.container, 'input[name=url]', (0, helpers_1.attr)(currentImage, 'src'));
            (0, helpers_1.val)(form.container, 'input[name=text]', (0, helpers_1.attr)(currentImage, 'alt'));
            button.state.text = 'Update';
        }
        if (elm && dom_1.Dom.isTag(elm, 'a')) {
            (0, helpers_1.val)(form.container, 'input[name=url]', (0, helpers_1.attr)(elm, 'href'));
            (0, helpers_1.val)(form.container, 'input[name=text]', (0, helpers_1.attr)(elm, 'title'));
            button.state.text = 'Update';
        }
        form.onSubmit(function (data) {
            if ((0, helpers_1.isFunction)(callbacks.url)) {
                callbacks.url.call(editor, data.url, data.text);
            }
        });
        tabs.push({
            icon: 'link',
            name: 'URL',
            content: form.container
        });
    }
    return (0, tabs_1.TabsWidget)(editor, tabs);
};
exports.FileSelectorWidget = FileSelectorWidget;


/***/ }),

/***/ 718:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1007266__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1007266__(20255);
tslib_1.__exportStar(__nested_webpack_require_1007266__(75243), exports);
tslib_1.__exportStar(__nested_webpack_require_1007266__(60929), exports);
tslib_1.__exportStar(__nested_webpack_require_1007266__(83029), exports);


/***/ }),

/***/ 60929:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1007886__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TabsWidget = void 0;
__nested_webpack_require_1007886__(96410);
var helpers_1 = __nested_webpack_require_1007886__(40332);
var is_function_1 = __nested_webpack_require_1007886__(42096);
var ui_1 = __nested_webpack_require_1007886__(2074);
var component_1 = __nested_webpack_require_1007886__(56562);
var dom_1 = __nested_webpack_require_1007886__(24263);
var TabsWidget = function (jodit, tabs, state) {
    var box = jodit.c.div('jodit-tabs'), tabBox = jodit.c.div('jodit-tabs__wrapper'), buttons = jodit.c.div('jodit-tabs__buttons'), nameToTab = {}, buttonList = [];
    var firstTab = '', tabCount = 0;
    box.appendChild(buttons);
    box.appendChild(tabBox);
    var setActive = function (tab) {
        if (!nameToTab[tab]) {
            return;
        }
        buttonList.forEach(function (b) {
            b.state.activated = false;
        });
        (0, helpers_1.$$)('.jodit-tab', tabBox).forEach(function (a) {
            a.classList.remove('jodit-tab_active');
        });
        nameToTab[tab].button.state.activated = true;
        nameToTab[tab].tab.classList.add('jodit-tab_active');
    };
    tabs.forEach(function (_a) {
        var icon = _a.icon, name = _a.name, content = _a.content;
        var tab = jodit.c.div('jodit-tab'), button = (0, ui_1.Button)(jodit, icon || name, name);
        jodit.e.on(button.container, 'mousedown', function (e) {
            return e.preventDefault();
        });
        if (!firstTab) {
            firstTab = name;
        }
        buttons.appendChild(button.container);
        buttonList.push(button);
        button.container.classList.add('jodit-tabs__button', 'jodit-tabs__button_columns_' + tabs.length);
        if (!(0, is_function_1.isFunction)(content)) {
            tab.appendChild(component_1.Component.isInstanceOf(content, ui_1.UIElement)
                ? content.container
                : content);
        }
        else {
            tab.appendChild(jodit.c.div('jodit-tab_empty'));
        }
        tabBox.appendChild(tab);
        button.onAction(function () {
            setActive(name);
            if ((0, is_function_1.isFunction)(content) && !dom_1.Dom.isElement(content)) {
                content.call(jodit);
            }
            if (state) {
                state.__activeTab = name;
            }
            return false;
        });
        nameToTab[name] = {
            button: button,
            tab: tab
        };
        tabCount += 1;
    });
    if (!tabCount) {
        return box;
    }
    (0, helpers_1.$$)('a', buttons).forEach(function (a) {
        a.style.width = (100 / tabCount).toFixed(10) + '%';
    });
    var tab = !state || !state.__activeTab || !nameToTab[state.__activeTab]
        ? firstTab
        : state.__activeTab;
    setActive(tab);
    if (state) {
        var __activeTab_1 = state.__activeTab;
        Object.defineProperty(state, '__activeTab', {
            configurable: true,
            enumerable: false,
            get: function () {
                return __activeTab_1;
            },
            set: function (value) {
                __activeTab_1 = value;
                setActive(value);
            }
        });
    }
    return box;
};
exports.TabsWidget = TabsWidget;


/***/ }),

/***/ 55692:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1011442__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
__nested_webpack_require_1011442__(33126);
var config_1 = __nested_webpack_require_1011442__(93166);
var helpers_1 = __nested_webpack_require_1011442__(40332);
var constants = __nested_webpack_require_1011442__(86893);
var global_1 = __nested_webpack_require_1011442__(17332);
var icon_1 = __nested_webpack_require_1011442__(77904);
config_1.Config.prototype.controls.about = {
    exec: function (editor) {
        var dialog = editor.dlg(), i = editor.i18n.bind(editor);
        dialog
            .setMod('theme', editor.o.theme)
            .setHeader(i('About Jodit'))
            .setContent("<div class=\"jodit-about\">\n\t\t\t\t\t<div>".concat(i('Jodit Editor'), " v.").concat(editor.getVersion(), "</div>\n\t\t\t\t\t<div>").concat(i('License: %s', !(0, helpers_1.isLicense)(editor.o.license)
            ? 'MIT'
            : (0, helpers_1.normalizeLicense)(editor.o.license)), "</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<a href=\"").concat("https://xdsoft.net/jodit/", "\" target=\"_blank\">").concat("https://xdsoft.net/jodit/", "</a>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<a href=\"https://xdsoft.net/jodit/docs/\" target=\"_blank\">").concat(i("Jodit User's Guide"), "</a>\n\t\t\t\t\t\t").concat(i('contains detailed help for using'), "\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>").concat(i('Copyright © XDSoft.net - Chupurnov Valeriy. All rights reserved.'), "</div>\n\t\t\t\t</div>"));
        (0, helpers_1.css)(dialog.dialog, {
            minHeight: 200,
            minWidth: 420
        });
        dialog.open(true);
    },
    tooltip: 'About Jodit',
    mode: constants.MODE_SOURCE + constants.MODE_WYSIWYG
};
function about(editor) {
    editor.registerButton({
        name: 'about',
        group: 'info'
    });
}
global_1.pluginSystem.add('about', about);
icon_1.Icon.set('about', __nested_webpack_require_1011442__(84279));


/***/ }),

/***/ 66031:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1013588__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.addNewLine = void 0;
var tslib_1 = __nested_webpack_require_1013588__(20255);
__nested_webpack_require_1013588__(30724);
var modules_1 = __nested_webpack_require_1013588__(87837);
var helpers_1 = __nested_webpack_require_1013588__(40332);
var decorators_1 = __nested_webpack_require_1013588__(43441);
var global_1 = __nested_webpack_require_1013588__(17332);
__nested_webpack_require_1013588__(46360);
var ns = 'addnewline';
var addNewLine = (function (_super) {
    tslib_1.__extends(addNewLine, _super);
    function addNewLine() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.line = _this.j.c.fromHTML("<div role=\"button\" tabindex=\"-1\" title=\"".concat(_this.j.i18n('Break'), "\" class=\"jodit-add-new-line\"><span>").concat(modules_1.Icon.get('enter'), "</span></div>"));
        _this.isMatchedTag = function (node) {
            return Boolean(node &&
                _this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
        };
        _this.preview = false;
        _this.lineInFocus = false;
        _this.isShown = false;
        _this.hideForce = function () {
            if (!_this.isShown) {
                return;
            }
            _this.isShown = false;
            _this.j.async.clearTimeout(_this.timeout);
            _this.lineInFocus = false;
            modules_1.Dom.safeRemove(_this.line);
            _this.line.style.setProperty('--jd-offset-handle', '0');
        };
        _this.canGetFocus = function (elm) {
            return (elm != null &&
                modules_1.Dom.isBlock(elm) &&
                !/^(img|table|iframe|hr)$/i.test(elm.nodeName));
        };
        _this.onClickLine = function (e) {
            var editor = _this.j;
            var p = editor.createInside.element(editor.o.enter);
            if (_this.preview && _this.current && _this.current.parentNode) {
                if (_this.current === editor.editor) {
                    modules_1.Dom.prepend(editor.editor, p);
                }
                else {
                    _this.current.parentNode.insertBefore(p, _this.current);
                }
            }
            else {
                editor.editor.appendChild(p);
            }
            editor.s.setCursorIn(p);
            (0, helpers_1.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
            editor.synchronizeValues();
            _this.hideForce();
            e.preventDefault();
        };
        return _this;
    }
    addNewLine.prototype.show = function () {
        if (this.isShown || this.j.o.readonly || this.j.isLocked) {
            return;
        }
        this.isShown = true;
        this.j.async.clearTimeout(this.timeout);
        this.line.classList.toggle('jodit-add-new-line_after', !this.preview);
        this.j.container.appendChild(this.line);
        this.line.style.width = this.j.container.clientWidth + 'px';
    };
    addNewLine.prototype.onLock = function (isLocked) {
        if (isLocked && this.isShown) {
            this.hideForce();
        }
    };
    addNewLine.prototype.hide = function () {
        if (!this.isShown || this.lineInFocus) {
            return;
        }
        this.timeout = this.j.async.setTimeout(this.hideForce, {
            timeout: 500,
            label: 'add-new-line-hide'
        });
    };
    addNewLine.prototype.afterInit = function (editor) {
        var _this = this;
        if (!editor.o.addNewLine) {
            return;
        }
        editor.e
            .on(this.line, 'mousemove', function (e) {
            e.stopPropagation();
        })
            .on(this.line, 'mousedown touchstart', this.onClickLine)
            .on('change', this.hideForce)
            .on(this.line, 'mouseenter', function () {
            _this.j.async.clearTimeout(_this.timeout);
            _this.lineInFocus = true;
        })
            .on(this.line, 'mouseleave', function () {
            _this.lineInFocus = false;
        })
            .on('changePlace', this.addEventListeners.bind(this));
        this.addEventListeners();
    };
    addNewLine.prototype.addEventListeners = function () {
        var editor = this.j;
        editor.e
            .off(editor.editor, '.' + ns)
            .off(editor.container, '.' + ns)
            .on([editor.ow, editor.ew, editor.editor], 'scroll' + '.' + ns, this.hideForce)
            .on(editor.editor, 'click' + '.' + ns, this.hide)
            .on(editor.container, 'mouseleave' + '.' + ns, this.hide)
            .on(editor.editor, 'mousemove' + '.' + ns, this.onMouseMove);
    };
    addNewLine.prototype.onDblClickEditor = function (e) {
        var editor = this.j;
        if (!editor.o.readonly &&
            editor.o.addNewLineOnDBLClick &&
            e.target === editor.editor &&
            editor.s.isCollapsed()) {
            var editorBound = (0, helpers_1.offset)(editor.editor, editor, editor.ed);
            var top = e.pageY - editor.ew.pageYOffset;
            var p = editor.createInside.element(editor.o.enter);
            if (Math.abs(top - editorBound.top) <
                Math.abs(top - (editorBound.height + editorBound.top)) &&
                editor.editor.firstChild) {
                editor.editor.insertBefore(p, editor.editor.firstChild);
            }
            else {
                editor.editor.appendChild(p);
            }
            editor.s.setCursorIn(p);
            editor.synchronizeValues();
            this.hideForce();
            e.preventDefault();
        }
    };
    addNewLine.prototype.onMouseMove = function (e) {
        var editor = this.j;
        var currentElement = editor.ed.elementFromPoint(e.clientX, e.clientY);
        if (!modules_1.Dom.isHTMLElement(currentElement) ||
            modules_1.Dom.isOrContains(this.line, currentElement)) {
            return;
        }
        if (!modules_1.Dom.isOrContains(editor.editor, currentElement)) {
            return;
        }
        if (editor.editor !== currentElement &&
            !this.isMatchedTag(currentElement)) {
            currentElement = modules_1.Dom.closest(currentElement, this.isMatchedTag, editor.editor);
        }
        if (!currentElement) {
            this.hide();
            return;
        }
        if (this.isMatchedTag(currentElement)) {
            var parentBox = modules_1.Dom.up(currentElement, modules_1.Dom.isBlock, editor.editor);
            if (parentBox && parentBox !== editor.editor) {
                currentElement = parentBox;
            }
        }
        var pos = (0, helpers_1.position)(currentElement, this.j);
        var top = false;
        var clientY = e.clientY, clientX = e.clientX;
        if (this.j.iframe) {
            var _a = (0, helpers_1.position)(this.j.iframe, this.j, true), top_1 = _a.top, left = _a.left;
            clientY += top_1;
            clientX += left;
        }
        var delta = this.j.o.addNewLineDeltaShow;
        if (Math.abs(clientY - pos.top) <= delta) {
            top = pos.top;
            this.preview = true;
        }
        if (Math.abs(clientY - (pos.top + pos.height)) <= delta) {
            top = pos.top + pos.height;
            this.preview = false;
        }
        if (top !== false &&
            ((editor.editor === currentElement && !this.preview) ||
                !(0, helpers_1.call)(this.preview ? modules_1.Dom.prev : modules_1.Dom.next, currentElement, this.canGetFocus, editor.editor))) {
            this.line.style.top = top + 'px';
            this.current = currentElement;
            this.show();
            this.line.style.setProperty('--jd-offset-handle', clientX - pos.left - 10 + 'px');
        }
        else {
            this.current = false;
            this.hide();
        }
    };
    addNewLine.prototype.beforeDestruct = function () {
        this.j.async.clearTimeout(this.timeout);
        this.j.e.off(this.line).off('changePlace', this.addEventListeners);
        modules_1.Dom.safeRemove(this.line);
        this.j.e
            .off([this.j.ow, this.j.ew, this.j.editor], '.' + ns)
            .off(this.j.container, '.' + ns);
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':lock')
    ], addNewLine.prototype, "onLock", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], addNewLine.prototype, "hide", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':dblclick')
    ], addNewLine.prototype, "onDblClickEditor", null);
    tslib_1.__decorate([
        (0, decorators_1.debounce)(function (ctx) { return ctx.defaultTimeout * 5; })
    ], addNewLine.prototype, "onMouseMove", null);
    return addNewLine;
}(modules_1.Plugin));
exports.addNewLine = addNewLine;
global_1.pluginSystem.add('addNewLine', addNewLine);


/***/ }),

/***/ 46360:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1022644__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1022644__(93166);
var ui_1 = __nested_webpack_require_1022644__(2074);
config_1.Config.prototype.addNewLine = true;
config_1.Config.prototype.addNewLineOnDBLClick = true;
config_1.Config.prototype.addNewLineTagsTriggers = [
    'table',
    'iframe',
    'img',
    'hr',
    'pre',
    'jodit'
];
config_1.Config.prototype.addNewLineDeltaShow = 20;
ui_1.Icon.set('enter', __nested_webpack_require_1022644__(11257));


/***/ }),

/***/ 91241:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1023457__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.backspace = void 0;
var tslib_1 = __nested_webpack_require_1023457__(20255);
var plugin_1 = __nested_webpack_require_1023457__(57549);
var dom_1 = __nested_webpack_require_1023457__(64968);
var constants_1 = __nested_webpack_require_1023457__(86893);
var helpers_1 = __nested_webpack_require_1023457__(40332);
var helpers_2 = __nested_webpack_require_1023457__(10109);
var global_1 = __nested_webpack_require_1023457__(17332);
var cases_1 = __nested_webpack_require_1023457__(90089);
var check_not_collapsed_1 = __nested_webpack_require_1023457__(95441);
__nested_webpack_require_1023457__(48229);
var backspace = (function (_super) {
    tslib_1.__extends(backspace, _super);
    function backspace() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.requires = ['hotkeys'];
        return _this;
    }
    backspace.prototype.afterInit = function (jodit) {
        var _this = this;
        jodit.e.on('afterCommand.delete', function (command) {
            if (command === 'delete') {
                _this.afterDeleteCommand();
            }
        });
        jodit
            .registerCommand('deleteButton', {
            exec: function () { return _this.onDelete(false); },
            hotkeys: jodit.o.delete.hotkeys.delete
        }, {
            stopPropagation: false
        })
            .registerCommand('backspaceButton', {
            exec: function () { return _this.onDelete(true); },
            hotkeys: jodit.o.delete.hotkeys.backspace
        }, {
            stopPropagation: false
        })
            .registerCommand('deleteWordButton', {
            exec: function () { return _this.onDelete(false, 'word'); },
            hotkeys: jodit.o.delete.hotkeys.deleteWord
        })
            .registerCommand('backspaceWordButton', {
            exec: function () { return _this.onDelete(true, 'word'); },
            hotkeys: jodit.o.delete.hotkeys.backspaceWord
        })
            .registerCommand('deleteSentenceButton', {
            exec: function () { return _this.onDelete(false, 'sentence'); },
            hotkeys: jodit.o.delete.hotkeys.deleteSentence
        })
            .registerCommand('backspaceSentenceButton', {
            exec: function () { return _this.onDelete(true, 'sentence'); },
            hotkeys: jodit.o.delete.hotkeys.backspaceSentence
        });
    };
    backspace.prototype.beforeDestruct = function (jodit) {
        jodit.e.off('afterCommand.delete');
    };
    backspace.prototype.afterDeleteCommand = function () {
        var jodit = this.j;
        var current = jodit.s.current();
        if (current && dom_1.Dom.isTag(current.firstChild, 'br')) {
            jodit.s.removeNode(current.firstChild);
        }
        if (!(0, helpers_1.trim)(jodit.editor.textContent || '') &&
            !jodit.editor.querySelector('img,table,jodit,iframe,hr') &&
            (!current || !dom_1.Dom.closest(current, 'table', jodit.editor))) {
            jodit.editor.innerHTML = '';
            var node = jodit.s.setCursorIn(jodit.editor);
            jodit.s.removeNode(node);
        }
    };
    backspace.prototype.onDelete = function (backspace, mode) {
        if (mode === void 0) { mode = 'char'; }
        var jodit = this.j;
        var sel = jodit.selection;
        if (!sel.isFocused()) {
            sel.focus();
        }
        if ((0, check_not_collapsed_1.checkNotCollapsed)(jodit)) {
            return false;
        }
        var range = sel.range;
        var fakeNode = jodit.createInside.text(constants_1.INVISIBLE_SPACE);
        try {
            dom_1.Dom.safeInsertNode(range, fakeNode);
            if (!dom_1.Dom.isOrContains(jodit.editor, fakeNode)) {
                return;
            }
            if (jodit.e.fire('backSpaceBeforeCases', backspace, fakeNode)) {
                return false;
            }
            (0, helpers_2.moveNodeInsideStart)(jodit, fakeNode, backspace);
            if (cases_1.cases.some(function (func) {
                if ((0, helpers_1.isFunction)(func) &&
                    func(jodit, fakeNode, backspace, mode)) {
                    if (false) // removed by dead control flow
{}
                    return true;
                }
            })) {
                return false;
            }
        }
        catch (e) {
            if (false) // removed by dead control flow
{}
            throw e;
        }
        finally {
            jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
            this.safeRemoveEmptyNode(fakeNode);
        }
        return false;
    };
    backspace.prototype.safeRemoveEmptyNode = function (fakeNode) {
        var _a, _b;
        var range = this.j.s.range;
        if (range.startContainer === fakeNode) {
            if (fakeNode.previousSibling) {
                if (dom_1.Dom.isText(fakeNode.previousSibling)) {
                    range.setStart(fakeNode.previousSibling, (_b = (_a = fakeNode.previousSibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
                }
                else {
                    range.setStartAfter(fakeNode.previousSibling);
                }
            }
            else if (fakeNode.nextSibling) {
                if (dom_1.Dom.isText(fakeNode.nextSibling)) {
                    range.setStart(fakeNode.nextSibling, 0);
                }
                else {
                    range.setStartBefore(fakeNode.nextSibling);
                }
            }
            range.collapse(true);
            this.j.s.selectRange(range);
        }
        dom_1.Dom.safeRemove(fakeNode);
    };
    return backspace;
}(plugin_1.Plugin));
exports.backspace = backspace;
global_1.pluginSystem.add('backspace', backspace);


/***/ }),

/***/ 31078:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1029409__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkJoinNeighbors = void 0;
var dom_1 = __nested_webpack_require_1029409__(24263);
var helpers_1 = __nested_webpack_require_1029409__(30861);
function checkJoinNeighbors(jodit, fakeNode, backspace) {
    var nextBox = fakeNode, mainClosestBox = nextBox;
    while (nextBox &&
        !dom_1.Dom.findNotEmptySibling(nextBox, backspace) &&
        nextBox.parentElement !== jodit.editor) {
        nextBox = nextBox.parentElement;
        mainClosestBox = nextBox;
    }
    if (dom_1.Dom.isElement(mainClosestBox) &&
        dom_1.Dom.isContentEditable(mainClosestBox, jodit.editor)) {
        var sibling = dom_1.Dom.findNotEmptySibling(mainClosestBox, backspace);
        if (sibling &&
            (checkMoveListContent(jodit, mainClosestBox, sibling, backspace) ||
                moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace))) {
            jodit.s.setCursorBefore(fakeNode);
            return true;
        }
    }
    return false;
}
exports.checkJoinNeighbors = checkJoinNeighbors;
function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
    var siblingIsList = dom_1.Dom.isTag(sibling, ['ol', 'ul']);
    var boxIsList = dom_1.Dom.isTag(mainClosestBox, ['ol', 'ul']);
    var elementChild = function (elm, side) {
        return side ? elm.firstElementChild : elm.lastElementChild;
    };
    if (boxIsList) {
        sibling = jodit.createInside.element(jodit.o.enterBlock);
        dom_1.Dom.before(mainClosestBox, sibling);
        return moveContentAndRemoveEmpty(jodit, elementChild(mainClosestBox, backspace), sibling, backspace);
    }
    if (sibling && siblingIsList && !boxIsList) {
        return moveContentAndRemoveEmpty(jodit, mainClosestBox, elementChild(sibling, !backspace), backspace);
    }
    return false;
}
function moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace) {
    if (mainClosestBox && dom_1.Dom.isElement(sibling)) {
        dom_1.Dom.moveContent(mainClosestBox, sibling, !backspace, (0, helpers_1.getMoveFilter)(jodit));
        var remove = mainClosestBox;
        while (remove && remove !== jodit.editor && dom_1.Dom.isEmpty(remove)) {
            var parent = remove.parentElement;
            dom_1.Dom.safeRemove(remove);
            remove = parent;
        }
        return true;
    }
    return false;
}


/***/ }),

/***/ 92156:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1032107__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkJoinTwoLists = void 0;
var dom_1 = __nested_webpack_require_1032107__(24263);
var utils_1 = __nested_webpack_require_1032107__(67309);
var helpers_1 = __nested_webpack_require_1032107__(30861);
function checkJoinTwoLists(jodit, fakeNode, backspace) {
    var next = dom_1.Dom.findSibling(fakeNode, backspace), prev = dom_1.Dom.findSibling(fakeNode, !backspace);
    if (!dom_1.Dom.closest(fakeNode, dom_1.Dom.isElement, jodit.editor) &&
        dom_1.Dom.isTag(next, ['ul', 'ol']) &&
        dom_1.Dom.isTag(prev, ['ul', 'ol']) &&
        dom_1.Dom.isTag(next.lastElementChild, 'li') &&
        dom_1.Dom.isTag(prev.firstElementChild, 'li')) {
        var _a = jodit.s, setCursorBefore = _a.setCursorBefore, setCursorAfter = _a.setCursorAfter;
        var target = next.lastElementChild, second = prev.firstElementChild;
        (0, utils_1.call)(!backspace ? dom_1.Dom.append : dom_1.Dom.prepend, second, fakeNode);
        dom_1.Dom.moveContent(prev, next, !backspace, (0, helpers_1.getMoveFilter)(jodit));
        dom_1.Dom.safeRemove(prev);
        (0, utils_1.call)(backspace ? dom_1.Dom.append : dom_1.Dom.prepend, target, fakeNode);
        (0, utils_1.call)(backspace ? setCursorBefore : setCursorAfter, fakeNode);
        return true;
    }
    return false;
}
exports.checkJoinTwoLists = checkJoinTwoLists;


/***/ }),

/***/ 95441:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkNotCollapsed = void 0;
function checkNotCollapsed(jodit) {
    if (!jodit.s.isCollapsed()) {
        jodit.execCommand('Delete');
        return true;
    }
    return false;
}
exports.checkNotCollapsed = checkNotCollapsed;


/***/ }),

/***/ 13116:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1034410__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkRemoveChar = void 0;
var dom_1 = __nested_webpack_require_1034410__(64968);
var helpers_1 = __nested_webpack_require_1034410__(40332);
var constants_1 = __nested_webpack_require_1034410__(86893);
var helpers_2 = __nested_webpack_require_1034410__(30861);
function checkRemoveChar(jodit, fakeNode, backspace, mode) {
    var _a, _b, _c;
    var step = backspace ? -1 : 1;
    var anotherSibling = dom_1.Dom.sibling(fakeNode, !backspace);
    var sibling = dom_1.Dom.sibling(fakeNode, backspace), removeNeighbor = null;
    var charRemoved = false, removed;
    var getNextInlineSibling = function (sibling) {
        var nextSibling = dom_1.Dom.sibling(sibling, backspace);
        if (!nextSibling &&
            sibling.parentNode &&
            sibling.parentNode !== jodit.editor) {
            nextSibling = (0, helpers_2.findMostNestedNeighbor)(sibling, !backspace, jodit.editor, true);
        }
        return nextSibling;
    };
    if (!sibling) {
        sibling = getNextInlineSibling(fakeNode);
    }
    while (sibling && (dom_1.Dom.isText(sibling) || dom_1.Dom.isInlineBlock(sibling))) {
        while (dom_1.Dom.isInlineBlock(sibling)) {
            sibling = (backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild);
        }
        if (!sibling) {
            break;
        }
        if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
            var value = (0, helpers_1.toArray)(sibling.nodeValue);
            var length = value.length;
            var index = backspace ? length - 1 : 0;
            if (value[index] === constants_1.INVISIBLE_SPACE) {
                while (value[index] === constants_1.INVISIBLE_SPACE) {
                    index += step;
                }
            }
            removed = value[index];
            if (value[index + step] === constants_1.INVISIBLE_SPACE) {
                index += step;
                while (value[index] === constants_1.INVISIBLE_SPACE) {
                    index += step;
                }
                index += backspace ? 1 : -1;
            }
            if (backspace && index < 0) {
                value = [];
            }
            else {
                value = value.slice(backspace ? 0 : index + 1, backspace ? index : length);
            }
            if (!anotherSibling ||
                !dom_1.Dom.isText(anotherSibling) ||
                (!backspace ? / $/ : /^ /).test((_b = anotherSibling.nodeValue) !== null && _b !== void 0 ? _b : '') ||
                !(0, helpers_1.trimInv)(anotherSibling.nodeValue || '').length) {
                for (var i = backspace ? value.length - 1 : 0; backspace ? i >= 0 : i < value.length; i += backspace ? -1 : 1) {
                    if (value[i] === ' ') {
                        value[i] = constants_1.NBSP_SPACE;
                    }
                    else {
                        break;
                    }
                }
            }
            sibling.nodeValue = value.join('');
        }
        if (!((_c = sibling.nodeValue) === null || _c === void 0 ? void 0 : _c.length)) {
            removeNeighbor = sibling;
        }
        if (!(0, helpers_1.isVoid)(removed) && removed !== constants_1.INVISIBLE_SPACE) {
            charRemoved = true;
            (0, helpers_1.call)(backspace ? dom_1.Dom.after : dom_1.Dom.before, sibling, fakeNode);
            if (mode === 'sentence' ||
                (mode === 'word' && removed !== ' ' && removed !== constants_1.NBSP_SPACE)) {
                checkRemoveChar(jodit, fakeNode, backspace, mode);
            }
            break;
        }
        var nextSibling = getNextInlineSibling(sibling);
        if (removeNeighbor) {
            dom_1.Dom.safeRemove(removeNeighbor);
            removeNeighbor = null;
        }
        sibling = nextSibling;
    }
    if (removeNeighbor) {
        dom_1.Dom.safeRemove(removeNeighbor);
        removeNeighbor = null;
    }
    if (charRemoved) {
        removeEmptyForParent(fakeNode, ['a']);
        addBRInsideEmptyBlock(jodit, fakeNode);
        jodit.s.setCursorBefore(fakeNode);
        if (dom_1.Dom.isTag(fakeNode.previousSibling, 'br') &&
            !dom_1.Dom.findNotEmptySibling(fakeNode, false)) {
            dom_1.Dom.after(fakeNode, jodit.createInside.element('br'));
        }
    }
    return charRemoved;
}
exports.checkRemoveChar = checkRemoveChar;
function removeEmptyForParent(node, tags) {
    var parent = node.parentElement;
    while (parent && dom_1.Dom.isInlineBlock(parent) && dom_1.Dom.isTag(parent, tags)) {
        var p = parent.parentElement;
        if (dom_1.Dom.isEmpty(parent)) {
            dom_1.Dom.after(parent, node);
            dom_1.Dom.safeRemove(parent);
        }
        parent = p;
    }
}
function addBRInsideEmptyBlock(jodit, node) {
    if (node.parentElement !== jodit.editor &&
        dom_1.Dom.isBlock(node.parentElement) &&
        dom_1.Dom.each(node.parentElement, dom_1.Dom.isEmptyTextNode)) {
        dom_1.Dom.after(node, jodit.createInside.element('br'));
    }
}


/***/ }),

/***/ 74217:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1039883__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkRemoveContentNotEditable = void 0;
var dom_1 = __nested_webpack_require_1039883__(64968);
var helpers_1 = __nested_webpack_require_1039883__(40332);
var helpers_2 = __nested_webpack_require_1039883__(10109);
function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
    var neighbor = dom_1.Dom.findSibling(fakeNode, backspace);
    if (!neighbor &&
        fakeNode.parentElement &&
        fakeNode.parentElement !== jodit.editor) {
        neighbor = dom_1.Dom.findSibling(fakeNode.parentElement, backspace);
    }
    if (dom_1.Dom.isElement(neighbor) &&
        !dom_1.Dom.isContentEditable(neighbor, jodit.editor)) {
        (0, helpers_1.call)(backspace ? dom_1.Dom.before : dom_1.Dom.after, neighbor, fakeNode);
        dom_1.Dom.safeRemove(neighbor);
        (0, helpers_2.moveNodeInsideStart)(jodit, fakeNode, backspace);
        (0, helpers_1.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
        return true;
    }
    return false;
}
exports.checkRemoveContentNotEditable = checkRemoveContentNotEditable;


/***/ }),

/***/ 34181:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1041314__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkRemoveEmptyNeighbor = void 0;
var dom_1 = __nested_webpack_require_1041314__(24263);
function checkRemoveEmptyNeighbor(jodit, fakeNode, backspace) {
    var parent = dom_1.Dom.closest(fakeNode, dom_1.Dom.isElement, jodit.editor);
    if (!parent) {
        return false;
    }
    var neighbor = dom_1.Dom.findNotEmptySibling(parent, backspace);
    if (neighbor && dom_1.Dom.isEmpty(neighbor)) {
        dom_1.Dom.safeRemove(neighbor);
        jodit.s.setCursorBefore(fakeNode);
        return true;
    }
    return false;
}
exports.checkRemoveEmptyNeighbor = checkRemoveEmptyNeighbor;


/***/ }),

/***/ 13890:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1042301__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkRemoveEmptyParent = void 0;
var dom_1 = __nested_webpack_require_1042301__(64968);
var constants_1 = __nested_webpack_require_1042301__(86893);
var check_join_two_lists_1 = __nested_webpack_require_1042301__(92156);
function checkRemoveEmptyParent(jodit, fakeNode, backspace) {
    var found = false;
    var _a = jodit.s, setCursorBefore = _a.setCursorBefore, setCursorIn = _a.setCursorIn;
    var prn = dom_1.Dom.closest(fakeNode, dom_1.Dom.isElement, jodit.editor);
    if (!prn || !dom_1.Dom.isEmpty(prn)) {
        return false;
    }
    var neighbor = dom_1.Dom.findNotEmptyNeighbor(fakeNode, backspace, jodit.editor);
    do {
        if (prn && dom_1.Dom.isEmpty(prn) && !dom_1.Dom.isCell(prn)) {
            dom_1.Dom.after(prn, fakeNode);
            var tmp = dom_1.Dom.closest(prn, function (n) { return dom_1.Dom.isElement(n) && n !== prn; }, jodit.editor);
            dom_1.Dom.safeRemove(prn);
            found = true;
            prn = tmp;
        }
        else {
            break;
        }
    } while (prn);
    if (found && (0, check_join_two_lists_1.checkJoinTwoLists)(jodit, fakeNode, backspace)) {
        return true;
    }
    if (neighbor &&
        !dom_1.Dom.isText(neighbor) &&
        !dom_1.Dom.isTag(neighbor, constants_1.INSEPARABLE_TAGS)) {
        setCursorIn(neighbor, !backspace);
    }
    else {
        setCursorBefore(fakeNode);
    }
    return found;
}
exports.checkRemoveEmptyParent = checkRemoveEmptyParent;


/***/ }),

/***/ 8249:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1044128__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkRemoveUnbreakableElement = void 0;
var dom_1 = __nested_webpack_require_1044128__(24263);
var constants_1 = __nested_webpack_require_1044128__(86893);
var check_remove_empty_parent_1 = __nested_webpack_require_1044128__(13890);
function checkRemoveUnbreakableElement(jodit, fakeNode, backspace) {
    var neighbor = dom_1.Dom.findSibling(fakeNode, backspace);
    if (dom_1.Dom.isElement(neighbor) &&
        (dom_1.Dom.isTag(neighbor, constants_1.INSEPARABLE_TAGS) || dom_1.Dom.isEmpty(neighbor))) {
        dom_1.Dom.safeRemove(neighbor);
        if (dom_1.Dom.isTag(neighbor, 'br') &&
            !dom_1.Dom.findNotEmptySibling(fakeNode, false)) {
            dom_1.Dom.after(fakeNode, jodit.createInside.element('br'));
        }
        jodit.s.setCursorBefore(fakeNode);
        if (dom_1.Dom.isTag(neighbor, 'br')) {
            (0, check_remove_empty_parent_1.checkRemoveEmptyParent)(jodit, fakeNode, backspace);
        }
        return true;
    }
    return false;
}
exports.checkRemoveUnbreakableElement = checkRemoveUnbreakableElement;


/***/ }),

/***/ 58368:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1045546__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkTableCell = void 0;
var dom_1 = __nested_webpack_require_1045546__(24263);
function checkTableCell(jodit, fakeNode) {
    var cell = fakeNode.parentElement;
    if (dom_1.Dom.isCell(cell)) {
        return true;
    }
    return false;
}
exports.checkTableCell = checkTableCell;


/***/ }),

/***/ 6028:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1046223__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkUnwrapFirstListItem = void 0;
var dom_1 = __nested_webpack_require_1046223__(24263);
var utils_1 = __nested_webpack_require_1046223__(76502);
function checkUnwrapFirstListItem(jodit, fakeNode, backspace) {
    var _a;
    var li = dom_1.Dom.closest(fakeNode, dom_1.Dom.isElement, jodit.editor);
    var s = jodit.s;
    if (dom_1.Dom.isTag(li, 'li') &&
        ((_a = li === null || li === void 0 ? void 0 : li.parentElement) === null || _a === void 0 ? void 0 : _a[backspace ? 'firstElementChild' : 'lastElementChild']) === li &&
        s.cursorInTheEdge(backspace, li)) {
        var ul = li.parentElement;
        var p = jodit.createInside.element(jodit.o.enterBlock);
        (0, utils_1.call)(backspace ? dom_1.Dom.before : dom_1.Dom.after, ul, p);
        dom_1.Dom.moveContent(li, p);
        dom_1.Dom.safeRemove(li);
        if (dom_1.Dom.isEmpty(ul)) {
            dom_1.Dom.safeRemove(ul);
        }
        (0, utils_1.call)(backspace ? s.setCursorBefore : s.setCursorAfter, fakeNode);
        return true;
    }
    return false;
}
exports.checkUnwrapFirstListItem = checkUnwrapFirstListItem;


/***/ }),

/***/ 90089:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1047715__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.cases = void 0;
var check_remove_unbreakable_element_1 = __nested_webpack_require_1047715__(8249);
var check_remove_content_not_editable_1 = __nested_webpack_require_1047715__(74217);
var check_remove_char_1 = __nested_webpack_require_1047715__(13116);
var check_table_cell_1 = __nested_webpack_require_1047715__(58368);
var check_remove_empty_parent_1 = __nested_webpack_require_1047715__(13890);
var check_remove_empty_neighbor_1 = __nested_webpack_require_1047715__(34181);
var check_join_two_lists_1 = __nested_webpack_require_1047715__(92156);
var check_join_neighbors_1 = __nested_webpack_require_1047715__(31078);
var check_unwrap_first_list_item_1 = __nested_webpack_require_1047715__(6028);
exports.cases = [
    check_remove_unbreakable_element_1.checkRemoveUnbreakableElement,
    check_remove_content_not_editable_1.checkRemoveContentNotEditable,
    check_remove_char_1.checkRemoveChar,
    check_table_cell_1.checkTableCell,
    check_remove_empty_parent_1.checkRemoveEmptyParent,
    check_remove_empty_neighbor_1.checkRemoveEmptyNeighbor,
    check_join_two_lists_1.checkJoinTwoLists,
    check_join_neighbors_1.checkJoinNeighbors,
    check_unwrap_first_list_item_1.checkUnwrapFirstListItem
];


/***/ }),

/***/ 48229:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1049200__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1049200__(93166);
config_1.Config.prototype.delete = {
    hotkeys: {
        delete: ['delete', 'cmd+backspace'],
        deleteWord: ['ctrl+delete', 'cmd+alt+backspace', 'ctrl+alt+backspace'],
        deleteSentence: ['ctrl+shift+delete', 'cmd+shift+delete'],
        backspace: ['backspace'],
        backspaceWord: ['ctrl+backspace'],
        backspaceSentence: ['ctrl+shift+backspace', 'cmd+shift+backspace']
    }
};


/***/ }),

/***/ 30861:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1050049__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getMoveFilter = exports.findMostNestedNeighbor = void 0;
var dom_1 = __nested_webpack_require_1050049__(64968);
function findMostNestedNeighbor(node, right, root, onlyInlide) {
    if (onlyInlide === void 0) { onlyInlide = false; }
    var nextChild = function (node) {
        return right ? node.firstChild : node.lastChild;
    };
    var next = dom_1.Dom.findNotEmptyNeighbor(node, !right, root);
    if (onlyInlide && dom_1.Dom.isElement(next) && !dom_1.Dom.isInlineBlock(next)) {
        return null;
    }
    if (next) {
        do {
            if (nextChild(next)) {
                next = nextChild(next);
            }
            else {
                return next;
            }
        } while (next);
    }
    return null;
}
exports.findMostNestedNeighbor = findMostNestedNeighbor;
function getMoveFilter(jodit) {
    return function (node) {
        return jodit.e.fire('backSpaceIsMovedIgnore', node) !== true;
    };
}
exports.getMoveFilter = getMoveFilter;


/***/ }),

/***/ 87565:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1051421__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.bold = void 0;
var tslib_1 = __nested_webpack_require_1051421__(20255);
var config_1 = __nested_webpack_require_1051421__(93166);
var helpers_1 = __nested_webpack_require_1051421__(40332);
var global_1 = __nested_webpack_require_1051421__(17332);
var icon_1 = __nested_webpack_require_1051421__(77904);
__nested_webpack_require_1051421__(58334);
__nested_webpack_require_1051421__(90740);
function bold(editor) {
    var callBack = function (command) {
        var control = config_1.Config.defaultOptions.controls[command], cssOptions = tslib_1.__assign({}, control.css);
        var cssRules;
        Object.keys(cssOptions).forEach(function (key) {
            if (!cssRules) {
                cssRules = {};
            }
            cssRules[key] = (0, helpers_1.isArray)(cssOptions[key])
                ? cssOptions[key][0]
                : cssOptions[key];
        });
        editor.s.applyStyle(cssRules, {
            element: control.tags ? control.tags[0] : undefined
        });
        editor.synchronizeValues();
        return false;
    };
    ['bold', 'italic', 'underline', 'strikethrough'].forEach(function (name) {
        editor.registerButton({
            name: name,
            group: 'font-style'
        });
    });
    ['superscript', 'subscript'].forEach(function (name) {
        editor.registerButton({
            name: name,
            group: 'script'
        });
    });
    editor
        .registerCommand('bold', {
        exec: callBack,
        hotkeys: ['ctrl+b', 'cmd+b']
    })
        .registerCommand('italic', {
        exec: callBack,
        hotkeys: ['ctrl+i', 'cmd+i']
    })
        .registerCommand('underline', {
        exec: callBack,
        hotkeys: ['ctrl+u', 'cmd+u']
    })
        .registerCommand('strikethrough', {
        exec: callBack
    })
        .registerCommand('subscript', {
        exec: callBack
    })
        .registerCommand('superscript', {
        exec: callBack
    });
}
exports.bold = bold;
global_1.pluginSystem.add('bold', bold);
icon_1.Icon.set('bold', __nested_webpack_require_1051421__(25141))
    .set('italic', __nested_webpack_require_1051421__(24557))
    .set('strikethrough', __nested_webpack_require_1051421__(10859))
    .set('subscript', __nested_webpack_require_1051421__(9813))
    .set('superscript', __nested_webpack_require_1051421__(93395))
    .set('underline', __nested_webpack_require_1051421__(98213));


/***/ }),

/***/ 90740:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1054047__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1054047__(93166);
config_1.Config.prototype.controls.subscript = {
    tags: ['sub'],
    tooltip: 'subscript'
};
config_1.Config.prototype.controls.superscript = {
    tags: ['sup'],
    tooltip: 'superscript'
};
config_1.Config.prototype.controls.bold = {
    tagRegExp: /^(strong|b)$/i,
    tags: ['strong', 'b'],
    css: {
        'font-weight': ['bold', '700']
    },
    tooltip: 'Bold'
};
config_1.Config.prototype.controls.italic = {
    tagRegExp: /^(em|i)$/i,
    tags: ['em', 'i'],
    css: {
        'font-style': 'italic'
    },
    tooltip: 'Italic'
};
config_1.Config.prototype.controls.underline = {
    tagRegExp: /^(u)$/i,
    tags: ['u'],
    css: {
        'text-decoration-line': 'underline'
    },
    tooltip: 'Underline'
};
config_1.Config.prototype.controls.strikethrough = {
    tagRegExp: /^(s)$/i,
    tags: ['s'],
    css: {
        'text-decoration-line': 'line-through'
    },
    tooltip: 'Strike through'
};


/***/ }),

/***/ 58334:
/***/ (function() {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */


/***/ }),

/***/ 60894:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1055698__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.classSpan = void 0;
var tslib_1 = __nested_webpack_require_1055698__(20255);
var plugin_1 = __nested_webpack_require_1055698__(57549);
var config_1 = __nested_webpack_require_1055698__(93166);
var dom_1 = __nested_webpack_require_1055698__(64968);
var helpers_1 = __nested_webpack_require_1055698__(40332);
var global_1 = __nested_webpack_require_1055698__(17332);
var ui_1 = __nested_webpack_require_1055698__(2074);
config_1.Config.prototype.controls.classSpan = {
    command: 'applyClassName',
    exec: helpers_1.memorizeExec,
    list: [
        'enabled',
        'disabled',
        'activated',
        'text-left',
        'text-center',
        'text-right',
        'warning',
        'error'
    ],
    isChildActive: function (editor, control) {
        var current = editor.s.current();
        if (current) {
            var currentBpx = dom_1.Dom.closest(current, dom_1.Dom.isElement, editor.editor) || editor.editor;
            return Boolean(control.args &&
                currentBpx.classList.contains(control.args[0].toString()));
        }
        return false;
    },
    isActive: function (editor, control) {
        var current = editor.s.current();
        if (current) {
            var currentBpx_1 = dom_1.Dom.closest(current, dom_1.Dom.isElement, editor.editor) || editor.editor;
            var present_1 = false;
            control.list &&
                Object.keys(control.list).forEach(function (className) {
                    if (currentBpx_1.classList.contains(className)) {
                        present_1 = true;
                    }
                });
            return Boolean(currentBpx_1 &&
                currentBpx_1 !== editor.editor &&
                control.list !== undefined &&
                present_1);
        }
        return false;
    },
    childTemplate: function (e, key, value) {
        return "<span class=\"".concat(key, "\">").concat(e.i18n(value), "</span>");
    },
    tooltip: 'Insert className'
};
var classSpan = (function (_super) {
    tslib_1.__extends(classSpan, _super);
    function classSpan() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'classSpan',
                group: 'font'
            }
        ];
        return _this;
    }
    classSpan.prototype.afterInit = function (jodit) {
        jodit.registerCommand('applyClassName', function (command, second, third) {
            jodit.s.applyStyle(undefined, {
                className: third
            });
            return false;
        });
    };
    classSpan.prototype.beforeDestruct = function () { };
    return classSpan;
}(plugin_1.Plugin));
exports.classSpan = classSpan;
global_1.pluginSystem.add('classSpan', classSpan);
ui_1.Icon.set('class-span', __nested_webpack_require_1055698__(20026));


/***/ }),

/***/ 90302:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1058843__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.cleanHtml = void 0;
var tslib_1 = __nested_webpack_require_1058843__(20255);
var safe_html_1 = __nested_webpack_require_1058843__(67128);
var plugin_1 = __nested_webpack_require_1058843__(85605);
var decorators_1 = __nested_webpack_require_1058843__(43441);
var lazy_walker_1 = __nested_webpack_require_1058843__(33841);
var global_1 = __nested_webpack_require_1058843__(17332);
var dom_1 = __nested_webpack_require_1058843__(24263);
var helpers_1 = __nested_webpack_require_1058843__(57713);
__nested_webpack_require_1058843__(98889);
var cleanHtml = (function (_super) {
    tslib_1.__extends(cleanHtml, _super);
    function cleanHtml() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'eraser',
                group: 'font-style'
            }
        ];
        _this.currentSelectionNode = null;
        _this.walker = new lazy_walker_1.LazyWalker(_this.j.async, {
            timeout: _this.j.o.cleanHTML.timeout
        });
        return _this;
    }
    cleanHtml.prototype.afterInit = function (jodit) { };
    Object.defineProperty(cleanHtml.prototype, "isEditMode", {
        get: function () {
            return !(this.j.isInDestruct ||
                !this.j.isEditorMode() ||
                this.j.getReadOnly());
        },
        enumerable: false,
        configurable: true
    });
    cleanHtml.prototype.onChangeCleanHTML = function () {
        if (!this.isEditMode) {
            return;
        }
        var editor = this.j;
        this.walker.setWork(editor.editor);
        this.currentSelectionNode = editor.s.current();
    };
    cleanHtml.prototype.startWalker = function () {
        var _this = this;
        var jodit = this.jodit;
        var allow = (0, helpers_1.getHash)(this.j.o.cleanHTML.allowTags);
        var deny = (0, helpers_1.getHash)(this.j.o.cleanHTML.denyTags);
        this.walker
            .on('visit', function (node) {
            return (0, helpers_1.visitNodeWalker)(jodit, node, allow, deny, _this.currentSelectionNode);
        })
            .on('end', function (affected) {
            _this.j.e.fire(affected
                ? 'internalChange finishedCleanHTMLWorker'
                : 'finishedCleanHTMLWorker');
        });
    };
    cleanHtml.prototype.beforeCommand = function (command) {
        if (command.toLowerCase() === 'removeformat') {
            if (this.j.s.isCollapsed()) {
                (0, helpers_1.removeFormatForCollapsedSelection)(this.j);
            }
            else {
                (0, helpers_1.removeFormatForSelection)(this.j);
            }
            return false;
        }
    };
    cleanHtml.prototype.onBeforeSetNativeEditorValue = function (data) {
        var sandBox = this.j.o.cleanHTML.useIframeSandbox
            ? this.j.createInside.sandbox()
            : this.j.createInside.div();
        sandBox.innerHTML = data.value;
        this.onSafeHTML(sandBox);
        data.value = sandBox.innerHTML;
        (0, safe_html_1.safeHTML)(sandBox, { safeJavaScriptLink: true, removeOnError: true });
        dom_1.Dom.safeRemove(sandBox);
        return false;
    };
    cleanHtml.prototype.onSafeHTML = function (sandBox) {
        (0, safe_html_1.safeHTML)(sandBox, this.j.o.cleanHTML);
    };
    cleanHtml.prototype.beforeDestruct = function () {
        this.walker.destruct();
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)([':change', ':afterSetMode', ':afterInit', ':mousedown', ':keydown'])
    ], cleanHtml.prototype, "onChangeCleanHTML", null);
    tslib_1.__decorate([
        (0, decorators_1.hook)('ready')
    ], cleanHtml.prototype, "startWalker", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeCommand')
    ], cleanHtml.prototype, "beforeCommand", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeSetNativeEditorValue')
    ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':safeHTML')
    ], cleanHtml.prototype, "onSafeHTML", null);
    return cleanHtml;
}(plugin_1.Plugin));
exports.cleanHtml = cleanHtml;
global_1.pluginSystem.add('cleanHtml', cleanHtml);


/***/ }),

/***/ 98889:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1063341__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1063341__(93166);
var icon_1 = __nested_webpack_require_1063341__(77904);
config_1.Config.prototype.cleanHTML = {
    timeout: 300,
    removeEmptyElements: true,
    fillEmptyParagraph: true,
    replaceNBSP: true,
    replaceOldTags: {
        i: 'em',
        b: 'strong'
    },
    allowTags: false,
    denyTags: 'script',
    useIframeSandbox: false,
    removeOnError: true,
    safeJavaScriptLink: true,
    disableCleanFilter: null
};
config_1.Config.prototype.controls.eraser = {
    command: 'removeFormat',
    tooltip: 'Clear Formatting'
};
icon_1.Icon.set('eraser', __nested_webpack_require_1063341__(66911));


/***/ }),

/***/ 38655:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1064361__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getHash = void 0;
var trim_1 = __nested_webpack_require_1064361__(33941);
var is_string_1 = __nested_webpack_require_1064361__(24421);
function getHash(tags) {
    var attributesReg = /([^[]*)\[([^\]]+)]/;
    var separator = /[\s]*,[\s]*/, attrReg = /^(.*)[\s]*=[\s]*(.*)$/;
    var tagsHash = {};
    if ((0, is_string_1.isString)(tags)) {
        tags.split(separator).map(function (elm) {
            elm = (0, trim_1.trim)(elm);
            var attr = attributesReg.exec(elm), allowAttributes = {}, attributeMap = function (attrName) {
                attrName = (0, trim_1.trim)(attrName);
                var val = attrReg.exec(attrName);
                if (val) {
                    allowAttributes[val[1]] = val[2];
                }
                else {
                    allowAttributes[attrName] = true;
                }
            };
            if (attr) {
                var attr2 = attr[2].split(separator);
                if (attr[1]) {
                    attr2.forEach(attributeMap);
                    tagsHash[attr[1].toUpperCase()] = allowAttributes;
                }
            }
            else {
                tagsHash[elm.toUpperCase()] = true;
            }
        });
        return tagsHash;
    }
    if (tags) {
        Object.keys(tags).forEach(function (tagName) {
            tagsHash[tagName.toUpperCase()] = tags[tagName];
        });
        return tagsHash;
    }
    return false;
}
exports.getHash = getHash;


/***/ }),

/***/ 57713:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1066206__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1066206__(20255);
tslib_1.__exportStar(__nested_webpack_require_1066206__(38655), exports);
tslib_1.__exportStar(__nested_webpack_require_1066206__(72170), exports);
tslib_1.__exportStar(__nested_webpack_require_1066206__(87783), exports);
tslib_1.__exportStar(__nested_webpack_require_1066206__(88972), exports);


/***/ }),

/***/ 72170:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1066885__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isInlineBlock = exports.removeFormatForCollapsedSelection = void 0;
var dom_1 = __nested_webpack_require_1066885__(24263);
var constants_1 = __nested_webpack_require_1066885__(86893);
function removeFormatForCollapsedSelection(jodit, fake) {
    var s = jodit.s;
    var fakeNode = fake;
    if (!fakeNode) {
        fakeNode = jodit.createInside.fake();
        var range = s.range;
        dom_1.Dom.safeInsertNode(range, fakeNode);
        range.collapse();
    }
    var mainInline = dom_1.Dom.furthest(fakeNode, isInlineBlock, jodit.editor);
    if (mainInline) {
        if (s.cursorOnTheLeft(mainInline)) {
            dom_1.Dom.before(mainInline, fakeNode);
        }
        else if (s.cursorOnTheRight(mainInline)) {
            dom_1.Dom.after(mainInline, fakeNode);
        }
        else {
            var leftHand = s.splitSelection(mainInline);
            leftHand && dom_1.Dom.after(leftHand, fakeNode);
        }
    }
    if (!fake) {
        s.setCursorBefore(fakeNode);
        dom_1.Dom.safeRemove(fakeNode);
    }
}
exports.removeFormatForCollapsedSelection = removeFormatForCollapsedSelection;
function isInlineBlock(node) {
    return dom_1.Dom.isInlineBlock(node) && !dom_1.Dom.isTag(node, constants_1.INSEPARABLE_TAGS);
}
exports.isInlineBlock = isInlineBlock;


/***/ }),

/***/ 87783:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1068552__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.removeFormatForSelection = void 0;
var dom_1 = __nested_webpack_require_1068552__(24263);
var utils_1 = __nested_webpack_require_1068552__(76502);
var remove_format_for_collapsed_selection_1 = __nested_webpack_require_1068552__(72170);
function removeFormatForSelection(jodit) {
    var s = jodit.s, editor = jodit.editor, createInside = jodit.createInside, range = s.range, left = range.cloneRange(), right = range.cloneRange(), fakeLeft = createInside.fake(), fakeRight = createInside.fake();
    left.collapse(true);
    right.collapse(false);
    dom_1.Dom.safeInsertNode(left, fakeLeft);
    dom_1.Dom.safeInsertNode(right, fakeRight);
    range.setStartBefore(fakeLeft);
    range.collapse(true);
    s.selectRange(range);
    (0, remove_format_for_collapsed_selection_1.removeFormatForCollapsedSelection)(jodit, fakeLeft);
    range.setEndAfter(fakeRight);
    range.collapse(false);
    s.selectRange(range);
    (0, remove_format_for_collapsed_selection_1.removeFormatForCollapsedSelection)(jodit, fakeRight);
    var shouldUnwrap = [];
    dom_1.Dom.between(fakeLeft, fakeRight, function (node) {
        if ((0, remove_format_for_collapsed_selection_1.isInlineBlock)(node) && !dom_1.Dom.isTag(node, ['a'])) {
            shouldUnwrap.push(node);
        }
        if (dom_1.Dom.isElement(node) && (0, utils_1.attr)(node, 'style')) {
            (0, utils_1.attr)(node, 'style', null);
        }
    });
    shouldUnwrap.forEach(function (node) { return dom_1.Dom.unwrap(node); });
    var clearParent = function (node, left) {
        if (!dom_1.Dom.findNotEmptySibling(node, left)) {
            var pn = node.parentNode;
            if (pn && pn !== editor && (0, utils_1.attr)(pn, 'style')) {
                (0, utils_1.attr)(pn, 'style', null);
                clearParent(pn, left);
                return true;
            }
        }
    };
    clearParent(fakeLeft, true) && clearParent(fakeRight, false);
    range.setStartAfter(fakeLeft);
    range.setEndBefore(fakeRight);
    s.selectRange(range);
    dom_1.Dom.safeRemove(fakeLeft);
    dom_1.Dom.safeRemove(fakeRight);
}
exports.removeFormatForSelection = removeFormatForSelection;


/***/ }),

/***/ 9948:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1071073__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.allowAttributes = void 0;
var dom_1 = __nested_webpack_require_1071073__(24263);
function allowAttributes(jodit, nodeElm, hadEffect, allow) {
    if (allow && dom_1.Dom.isElement(nodeElm) && allow[nodeElm.nodeName] !== true) {
        var attrs = nodeElm.attributes;
        if (attrs && attrs.length) {
            var removeAttrs = [];
            for (var i = 0; i < attrs.length; i += 1) {
                var attr = allow[nodeElm.nodeName][attrs[i].name];
                if (!attr || (attr !== true && attr !== attrs[i].value)) {
                    removeAttrs.push(attrs[i].name);
                }
            }
            if (removeAttrs.length) {
                hadEffect = true;
            }
            removeAttrs.forEach(function (attr) {
                nodeElm.removeAttribute(attr);
            });
        }
    }
    return hadEffect;
}
exports.allowAttributes = allowAttributes;


/***/ }),

/***/ 74722:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1072370__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.fillEmptyParagraph = void 0;
var dom_1 = __nested_webpack_require_1072370__(24263);
var constants_1 = __nested_webpack_require_1072370__(86893);
function fillEmptyParagraph(jodit, nodeElm, hadEffect) {
    if (jodit.o.cleanHTML.fillEmptyParagraph &&
        dom_1.Dom.isBlock(nodeElm) &&
        dom_1.Dom.isEmpty(nodeElm, constants_1.INSEPARABLE_TAGS)) {
        var br = jodit.createInside.element('br');
        nodeElm.appendChild(br);
        return true;
    }
    return hadEffect;
}
exports.fillEmptyParagraph = fillEmptyParagraph;


/***/ }),

/***/ 2549:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1073288__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1073288__(20255);
tslib_1.__exportStar(__nested_webpack_require_1073288__(55901), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(9948), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(74722), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(75096), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(28194), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(94254), exports);
tslib_1.__exportStar(__nested_webpack_require_1073288__(64701), exports);


/***/ }),

/***/ 28194:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1074143__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.removeEmptyTextNode = void 0;
var dom_1 = __nested_webpack_require_1074143__(24263);
function removeEmptyTextNode(jodit, node, hadEffect, arg, argi, currentNode) {
    if (dom_1.Dom.isText(node) && !node.nodeValue) {
        if (node === currentNode && jodit.s.isCollapsed()) {
            jodit.s.setCursorAfter(node);
        }
        dom_1.Dom.safeRemove(node);
        return true;
    }
    return hadEffect;
}
exports.removeEmptyTextNode = removeEmptyTextNode;


/***/ }),

/***/ 94254:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1075005__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.removeInvTextNodes = void 0;
var constants_1 = __nested_webpack_require_1075005__(86893);
var dom_1 = __nested_webpack_require_1075005__(24263);
function removeInvTextNodes(jodit, node, hadEffect, arg, argi, currentNode) {
    if (currentNode === node || !dom_1.Dom.isText(node) || node.nodeValue == null) {
        return hadEffect;
    }
    if ((0, constants_1.INVISIBLE_SPACE_REG_EXP)().test(node.nodeValue)) {
        node.nodeValue = node.nodeValue.replace((0, constants_1.INVISIBLE_SPACE_REG_EXP)(), '');
        if (node === currentNode && jodit.s.isCollapsed()) {
            jodit.s.setCursorAfter(node);
        }
        if (!node.nodeValue) {
            dom_1.Dom.safeRemove(node);
        }
        return true;
    }
    return hadEffect;
}
exports.removeInvTextNodes = removeInvTextNodes;


/***/ }),

/***/ 55901:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1076190__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.replaceOldTags = void 0;
var dom_1 = __nested_webpack_require_1076190__(24263);
function replaceOldTags(jodit, nodeElm, hadEffect) {
    var newNodeElm = replaceIfMatched(jodit, nodeElm, jodit.o.cleanHTML.replaceOldTags);
    if (nodeElm !== newNodeElm) {
        nodeElm = newNodeElm;
        return true;
    }
    return hadEffect;
}
exports.replaceOldTags = replaceOldTags;
function replaceIfMatched(jodit, oldParent, list) {
    if (!list || !dom_1.Dom.isHTMLElement(oldParent)) {
        return oldParent;
    }
    var tagName = list[oldParent.nodeName.toLowerCase()] || list[oldParent.nodeName];
    if (tagName) {
        return dom_1.Dom.replace(oldParent, tagName, jodit.createInside, true, false);
    }
    return oldParent;
}


/***/ }),

/***/ 64701:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1077324__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.sanitizeAttributes = void 0;
var dom_1 = __nested_webpack_require_1077324__(24263);
var helpers_1 = __nested_webpack_require_1077324__(40332);
function sanitizeAttributes(jodit, nodeElm, hadEffect) {
    if (dom_1.Dom.isElement(nodeElm) &&
        (0, helpers_1.sanitizeHTMLElement)(nodeElm, {
            safeJavaScriptLink: jodit.options.cleanHTML.safeJavaScriptLink,
            removeOnError: jodit.options.cleanHTML.removeOnError
        })) {
        return true;
    }
    return hadEffect;
}
exports.sanitizeAttributes = sanitizeAttributes;


/***/ }),

/***/ 75096:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1078252__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.tryRemoveNode = void 0;
var dom_1 = __nested_webpack_require_1078252__(24263);
var constants_1 = __nested_webpack_require_1078252__(86893);
var trim_1 = __nested_webpack_require_1078252__(33941);
function tryRemoveNode(jodit, nodeElm, hadEffect, allowTags, denyTags, currentSelectionNode) {
    if (isRemovableNode(jodit, nodeElm, currentSelectionNode, allowTags, denyTags)) {
        dom_1.Dom.safeRemove(nodeElm);
        return true;
    }
    return hadEffect;
}
exports.tryRemoveNode = tryRemoveNode;
function isRemovableNode(jodit, node, current, allow, deny) {
    if (!dom_1.Dom.isText(node) &&
        ((allow && !allow[node.nodeName]) || (deny && deny[node.nodeName]))) {
        return true;
    }
    return (jodit.o.cleanHTML.removeEmptyElements &&
        dom_1.Dom.isElement(node) &&
        node.nodeName.match(constants_1.IS_INLINE) != null &&
        !dom_1.Dom.isTemporary(node) &&
        (0, trim_1.trim)(node.innerHTML).length === 0 &&
        (current == null || !dom_1.Dom.isOrContains(node, current)));
}


/***/ }),

/***/ 88972:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1079646__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.visitNodeWalker = void 0;
var tslib_1 = __nested_webpack_require_1079646__(20255);
var filters = __nested_webpack_require_1079646__(2549);
var keys = Object.keys(filters);
function visitNodeWalker(jodit, nodeElm, allowTags, denyTags, currentSelectionNode) {
    var e_1, _a;
    var hadEffect = false;
    var dcf = jodit.o.cleanHTML.disableCleanFilter;
    try {
        for (var keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
            var key = keys_1_1.value;
            if (dcf && dcf.has(key)) {
                continue;
            }
            var filter = filters[key];
            var tmp = hadEffect;
            hadEffect = filter(jodit, nodeElm, hadEffect, allowTags, denyTags, currentSelectionNode);
            if (false) // removed by dead control flow
{}
            if (!nodeElm.isConnected) {
                return true;
            }
        }
    }
    catch (e_1_1) { e_1 = { error: e_1_1 }; }
    finally {
        try {
            if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
        }
        finally { if (e_1) throw e_1.error; }
    }
    return hadEffect;
}
exports.visitNodeWalker = visitNodeWalker;


/***/ }),

/***/ 92138:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1081213__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.clipboard = void 0;
var constants_1 = __nested_webpack_require_1081213__(86893);
var helpers_1 = __nested_webpack_require_1081213__(40332);
var global_1 = __nested_webpack_require_1081213__(17332);
__nested_webpack_require_1081213__(31473);
var clipboard = (function () {
    function clipboard() {
        this.buttons = [
            {
                name: 'cut',
                group: 'clipboard'
            },
            {
                name: 'copy',
                group: 'clipboard'
            },
            {
                name: 'paste',
                group: 'clipboard'
            },
            {
                name: 'selectall',
                group: 'clipboard'
            }
        ];
    }
    clipboard.prototype.init = function (editor) {
        var _a;
        (_a = this.buttons) === null || _a === void 0 ? void 0 : _a.forEach(function (btn) { return editor.registerButton(btn); });
        editor.e
            .off("copy.".concat(constants_1.CLIPBOARD_ID, " cut.").concat(constants_1.CLIPBOARD_ID))
            .on("copy.".concat(constants_1.CLIPBOARD_ID, " cut.").concat(constants_1.CLIPBOARD_ID), function (event) {
            var _a;
            var selectedText = editor.s.html;
            var clipboardData = (0, helpers_1.getDataTransfer)(event) ||
                (0, helpers_1.getDataTransfer)(editor.ew) ||
                (0, helpers_1.getDataTransfer)(event.originalEvent);
            if (clipboardData) {
                clipboardData.setData(constants_1.TEXT_PLAIN, (0, helpers_1.stripTags)(selectedText));
                clipboardData.setData(constants_1.TEXT_HTML, selectedText);
            }
            editor.buffer.set(constants_1.CLIPBOARD_ID, selectedText);
            editor.e.fire('pasteStack', {
                html: selectedText,
                action: editor.o.defaultActionOnPaste ||
                    constants_1.INSERT_AS_HTML
            });
            if (event.type === 'cut') {
                editor.s.remove();
                editor.s.focus();
            }
            event.preventDefault();
            (_a = editor === null || editor === void 0 ? void 0 : editor.events) === null || _a === void 0 ? void 0 : _a.fire('afterCopy', selectedText);
        });
    };
    clipboard.prototype.destruct = function (editor) {
        var _a, _b;
        (_a = editor === null || editor === void 0 ? void 0 : editor.buffer) === null || _a === void 0 ? void 0 : _a.set(constants_1.CLIPBOARD_ID, '');
        (_b = editor === null || editor === void 0 ? void 0 : editor.events) === null || _b === void 0 ? void 0 : _b.off('.' + constants_1.CLIPBOARD_ID);
    };
    return clipboard;
}());
exports.clipboard = clipboard;
global_1.pluginSystem.add('clipboard', clipboard);


/***/ }),

/***/ 31473:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1084313__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1084313__(93166);
var icon_1 = __nested_webpack_require_1084313__(77904);
config_1.Config.prototype.controls.cut = {
    command: 'cut',
    isDisabled: function (editor) { return editor.s.isCollapsed(); },
    tooltip: 'Cut selection'
};
config_1.Config.prototype.controls.copy = {
    command: 'copy',
    isDisabled: function (editor) { return editor.s.isCollapsed(); },
    tooltip: 'Copy selection'
};
config_1.Config.prototype.controls.selectall = {
    icon: 'select-all',
    command: 'selectall',
    tooltip: 'Select all'
};
icon_1.Icon.set('copy', __nested_webpack_require_1084313__(50018))
    .set('cut', __nested_webpack_require_1084313__(99738))
    .set('paste', __nested_webpack_require_1084313__(9185))
    .set('select-all', __nested_webpack_require_1084313__(8619));


/***/ }),

/***/ 88412:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1085451__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.color = void 0;
var helpers_1 = __nested_webpack_require_1085451__(40332);
var global_1 = __nested_webpack_require_1085451__(17332);
__nested_webpack_require_1085451__(21924);
function color(editor) {
    editor.registerButton({
        name: 'brush',
        group: 'color'
    });
    var callback = function (command, second, third) {
        var colorHEX = (0, helpers_1.normalizeColor)(third);
        switch (command) {
            case 'background':
                editor.s.applyStyle({
                    backgroundColor: !colorHEX ? '' : colorHEX
                });
                break;
            case 'forecolor':
                editor.s.applyStyle({
                    color: !colorHEX ? '' : colorHEX
                });
                break;
        }
        editor.synchronizeValues();
        return false;
    };
    editor
        .registerCommand('forecolor', callback)
        .registerCommand('background', callback);
}
exports.color = color;
global_1.pluginSystem.add('color', color);


/***/ }),

/***/ 21924:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1086832__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1086832__(93166);
var helpers_1 = __nested_webpack_require_1086832__(40332);
var widget_1 = __nested_webpack_require_1086832__(718);
var icon_1 = __nested_webpack_require_1086832__(77904);
var dom_1 = __nested_webpack_require_1086832__(24263);
icon_1.Icon.set('brush', __nested_webpack_require_1086832__(73894));
config_1.Config.prototype.controls.brush = {
    update: function (button, editor) {
        var color = (0, helpers_1.dataBind)(button, 'color');
        var update = function (key, value) {
            if (value && value !== (0, helpers_1.css)(editor.editor, key).toString()) {
                button.state.icon.fill = value;
                return;
            }
        };
        if (color) {
            var mode = (0, helpers_1.dataBind)(button, 'color');
            update(mode === 'color' ? mode : 'background-color', color);
            return;
        }
        var current = editor.s.current();
        if (current && !button.state.disabled) {
            var currentBpx = dom_1.Dom.closest(current, dom_1.Dom.isElement, editor.editor) || editor.editor;
            update('color', (0, helpers_1.css)(currentBpx, 'color').toString());
            update('background-color', (0, helpers_1.css)(currentBpx, 'background-color').toString());
        }
        button.state.icon.fill = '';
        button.state.activated = false;
    },
    popup: function (editor, current, self, close, button) {
        var colorHEX = '', bg_color = '', tabs = [], currentElement = null;
        if (current && current !== editor.editor && dom_1.Dom.isNode(current)) {
            if (dom_1.Dom.isElement(current) &&
                editor.s.isCollapsed() &&
                !dom_1.Dom.isTag(current, ['br', 'hr'])) {
                currentElement = current;
            }
            dom_1.Dom.up(current, function (node) {
                if (dom_1.Dom.isHTMLElement(node)) {
                    var color = (0, helpers_1.css)(node, 'color', true), background = (0, helpers_1.css)(node, 'background-color', true);
                    if (color) {
                        colorHEX = color.toString();
                        return true;
                    }
                    if (background) {
                        bg_color = background.toString();
                        return true;
                    }
                }
            }, editor.editor);
        }
        var backgroundTag = (0, widget_1.ColorPickerWidget)(editor, function (value) {
            if (!currentElement) {
                editor.execCommand('background', false, value);
            }
            else {
                currentElement.style.backgroundColor = value;
            }
            (0, helpers_1.dataBind)(button, 'color', value);
            (0, helpers_1.dataBind)(button, 'color-mode', 'background');
            close();
        }, bg_color);
        var colorTab = (0, widget_1.ColorPickerWidget)(editor, function (value) {
            if (!currentElement) {
                editor.execCommand('forecolor', false, value);
            }
            else {
                currentElement.style.color = value;
            }
            (0, helpers_1.dataBind)(button, 'color', value);
            (0, helpers_1.dataBind)(button, 'color-mode', 'color');
            close();
        }, colorHEX);
        tabs = [
            {
                name: 'Background',
                content: backgroundTag
            },
            {
                name: 'Text',
                content: colorTab
            }
        ];
        if (editor.o.colorPickerDefaultTab !== 'background') {
            tabs = tabs.reverse();
        }
        return (0, widget_1.TabsWidget)(editor, tabs, currentElement);
    },
    exec: function (jodit, current, _a) {
        var button = _a.button;
        var mode = (0, helpers_1.dataBind)(button, 'color-mode'), color = (0, helpers_1.dataBind)(button, 'color');
        if (!mode) {
            return false;
        }
        if (current &&
            current !== jodit.editor &&
            dom_1.Dom.isNode(current) &&
            dom_1.Dom.isElement(current)) {
            switch (mode) {
                case 'color':
                    current.style.color = color;
                    break;
                case 'background':
                    current.style.backgroundColor = color;
                    break;
            }
        }
        else {
            jodit.execCommand(mode === 'background' ? mode : 'forecolor', false, color);
        }
    },
    tooltip: 'Fill color or set the text color'
};


/***/ }),

/***/ 79308:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1091745__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.copyFormat = void 0;
var config_1 = __nested_webpack_require_1091745__(93166);
var dom_1 = __nested_webpack_require_1091745__(24263);
var css_1 = __nested_webpack_require_1091745__(26911);
var global_1 = __nested_webpack_require_1091745__(17332);
var icon_1 = __nested_webpack_require_1091745__(77904);
var pluginKey = 'copy-format';
var copyStyles = [
    'fontWeight',
    'fontStyle',
    'fontSize',
    'color',
    'margin',
    'padding',
    'borderWidth',
    'borderStyle',
    'borderColor',
    'borderRadius',
    'backgroundColor',
    'textDecorationLine',
    'fontFamily'
];
var getStyle = function (editor, key, box, defaultStyles) {
    var result = (0, css_1.css)(box, key);
    if (result === defaultStyles[key]) {
        if (box.parentNode &&
            box !== editor.editor &&
            box.parentNode !== editor.editor) {
            result = getStyle(editor, key, box.parentNode, defaultStyles);
        }
        else {
            result = undefined;
        }
    }
    return result;
};
var getStyles = function (editor, box, defaultStyles) {
    var result = {};
    if (box) {
        copyStyles.forEach(function (key) {
            result[key] = getStyle(editor, key, box, defaultStyles);
            if (key.match(/border(Style|Color)/) && !result.borderWidth) {
                result[key] = undefined;
            }
        });
    }
    return result;
};
config_1.Config.prototype.controls.copyformat = {
    exec: function (editor, current, _a) {
        var button = _a.button;
        if (!current) {
            return;
        }
        if (editor.buffer.exists(pluginKey)) {
            editor.buffer.delete(pluginKey);
            editor.e.off(editor.editor, 'mouseup.' + pluginKey);
        }
        else {
            var defaultStyles_1 = {}, box = dom_1.Dom.up(current, function (elm) { return elm && !dom_1.Dom.isText(elm); }, editor.editor) || editor.editor;
            var ideal_1 = editor.createInside.span();
            editor.editor.appendChild(ideal_1);
            copyStyles.forEach(function (key) {
                defaultStyles_1[key] = (0, css_1.css)(ideal_1, key);
            });
            if (ideal_1 !== editor.editor) {
                dom_1.Dom.safeRemove(ideal_1);
            }
            var format_1 = getStyles(editor, box, defaultStyles_1);
            var onMouseUp = function () {
                editor.buffer.delete(pluginKey);
                var currentNode = editor.s.current();
                if (currentNode) {
                    if (dom_1.Dom.isTag(currentNode, 'img')) {
                        (0, css_1.css)(currentNode, format_1);
                    }
                    else {
                        editor.s.applyStyle(format_1);
                    }
                }
                editor.e.off(editor.editor, 'mouseup.' + pluginKey);
            };
            editor.e.on(editor.editor, 'mouseup.' + pluginKey, onMouseUp);
            editor.buffer.set(pluginKey, true);
        }
        button.update();
    },
    isActive: function (editor) { return editor.buffer.exists(pluginKey); },
    tooltip: 'Paint format'
};
function copyFormat(editor) {
    editor.registerButton({
        name: 'copyformat',
        group: 'clipboard'
    });
    (0, global_1.extendLang)(__nested_webpack_require_1091745__(9188));
}
exports.copyFormat = copyFormat;
global_1.pluginSystem.add('copyformat', copyFormat);
icon_1.Icon.set('copyformat', __nested_webpack_require_1091745__(83301));


/***/ }),

/***/ 9188:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1095533__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.zh_tw = exports.zh_cn = exports.tr = exports.ru = exports.pt_br = exports.pl = exports.nl = exports.mn = exports.ko = exports.ja = exports.it = exports.id = exports.hu = exports.he = exports.fr = exports.fa = exports.es = exports.de = exports.cs_cz = exports.ar = void 0;
var ar = __nested_webpack_require_1095533__(80078);
exports.ar = ar;
var cs_cz = __nested_webpack_require_1095533__(16986);
exports.cs_cz = cs_cz;
var de = __nested_webpack_require_1095533__(59347);
exports.de = de;
var es = __nested_webpack_require_1095533__(63640);
exports.es = es;
var fa = __nested_webpack_require_1095533__(53434);
exports.fa = fa;
var fr = __nested_webpack_require_1095533__(85638);
exports.fr = fr;
var he = __nested_webpack_require_1095533__(31743);
exports.he = he;
var hu = __nested_webpack_require_1095533__(66219);
exports.hu = hu;
var id = __nested_webpack_require_1095533__(50331);
exports.id = id;
var it = __nested_webpack_require_1095533__(25582);
exports.it = it;
var ja = __nested_webpack_require_1095533__(82066);
exports.ja = ja;
var ko = __nested_webpack_require_1095533__(71925);
exports.ko = ko;
var mn = __nested_webpack_require_1095533__(12689);
exports.mn = mn;
var nl = __nested_webpack_require_1095533__(65274);
exports.nl = nl;
var pl = __nested_webpack_require_1095533__(58548);
exports.pl = pl;
var pt_br = __nested_webpack_require_1095533__(82958);
exports.pt_br = pt_br;
var ru = __nested_webpack_require_1095533__(52315);
exports.ru = ru;
var tr = __nested_webpack_require_1095533__(87727);
exports.tr = tr;
var zh_cn = __nested_webpack_require_1095533__(9396);
exports.zh_cn = zh_cn;
var zh_tw = __nested_webpack_require_1095533__(28765);
exports.zh_tw = zh_tw;


/***/ }),

/***/ 9412:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1097328__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1097328__(93166);
config_1.Config.prototype.draggableTags = ['img', 'jodit-media', 'jodit'];


/***/ }),

/***/ 30598:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1097847__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.dragAndDropElement = void 0;
var tslib_1 = __nested_webpack_require_1097847__(20255);
var helpers_1 = __nested_webpack_require_1097847__(40332);
var plugin_1 = __nested_webpack_require_1097847__(57549);
var dom_1 = __nested_webpack_require_1097847__(64968);
var global_1 = __nested_webpack_require_1097847__(17332);
var decorators_1 = __nested_webpack_require_1097847__(43441);
__nested_webpack_require_1097847__(9412);
var DragState;
(function (DragState) {
    DragState[DragState["IDLE"] = 0] = "IDLE";
    DragState[DragState["WAIT_DRAGGING"] = 1] = "WAIT_DRAGGING";
    DragState[DragState["DRAGGING"] = 2] = "DRAGGING";
})(DragState || (DragState = {}));
var dragAndDropElement = (function (_super) {
    tslib_1.__extends(dragAndDropElement, _super);
    function dragAndDropElement() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.dragList = [];
        _this.draggable = null;
        _this.isCopyMode = false;
        _this.diffStep = 10;
        _this.startX = 0;
        _this.startY = 0;
        _this.state = DragState.IDLE;
        return _this;
    }
    dragAndDropElement.prototype.afterInit = function () {
        this.dragList = this.j.o.draggableTags
            ? (0, helpers_1.splitArray)(this.j.o.draggableTags)
                .filter(Boolean)
                .map(function (item) { return item.toLowerCase(); })
            : [];
        if (!this.dragList.length) {
            return;
        }
        this.j.e.on('mousedown dragstart', this.onDragStart);
    };
    dragAndDropElement.prototype.onDragStart = function (event) {
        var _this = this;
        if (event.type === 'dragstart' && this.draggable) {
            return false;
        }
        if (this.state > DragState.IDLE) {
            return;
        }
        var target = event.target;
        if (!this.dragList.length || !target) {
            return;
        }
        var matched = function (node) {
            return Boolean(node && _this.dragList.includes(node.nodeName.toLowerCase()));
        };
        var lastTarget = dom_1.Dom.furthest(target, matched, this.j.editor) ||
            (matched(target) ? target : null);
        if (!lastTarget) {
            return;
        }
        if (dom_1.Dom.isTag(lastTarget.parentElement, 'a') &&
            lastTarget.parentElement.firstChild === lastTarget &&
            lastTarget.parentElement.lastChild === lastTarget) {
            lastTarget = lastTarget.parentElement;
        }
        this.startX = event.clientX;
        this.startY = event.clientY;
        this.isCopyMode = (0, helpers_1.ctrlKey)(event);
        this.draggable = lastTarget.cloneNode(true);
        (0, helpers_1.dataBind)(this.draggable, 'target', lastTarget);
        this.state = DragState.WAIT_DRAGGING;
        this.addDragListeners();
    };
    dragAndDropElement.prototype.onDrag = function (event) {
        var _a, _b;
        if (!this.draggable || this.state === DragState.IDLE) {
            return;
        }
        var x = event.clientX, y = event.clientY;
        if (this.state === DragState.WAIT_DRAGGING &&
            Math.sqrt(Math.pow(x - this.startX, 2) + Math.pow(y - this.startY, 2)) < this.diffStep) {
            return;
        }
        if (this.state === DragState.WAIT_DRAGGING) {
            this.j.lock('drag-and-drop-element');
            this.state = DragState.DRAGGING;
        }
        this.j.e.fire('hidePopup hideResizer');
        if (!this.draggable.parentNode) {
            var target = (0, helpers_1.dataBind)(this.draggable, 'target');
            (0, helpers_1.css)(this.draggable, {
                zIndex: 10000000000000,
                pointerEvents: 'none',
                pointer: 'drag',
                position: 'fixed',
                opacity: 0.7,
                display: 'inline-block',
                left: event.clientX,
                top: event.clientY,
                width: (_a = target === null || target === void 0 ? void 0 : target.offsetWidth) !== null && _a !== void 0 ? _a : 100,
                height: (_b = target === null || target === void 0 ? void 0 : target.offsetHeight) !== null && _b !== void 0 ? _b : 100
            });
            (0, global_1.getContainer)(this.j, dragAndDropElement).appendChild(this.draggable);
        }
        (0, helpers_1.css)(this.draggable, {
            left: event.clientX,
            top: event.clientY
        });
        this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
    };
    dragAndDropElement.prototype.onDragEnd = function () {
        if (this.isInDestruct) {
            return;
        }
        this.removeDragListeners();
        this.j.unlock();
        this.state = DragState.IDLE;
        if (this.draggable) {
            dom_1.Dom.safeRemove(this.draggable);
            this.draggable = null;
        }
    };
    dragAndDropElement.prototype.onDrop = function () {
        if (!this.draggable || this.state < DragState.DRAGGING) {
            this.onDragEnd();
            return;
        }
        var fragment = (0, helpers_1.dataBind)(this.draggable, 'target');
        this.onDragEnd();
        if (this.isCopyMode) {
            fragment = fragment.cloneNode(true);
        }
        var parentElement = fragment.parentElement;
        this.j.s.insertNode(fragment, true, false);
        if (parentElement &&
            dom_1.Dom.isEmpty(parentElement) &&
            !dom_1.Dom.isTag(parentElement, ['td', 'th'])) {
            dom_1.Dom.safeRemove(parentElement);
        }
        if (dom_1.Dom.isTag(fragment, 'img') && this.j.e) {
            this.j.e.fire('afterInsertImage', fragment);
        }
        this.j.e.fire('synchro');
    };
    dragAndDropElement.prototype.addDragListeners = function () {
        this.j.e
            .on(this.j.editor, 'mousemove', this.onDrag)
            .on('mouseup', this.onDrop)
            .on([this.j.ew, this.ow], 'mouseup', this.onDragEnd);
    };
    dragAndDropElement.prototype.removeDragListeners = function () {
        this.j.e
            .off(this.j.editor, 'mousemove', this.onDrag)
            .off('mouseup', this.onDrop)
            .off([this.j.ew, this.ow], 'mouseup', this.onDragEnd);
    };
    dragAndDropElement.prototype.beforeDestruct = function () {
        this.onDragEnd();
        this.j.e.off('mousedown dragstart', this.onDragStart);
        this.removeDragListeners();
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDropElement.prototype, "onDragStart", null);
    tslib_1.__decorate([
        (0, decorators_1.throttle)(function (ctx) { return ctx.defaultTimeout / 10; })
    ], dragAndDropElement.prototype, "onDrag", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDropElement.prototype, "onDragEnd", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDropElement.prototype, "onDrop", null);
    return dragAndDropElement;
}(plugin_1.Plugin));
exports.dragAndDropElement = dragAndDropElement;
global_1.pluginSystem.add('dragAndDropElement', dragAndDropElement);


/***/ }),

/***/ 19268:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1105221__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.dragAndDrop = void 0;
var tslib_1 = __nested_webpack_require_1105221__(20255);
var constants_1 = __nested_webpack_require_1105221__(86893);
var dom_1 = __nested_webpack_require_1105221__(24263);
var helpers_1 = __nested_webpack_require_1105221__(40332);
var plugin_1 = __nested_webpack_require_1105221__(57549);
var decorators_1 = __nested_webpack_require_1105221__(43441);
var file_browser_1 = __nested_webpack_require_1105221__(63463);
var global_1 = __nested_webpack_require_1105221__(17332);
var dragAndDrop = (function (_super) {
    tslib_1.__extends(dragAndDrop, _super);
    function dragAndDrop() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isFragmentFromEditor = false;
        _this.isCopyMode = false;
        _this.startDragPoint = { x: 0, y: 0 };
        _this.draggable = null;
        _this.bufferRange = null;
        _this.getText = function (event) {
            var dt = (0, helpers_1.getDataTransfer)(event);
            return dt ? dt.getData(constants_1.TEXT_HTML) || dt.getData(constants_1.TEXT_PLAIN) : null;
        };
        return _this;
    }
    dragAndDrop.prototype.afterInit = function () {
        this.j.e.on([window, this.j.ed, this.j.editor], 'dragstart.DragAndDrop', this.onDragStart);
    };
    dragAndDrop.prototype.onDragStart = function (event) {
        var target = event.target;
        this.onDragEnd();
        this.isFragmentFromEditor = dom_1.Dom.isOrContains(this.j.editor, target, true);
        this.isCopyMode = this.isFragmentFromEditor ? (0, helpers_1.ctrlKey)(event) : true;
        if (this.isFragmentFromEditor) {
            var sel = this.j.s.sel;
            var range = sel && sel.rangeCount ? sel.getRangeAt(0) : null;
            if (range) {
                this.bufferRange = range.cloneRange();
            }
        }
        else {
            this.bufferRange = null;
        }
        this.startDragPoint.x = event.clientX;
        this.startDragPoint.y = event.clientY;
        if ((0, file_browser_1.isFileBrowserFilesItem)(target)) {
            target = target.querySelector('img');
        }
        if (dom_1.Dom.isTag(target, 'img')) {
            this.draggable = target.cloneNode(true);
            (0, helpers_1.dataBind)(this.draggable, 'target', target);
        }
        this.addDragListeners();
    };
    dragAndDrop.prototype.addDragListeners = function () {
        this.j.e
            .on('dragover', this.onDrag)
            .on('drop.DragAndDrop', this.onDrop)
            .on(window, 'dragend.DragAndDrop drop.DragAndDrop mouseup.DragAndDrop', this.onDragEnd);
    };
    dragAndDrop.prototype.removeDragListeners = function () {
        this.j.e
            .off('dragover', this.onDrag)
            .off('drop.DragAndDrop', this.onDrop)
            .off(window, 'dragend.DragAndDrop drop.DragAndDrop mouseup.DragAndDrop', this.onDragEnd);
    };
    dragAndDrop.prototype.onDrag = function (event) {
        if (this.draggable) {
            this.j.e.fire('hidePopup');
            this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
            event.preventDefault();
            event.stopPropagation();
        }
    };
    dragAndDrop.prototype.onDragEnd = function () {
        if (this.draggable) {
            dom_1.Dom.safeRemove(this.draggable);
            this.draggable = null;
        }
        this.isCopyMode = false;
        this.removeDragListeners();
    };
    dragAndDrop.prototype.onDrop = function (event) {
        if (!event.dataTransfer ||
            !event.dataTransfer.files ||
            !event.dataTransfer.files.length) {
            if (!this.isFragmentFromEditor && !this.draggable) {
                this.j.e.fire('paste', event);
                event.preventDefault();
                event.stopPropagation();
                return false;
            }
            var sel = this.j.s.sel;
            var range = this.bufferRange ||
                (sel && sel.rangeCount ? sel.getRangeAt(0) : null);
            var fragment = null;
            if (!this.draggable && range) {
                fragment = this.isCopyMode
                    ? range.cloneContents()
                    : range.extractContents();
            }
            else if (this.draggable) {
                if (this.isCopyMode) {
                    var _a = tslib_1.__read((0, helpers_1.attr)(this.draggable, '-is-file') === '1'
                        ? ['a', 'href']
                        : ['img', 'src'], 2), tagName = _a[0], field = _a[1];
                    fragment = this.j.createInside.element(tagName);
                    fragment.setAttribute(field, (0, helpers_1.attr)(this.draggable, 'data-src') ||
                        (0, helpers_1.attr)(this.draggable, 'src') ||
                        '');
                    if (tagName === 'a') {
                        fragment.textContent = (0, helpers_1.attr)(fragment, field) || '';
                    }
                }
                else {
                    fragment = (0, helpers_1.dataBind)(this.draggable, 'target');
                }
            }
            else if (this.getText(event)) {
                fragment = this.j.createInside.fromHTML(this.getText(event));
            }
            sel && sel.removeAllRanges();
            this.j.s.insertCursorAtPoint(event.clientX, event.clientY);
            if (fragment) {
                this.j.s.insertNode(fragment, false, false);
                if (range && fragment.firstChild && fragment.lastChild) {
                    range.setStartBefore(fragment.firstChild);
                    range.setEndAfter(fragment.lastChild);
                    this.j.s.selectRange(range);
                    this.j.e.fire('synchro');
                }
                if (dom_1.Dom.isTag(fragment, 'img') && this.j.events) {
                    this.j.e.fire('afterInsertImage', fragment);
                }
            }
            event.preventDefault();
            event.stopPropagation();
        }
        this.isFragmentFromEditor = false;
        this.removeDragListeners();
    };
    dragAndDrop.prototype.beforeDestruct = function () {
        this.onDragEnd();
        this.j.e
            .off(window, '.DragAndDrop')
            .off('.DragAndDrop')
            .off([window, this.j.ed, this.j.editor], 'dragstart.DragAndDrop', this.onDragStart);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDrop.prototype, "onDragStart", null);
    tslib_1.__decorate([
        (0, decorators_1.throttle)(function (ctx) { return ctx.defaultTimeout / 10; })
    ], dragAndDrop.prototype, "onDrag", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDrop.prototype, "onDragEnd", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], dragAndDrop.prototype, "onDrop", null);
    return dragAndDrop;
}(plugin_1.Plugin));
exports.dragAndDrop = dragAndDrop;
global_1.pluginSystem.add('dragAndDrop', dragAndDrop);


/***/ }),

/***/ 95049:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1112479__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1112479__(20255);
tslib_1.__exportStar(__nested_webpack_require_1112479__(69516), exports);


/***/ }),

/***/ 69516:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1112981__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.removeExtraBr = void 0;
var dom_1 = __nested_webpack_require_1112981__(24263);
function removeExtraBr(jodit, node) {
    if (!jodit.o.dtd.removeExtraBr || dom_1.Dom.isTag(node, 'br')) {
        return;
    }
    var parent = dom_1.Dom.furthest(node, dom_1.Dom.isBlock, jodit.editor);
    if (parent && !dom_1.Dom.isTag(parent, ['table', 'pre', 'blockquote', 'code'])) {
        var br = dom_1.Dom.isTag(node, 'br')
            ? node
            : dom_1.Dom.findNotEmptySibling(node, false);
        if (!dom_1.Dom.isTag(br, 'br')) {
            return;
        }
        jodit.s.setCursorBefore(br);
        dom_1.Dom.safeRemove(br);
    }
}
exports.removeExtraBr = removeExtraBr;


/***/ }),

/***/ 73967:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1114057__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkBlockNesting = void 0;
var dom_1 = __nested_webpack_require_1114057__(24263);
function checkBlockNesting(jodit, node) {
    if (dom_1.Dom.isFragment(node)) {
        node = node.firstChild;
    }
    if (jodit.o.dtd.checkBlockNesting && dom_1.Dom.isBlock(node)) {
        var parent = dom_1.Dom.furthest(jodit.s.current(), dom_1.Dom.isBlock, jodit.editor);
        if (parent && !jodit.o.dtd.blockLimits[parent.tagName.toLowerCase()]) {
            jodit.s.setCursorAfter(parent);
            if (dom_1.Dom.isEmpty(parent)) {
                dom_1.Dom.safeRemove(parent);
            }
        }
    }
}
exports.checkBlockNesting = checkBlockNesting;


/***/ }),

/***/ 73690:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1115107__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1115107__(20255);
tslib_1.__exportStar(__nested_webpack_require_1115107__(73967), exports);


/***/ }),

/***/ 20173:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1115609__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1115609__(93166);
config_1.Config.prototype.dtd = {
    removeExtraBr: true,
    checkBlockNesting: true,
    blockLimits: {
        article: 1,
        aside: 1,
        audio: 1,
        body: 1,
        caption: 1,
        details: 1,
        dir: 1,
        div: 1,
        dl: 1,
        fieldset: 1,
        figcaption: 1,
        figure: 1,
        footer: 1,
        form: 1,
        header: 1,
        hgroup: 1,
        main: 1,
        menu: 1,
        nav: 1,
        ol: 1,
        section: 1,
        table: 1,
        td: 1,
        th: 1,
        tr: 1,
        ul: 1,
        video: 1
    }
};


/***/ }),

/***/ 96899:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1116646__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1116646__(20255);
var plugin_1 = __nested_webpack_require_1116646__(57549);
var global_1 = __nested_webpack_require_1116646__(17332);
var watch_1 = __nested_webpack_require_1116646__(46163);
__nested_webpack_require_1116646__(20173);
var beforeInsertCases = __nested_webpack_require_1116646__(73690);
var afterInsertCases = __nested_webpack_require_1116646__(95049);
var dtd = (function (_super) {
    tslib_1.__extends(dtd, _super);
    function dtd() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    dtd.prototype.afterInit = function (jodit) { };
    dtd.prototype.beforeDestruct = function (jodit) { };
    dtd.prototype.__onBeforeInsertNode = function (node) {
        var _this = this;
        var casesKeys = Object.keys(beforeInsertCases);
        casesKeys.forEach(function (key) {
            beforeInsertCases[key](_this.j, node);
        });
    };
    dtd.prototype.__onAfterInsertNode = function (node) {
        var _this = this;
        var casesKeys = Object.keys(afterInsertCases);
        casesKeys.forEach(function (key) {
            afterInsertCases[key](_this.j, node);
        });
    };
    tslib_1.__decorate([
        (0, watch_1.watch)(':beforeInsertNode')
    ], dtd.prototype, "__onBeforeInsertNode", null);
    tslib_1.__decorate([
        (0, watch_1.watch)(':afterInsertNode')
    ], dtd.prototype, "__onAfterInsertNode", null);
    return dtd;
}(plugin_1.Plugin));
global_1.pluginSystem.add('dtd', dtd);


/***/ }),

/***/ 33122:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1118455__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.enter = void 0;
var tslib_1 = __nested_webpack_require_1118455__(20255);
var dom_1 = __nested_webpack_require_1118455__(24263);
var plugin_1 = __nested_webpack_require_1118455__(85605);
var constants_1 = __nested_webpack_require_1118455__(86893);
var decorators_1 = __nested_webpack_require_1118455__(43441);
var is_boolean_1 = __nested_webpack_require_1118455__(67749);
var helpers_1 = __nested_webpack_require_1118455__(23217);
var global_1 = __nested_webpack_require_1118455__(17332);
__nested_webpack_require_1118455__(26231);
var enter = (function (_super) {
    tslib_1.__extends(enter, _super);
    function enter() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    enter.prototype.afterInit = function (editor) {
        var _this = this;
        var defaultTag = editor.o.enter.toLowerCase();
        var brMode = defaultTag === constants_1.BR.toLowerCase();
        if (!editor.o.enterBlock) {
            editor.o.enterBlock = brMode
                ? constants_1.PARAGRAPH
                : defaultTag;
        }
        editor.registerCommand('enter', function (command, value, event) {
            if (event === void 0) { event = {}; }
            return _this.onEnter(event);
        });
    };
    enter.prototype.onEnterKeyDown = function (event) {
        if (event.key === constants_1.KEY_ENTER) {
            var editor = this.j;
            var beforeEnter = editor.e.fire('beforeEnter', event);
            if (beforeEnter !== undefined) {
                return beforeEnter;
            }
            if (!editor.s.isCollapsed()) {
                editor.execCommand('Delete');
            }
            editor.s.focus();
            this.onEnter(event);
            editor.e.fire('afterEnter', event);
            editor.synchronizeValues();
            return false;
        }
    };
    enter.prototype.onEnter = function (event) {
        var jodit = this.jodit;
        var fake = jodit.createInside.fake();
        try {
            dom_1.Dom.safeInsertNode(jodit.s.range, fake);
            (0, helpers_1.moveCursorOutFromSpecialTags)(jodit, fake, ['a']);
            var block = (0, helpers_1.getBlockWrapper)(fake, jodit);
            var isLi = dom_1.Dom.isTag(block, 'li');
            if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) &&
                (0, helpers_1.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey)) {
                return false;
            }
            if (!block && !(0, helpers_1.hasPreviousBlock)(fake, jodit)) {
                block = (0, helpers_1.wrapText)(fake, jodit);
            }
            if (!block) {
                (0, helpers_1.insertParagraph)(fake, jodit, isLi ? 'li' : jodit.o.enter);
                return false;
            }
            if (!(0, helpers_1.checkUnsplittableBox)(fake, jodit, block)) {
                return false;
            }
            if (isLi && this.__isEmptyListLeaf(block)) {
                (0, helpers_1.processEmptyLILeaf)(fake, jodit, block);
                return false;
            }
            (0, helpers_1.splitFragment)(fake, jodit, block);
        }
        finally {
            fake.isConnected && jodit.s.setCursorBefore(fake);
            dom_1.Dom.safeRemove(fake);
        }
    };
    enter.prototype.__isEmptyListLeaf = function (li) {
        var result = this.j.e.fire('enterIsEmptyListLeaf', li);
        return (0, is_boolean_1.isBoolean)(result) ? result : dom_1.Dom.isEmpty(li);
    };
    enter.prototype.beforeDestruct = function (editor) {
        editor.e.off('keydown.enter');
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':keydown.enter')
    ], enter.prototype, "onEnterKeyDown", null);
    return enter;
}(plugin_1.Plugin));
exports.enter = enter;
global_1.pluginSystem.add('enter', enter);


/***/ }),

/***/ 94149:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1122583__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkBR = void 0;
var dom_1 = __nested_webpack_require_1122583__(24263);
var scroll_into_view_1 = __nested_webpack_require_1122583__(9005);
var constants_1 = __nested_webpack_require_1122583__(86893);
function checkBR(fake, jodit, shiftKeyPressed) {
    var isMultiLineBlock = Boolean(dom_1.Dom.closest(fake, ['pre', 'blockquote'], jodit.editor));
    var isBRMode = jodit.o.enter.toLowerCase() === constants_1.BR.toLowerCase();
    if (isBRMode ||
        (shiftKeyPressed && !isMultiLineBlock) ||
        (!shiftKeyPressed && isMultiLineBlock)) {
        if (isMultiLineBlock && checkSeveralBR(fake)) {
            return false;
        }
        var br = jodit.createInside.element('br');
        dom_1.Dom.before(fake, br);
        if (!dom_1.Dom.findNotEmptySibling(br, false)) {
            var clone = br.cloneNode();
            dom_1.Dom.after(br, clone);
            dom_1.Dom.before(clone, fake);
        }
        (0, scroll_into_view_1.scrollIntoViewIfNeeded)(br, jodit.editor, jodit.ed);
        return true;
    }
    return false;
}
exports.checkBR = checkBR;
function checkSeveralBR(fake) {
    var preBr = brBefore(brBefore(fake));
    if (preBr) {
        dom_1.Dom.safeRemove(brBefore(fake));
        dom_1.Dom.safeRemove(preBr);
        return true;
    }
    return false;
}
function brBefore(start) {
    if (!start) {
        return false;
    }
    var prev = dom_1.Dom.findSibling(start, true);
    if (!prev || !dom_1.Dom.isTag(prev, 'br')) {
        return false;
    }
    return prev;
}


/***/ }),

/***/ 58921:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1124464__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.checkUnsplittableBox = void 0;
var dom_1 = __nested_webpack_require_1124464__(24263);
function checkUnsplittableBox(fake, jodit, currentBox) {
    if (!dom_1.Dom.canSplitBlock(currentBox)) {
        dom_1.Dom.before(fake, jodit.createInside.element('br'));
        return false;
    }
    return true;
}
exports.checkUnsplittableBox = checkUnsplittableBox;


/***/ }),

/***/ 70638:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1125215__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getBlockWrapper = void 0;
var consts = __nested_webpack_require_1125215__(86893);
var dom_1 = __nested_webpack_require_1125215__(24263);
function getBlockWrapper(fake, jodit, tagReg) {
    if (tagReg === void 0) { tagReg = consts.IS_BLOCK; }
    var node = fake;
    var root = jodit.editor;
    do {
        if (!node || node === root) {
            break;
        }
        if (tagReg.test(node.nodeName)) {
            if (dom_1.Dom.isTag(node, 'li')) {
                return node;
            }
            return (getBlockWrapper(node.parentNode, jodit, /^li$/i) ||
                node);
        }
        node = node.parentNode;
    } while (node && node !== root);
    return null;
}
exports.getBlockWrapper = getBlockWrapper;


/***/ }),

/***/ 50781:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1126330__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hasPreviousBlock = void 0;
var dom_1 = __nested_webpack_require_1126330__(24263);
function hasPreviousBlock(fake, jodit) {
    return Boolean(dom_1.Dom.prev(fake, function (elm) { return dom_1.Dom.isBlock(elm) || dom_1.Dom.isImage(elm); }, jodit.editor));
}
exports.hasPreviousBlock = hasPreviousBlock;


/***/ }),

/***/ 23217:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1127027__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1127027__(20255);
tslib_1.__exportStar(__nested_webpack_require_1127027__(94149), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(58921), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(92291), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(70638), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(50781), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(90443), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(52521), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(81512), exports);
tslib_1.__exportStar(__nested_webpack_require_1127027__(29575), exports);


/***/ }),

/***/ 90443:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1128001__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.insertParagraph = void 0;
var dom_1 = __nested_webpack_require_1128001__(24263);
var scroll_into_view_1 = __nested_webpack_require_1128001__(9005);
function insertParagraph(fake, editor, wrapperTag, style) {
    var isBR = wrapperTag.toLowerCase() === 'br', createInside = editor.createInside, p = createInside.element(wrapperTag), br = createInside.element('br');
    if (!isBR) {
        p.appendChild(br);
    }
    if (style && style.cssText) {
        p.setAttribute('style', style.cssText);
    }
    dom_1.Dom.after(fake, p);
    dom_1.Dom.before(isBR ? p : br, fake);
    (0, scroll_into_view_1.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
    return p;
}
exports.insertParagraph = insertParagraph;


/***/ }),

/***/ 29575:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1129096__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.moveCursorOutFromSpecialTags = void 0;
var dom_1 = __nested_webpack_require_1129096__(24263);
function moveCursorOutFromSpecialTags(jodit, fake, tags) {
    var s = jodit.s;
    var link = dom_1.Dom.closest(fake, tags, jodit.editor);
    if (link) {
        if (s.cursorOnTheRight(link, fake)) {
            dom_1.Dom.after(link, fake);
        }
        else if (s.cursorOnTheLeft(link, fake)) {
            dom_1.Dom.before(link, fake);
        }
    }
}
exports.moveCursorOutFromSpecialTags = moveCursorOutFromSpecialTags;


/***/ }),

/***/ 92291:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1130016__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.processEmptyLILeaf = void 0;
var dom_1 = __nested_webpack_require_1130016__(24263);
var selector_1 = __nested_webpack_require_1130016__(54188);
var insert_paragraph_1 = __nested_webpack_require_1130016__(90443);
function processEmptyLILeaf(fake, jodit, li) {
    var list = dom_1.Dom.closest(li, ['ol', 'ul'], jodit.editor);
    if (!list) {
        return;
    }
    var parentLi = list.parentElement, listInsideLeaf = dom_1.Dom.isTag(parentLi, 'li');
    var container = listInsideLeaf ? parentLi : list;
    var leftRange = jodit.s.createRange();
    leftRange.setStartAfter(li);
    leftRange.setEndAfter(list);
    var rightPart = leftRange.extractContents();
    dom_1.Dom.after(container, fake);
    dom_1.Dom.safeRemove(li);
    if (!(0, selector_1.$$)('li', list).length) {
        dom_1.Dom.safeRemove(list);
    }
    var newLi = (0, insert_paragraph_1.insertParagraph)(fake, jodit, listInsideLeaf ? 'li' : jodit.o.enter);
    if (!rightPart.querySelector('li')) {
        return;
    }
    if (listInsideLeaf) {
        newLi.appendChild(rightPart);
    }
    else {
        dom_1.Dom.after(newLi, rightPart);
    }
}
exports.processEmptyLILeaf = processEmptyLILeaf;


/***/ }),

/***/ 52521:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1131559__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.splitFragment = void 0;
var scroll_into_view_1 = __nested_webpack_require_1131559__(9005);
var dom_1 = __nested_webpack_require_1131559__(24263);
var insert_paragraph_1 = __nested_webpack_require_1131559__(90443);
function splitFragment(fake, jodit, block) {
    var sel = jodit.s, enter = jodit.o.enter;
    var defaultTag = enter.toLowerCase();
    var isLi = dom_1.Dom.isTag(block, 'li');
    var canSplit = block.tagName.toLowerCase() === defaultTag || isLi;
    var cursorOnTheRight = sel.cursorOnTheRight(block, fake);
    var cursorOnTheLeft = sel.cursorOnTheLeft(block, fake);
    if (!canSplit && (cursorOnTheRight || cursorOnTheLeft)) {
        if (cursorOnTheRight) {
            dom_1.Dom.after(block, fake);
        }
        else {
            dom_1.Dom.before(block, fake);
        }
        (0, insert_paragraph_1.insertParagraph)(fake, jodit, defaultTag);
        if (cursorOnTheLeft && !cursorOnTheRight) {
            dom_1.Dom.prepend(block, fake);
        }
        return;
    }
    var newP = sel.splitSelection(block, fake);
    (0, scroll_into_view_1.scrollIntoViewIfNeeded)(newP, jodit.editor, jodit.ed);
}
exports.splitFragment = splitFragment;


/***/ }),

/***/ 81512:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1133095__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.wrapText = void 0;
var dom_1 = __nested_webpack_require_1133095__(24263);
function wrapText(fake, jodit) {
    var needWrap = fake;
    dom_1.Dom.up(needWrap, function (node) {
        if (node && node.hasChildNodes() && node !== jodit.editor) {
            needWrap = node;
        }
    }, jodit.editor);
    var currentBox = dom_1.Dom.wrapInline(needWrap, jodit.o.enter, jodit);
    if (dom_1.Dom.isEmpty(currentBox)) {
        var br = jodit.createInside.element('br');
        currentBox.appendChild(br);
        dom_1.Dom.before(br, fake);
    }
    return currentBox;
}
exports.wrapText = wrapText;


/***/ }),

/***/ 26231:
/***/ (function() {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */


/***/ }),

/***/ 10135:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1134378__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.file = void 0;
var config_1 = __nested_webpack_require_1134378__(93166);
var dom_1 = __nested_webpack_require_1134378__(24263);
var widget_1 = __nested_webpack_require_1134378__(718);
var global_1 = __nested_webpack_require_1134378__(17332);
config_1.Config.prototype.controls.file = {
    popup: function (editor, current, self, close) {
        var insert = function (url, title) {
            if (title === void 0) { title = ''; }
            editor.s.insertNode(editor.createInside.fromHTML("<a href=\"".concat(url, "\" title=\"").concat(title, "\">").concat(title || url, "</a>")));
        };
        var sourceAnchor = null;
        if (current &&
            (dom_1.Dom.isTag(current, 'a') ||
                dom_1.Dom.closest(current, 'a', editor.editor))) {
            sourceAnchor = dom_1.Dom.isTag(current, 'a')
                ? current
                : dom_1.Dom.closest(current, 'a', editor.editor);
        }
        return (0, widget_1.FileSelectorWidget)(editor, {
            filebrowser: function (data) {
                data.files &&
                    data.files.forEach(function (file) { return insert(data.baseurl + file); });
                close();
            },
            upload: true,
            url: function (url, text) {
                if (sourceAnchor) {
                    sourceAnchor.setAttribute('href', url);
                    sourceAnchor.setAttribute('title', text);
                }
                else {
                    insert(url, text);
                }
                close();
            }
        }, sourceAnchor, close, false);
    },
    tags: ['a'],
    tooltip: 'Insert file'
};
function file(editor) {
    editor.registerButton({
        name: 'file',
        group: 'media'
    });
}
exports.file = file;
global_1.pluginSystem.add('file', file);


/***/ }),

/***/ 66994:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1136546__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.focus = void 0;
var config_1 = __nested_webpack_require_1136546__(93166);
var dom_1 = __nested_webpack_require_1136546__(64968);
var global_1 = __nested_webpack_require_1136546__(17332);
config_1.Config.prototype.autofocus = false;
config_1.Config.prototype.cursorAfterAutofocus = 'end';
config_1.Config.prototype.saveSelectionOnBlur = true;
function focus(editor) {
    if (editor.o.saveSelectionOnBlur) {
        editor.e
            .on('blur', function () {
            if (editor.isEditorMode()) {
                editor.s.save(true);
            }
        })
            .on('focus', function () {
            editor.s.restore();
        });
    }
    var focus = function () {
        editor.s.focus();
        if (editor.o.cursorAfterAutofocus === 'end') {
            var lastTextNode = dom_1.Dom.last(editor.editor, function (node) {
                return dom_1.Dom.isText(node);
            });
            if (lastTextNode) {
                editor.s.setCursorIn(lastTextNode, false);
            }
        }
    };
    editor.e.on('afterInit', function () {
        if (editor.o.autofocus) {
            if (editor.defaultTimeout) {
                editor.async.setTimeout(focus, 300);
            }
            else {
                focus();
            }
        }
    });
    editor.e.on('afterInit afterAddPlace', function () {
        editor.e
            .off(editor.editor, 'mousedown.autofocus')
            .on(editor.editor, 'mousedown.autofocus', function (e) {
            if (editor.isEditorMode() &&
                e.target &&
                dom_1.Dom.isBlock(e.target) &&
                !e.target.childNodes.length) {
                if (editor.editor === e.target) {
                    editor.s.focus();
                }
                else {
                    editor.s.setCursorIn(e.target);
                }
            }
        });
    });
}
exports.focus = focus;
global_1.pluginSystem.add('focus', focus);


/***/ }),

/***/ 8082:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1138861__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1138861__(20255);
var config_1 = __nested_webpack_require_1138861__(93166);
var dom_1 = __nested_webpack_require_1138861__(24263);
var utils_1 = __nested_webpack_require_1138861__(76502);
var icon_1 = __nested_webpack_require_1138861__(77904);
config_1.Config.prototype.defaultFontSizePoints = 'px';
icon_1.Icon.set('font', __nested_webpack_require_1138861__(84142)).set('fontsize', __nested_webpack_require_1138861__(57292));
config_1.Config.prototype.controls.fontsize = {
    command: 'fontsize',
    data: {
        cssRule: 'font-size'
    },
    list: [
        '8',
        '9',
        '10',
        '11',
        '12',
        '14',
        '16',
        '18',
        '24',
        '30',
        '36',
        '48',
        '60',
        '72',
        '96'
    ],
    exec: function (editor, event, _a) {
        var control = _a.control;
        return (0, utils_1.memorizeExec)(editor, event, { control: control }, function (value) {
            var _a;
            if (((_a = control.command) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'fontsize') {
                return "".concat(value).concat(editor.o.defaultFontSizePoints);
            }
            return value;
        });
    },
    childTemplate: function (editor, key, value) {
        return "".concat(value).concat(editor.o.defaultFontSizePoints);
    },
    tooltip: 'Font size',
    isChildActive: function (editor, control) {
        var _a, _b;
        var current = editor.s.current(), cssKey = ((_a = control.data) === null || _a === void 0 ? void 0 : _a.cssRule) || 'font-size', normalize = ((_b = control.data) === null || _b === void 0 ? void 0 : _b.normalize) ||
            (function (v) {
                if (/pt$/i.test(v) &&
                    editor.o.defaultFontSizePoints === 'pt') {
                    return v.replace(/pt$/i, '');
                }
                return v;
            });
        if (current) {
            var currentBpx = dom_1.Dom.closest(current, dom_1.Dom.isElement, editor.editor) || editor.editor;
            var value = (0, utils_1.css)(currentBpx, cssKey);
            return Boolean(value &&
                control.args &&
                normalize(control.args[0].toString()) ===
                    normalize(value.toString()));
        }
        return false;
    }
};
config_1.Config.prototype.controls.font = tslib_1.__assign(tslib_1.__assign({}, config_1.Config.prototype.controls.fontsize), { command: 'fontname', list: {
        '': 'Default',
        'helvetica,sans-serif': 'Helvetica',
        'arial,helvetica,sans-serif': 'Arial',
        'georgia,palatino,serif': 'Georgia',
        'impact,charcoal,sans-serif': 'Impact',
        'tahoma,geneva,sans-serif': 'Tahoma',
        'times new roman,times,serif': 'Times New Roman',
        'verdana,geneva,sans-serif': 'Verdana'
    }, childTemplate: function (editor, key, value) {
        var isAvailable = false;
        try {
            isAvailable =
                key.indexOf('dings') === -1 &&
                    document.fonts.check("16px ".concat(key), value);
        }
        catch (_a) { }
        return "<span data-style=\"".concat(key, "\" style=\"").concat(isAvailable ? "font-family: ".concat(key, "!important;") : '', "\">").concat(value, "</span>");
    }, data: {
        cssRule: 'font-family',
        normalize: function (v) {
            return v
                .toLowerCase()
                .replace(/['"]+/g, '')
                .replace(/[^a-z0-9]+/g, ',');
        }
    }, tooltip: 'Font family' });


/***/ }),

/***/ 54798:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1142735__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.font = void 0;
var helpers_1 = __nested_webpack_require_1142735__(40332);
var global_1 = __nested_webpack_require_1142735__(17332);
__nested_webpack_require_1142735__(8082);
function font(editor) {
    editor
        .registerButton({
        name: 'font',
        group: 'font'
    })
        .registerButton({
        name: 'fontsize',
        group: 'font'
    });
    var callback = function (command, second, third) {
        switch (command) {
            case 'fontsize':
                editor.s.applyStyle({
                    fontSize: (0, helpers_1.normalizeSize)(third)
                });
                break;
            case 'fontname':
                editor.s.applyStyle({
                    fontFamily: third
                });
                break;
        }
        editor.synchronizeValues();
        return false;
    };
    editor
        .registerCommand('fontsize', callback)
        .registerCommand('fontname', callback);
}
exports.font = font;
global_1.pluginSystem.add('font', font);


/***/ }),

/***/ 12908:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1144118__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.formatBlock = void 0;
var config_1 = __nested_webpack_require_1144118__(93166);
var modules_1 = __nested_webpack_require_1144118__(87837);
var helpers_1 = __nested_webpack_require_1144118__(40332);
var global_1 = __nested_webpack_require_1144118__(17332);
var icon_1 = __nested_webpack_require_1144118__(77904);
icon_1.Icon.set('paragraph', __nested_webpack_require_1144118__(18019));
config_1.Config.prototype.controls.paragraph = {
    command: 'formatBlock',
    update: function (button, editor) {
        var control = button.control, current = editor.s.current();
        if (current && editor.o.textIcons) {
            var currentBox = modules_1.Dom.closest(current, modules_1.Dom.isBlock, editor.editor) ||
                editor.editor, currentValue = currentBox.nodeName.toLowerCase(), list = control.list;
            if (button &&
                control.data &&
                control.data.currentValue !== currentValue &&
                list &&
                list[currentValue]) {
                if (editor.o.textIcons) {
                    button.state.text = currentValue;
                }
                else {
                    button.state.icon.name = currentValue;
                }
                control.data.currentValue = currentValue;
            }
        }
        return false;
    },
    exec: helpers_1.memorizeExec,
    data: {
        currentValue: 'left'
    },
    list: {
        p: 'Normal',
        h1: 'Heading 1',
        h2: 'Heading 2',
        h3: 'Heading 3',
        h4: 'Heading 4',
        blockquote: 'Quote',
        pre: 'Code'
    },
    isChildActive: function (editor, control) {
        var current = editor.s.current();
        if (current) {
            var currentBox = modules_1.Dom.closest(current, modules_1.Dom.isBlock, editor.editor);
            return Boolean(currentBox &&
                currentBox !== editor.editor &&
                control.args !== undefined &&
                currentBox.nodeName.toLowerCase() === control.args[0]);
        }
        return false;
    },
    isActive: function (editor, control) {
        var current = editor.s.current();
        if (current) {
            var currentBpx = modules_1.Dom.closest(current, modules_1.Dom.isBlock, editor.editor);
            return Boolean(currentBpx &&
                currentBpx !== editor.editor &&
                control.list !== undefined &&
                !modules_1.Dom.isTag(currentBpx, 'p') &&
                control.list[currentBpx.nodeName.toLowerCase()] !== undefined);
        }
        return false;
    },
    childTemplate: function (e, key, value) {
        return "<".concat(key, " style=\"margin:0;padding:0\"><span>").concat(e.i18n(value), "</span></").concat(key, ">");
    },
    tooltip: 'Insert format block'
};
function formatBlock(editor) {
    editor.registerButton({
        name: 'paragraph',
        group: 'font'
    });
    editor.registerCommand('formatblock', function (command, second, third) {
        editor.s.applyStyle(undefined, {
            element: third
        });
        editor.synchronizeValues();
        return false;
    });
}
exports.formatBlock = formatBlock;
global_1.pluginSystem.add('formatBlock', formatBlock);


/***/ }),

/***/ 15045:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1147656__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
__nested_webpack_require_1147656__(14320);
var config_1 = __nested_webpack_require_1147656__(93166);
var consts = __nested_webpack_require_1147656__(86893);
var icon_1 = __nested_webpack_require_1147656__(77904);
config_1.Config.prototype.fullsize = false;
config_1.Config.prototype.globalFullSize = true;
icon_1.Icon.set('fullsize', __nested_webpack_require_1147656__(45146)).set('shrink', __nested_webpack_require_1147656__(53576));
config_1.Config.prototype.controls.fullsize = {
    exec: function (editor) {
        editor.toggleFullSize();
    },
    update: function (button, editor) {
        var mode = editor.isFullSize ? 'shrink' : 'fullsize';
        button.state.activated = editor.isFullSize;
        if (editor.o.textIcons) {
            button.state.text = mode;
        }
        else {
            button.state.icon.name = mode;
        }
    },
    tooltip: 'Open in fullsize',
    mode: consts.MODE_SOURCE + consts.MODE_WYSIWYG
};


/***/ }),

/***/ 65123:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1148918__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.fullsize = void 0;
__nested_webpack_require_1148918__(14320);
var css_1 = __nested_webpack_require_1148918__(26911);
var is_jodit_object_1 = __nested_webpack_require_1148918__(77892);
var global_1 = __nested_webpack_require_1148918__(17332);
__nested_webpack_require_1148918__(15045);
var fullsizeStack = new Set();
function fullsize(editor) {
    editor.registerButton({
        name: 'fullsize'
    });
    var isEnabled = false, oldHeight = 0, oldWidth = 0, wasToggled = false;
    var resize = function () {
        var container = editor.container, events = editor.events;
        if (events) {
            if (isEnabled) {
                oldHeight = (0, css_1.css)(container, 'height', true);
                oldWidth = (0, css_1.css)(container, 'width', true);
                (0, css_1.css)(container, {
                    height: editor.ow.innerHeight,
                    width: editor.ow.innerWidth
                });
                wasToggled = true;
            }
            else if (wasToggled) {
                (0, css_1.css)(container, {
                    height: oldHeight || 'auto',
                    width: oldWidth || 'auto'
                });
            }
        }
    }, toggle = function (enable) {
        var container = editor.container, events = editor.events;
        if (!container) {
            return;
        }
        if (enable === undefined) {
            enable = !container.classList.contains('jodit_fullsize');
        }
        editor.setMod('fullsize', enable);
        editor.o.fullsize = enable;
        isEnabled = enable;
        container.classList.toggle('jodit_fullsize', enable);
        if (editor.toolbar) {
            (0, is_jodit_object_1.isJoditObject)(editor) &&
                editor.toolbarContainer.appendChild(editor.toolbar.container);
            (0, css_1.css)(editor.toolbar.container, 'width', 'auto');
        }
        enable
            ? fullsizeStack.add(container)
            : fullsizeStack.delete(container);
        var shouldToggleGlobalFullsize = editor.o.globalFullSize &&
            ((fullsizeStack.size === 1 && enable) ||
                (fullsizeStack.size === 0 && !enable));
        if (shouldToggleGlobalFullsize) {
            var node = container.parentNode;
            while (node &&
                node.nodeType !== Node.DOCUMENT_NODE &&
                node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {
                node.classList.toggle('jodit_fullsize-box_true', enable);
                node = node.parentNode;
            }
            resize();
        }
        events.fire('afterResize');
    };
    if (editor.o.globalFullSize) {
        editor.e.on(editor.ow, 'resize', resize);
    }
    editor.e
        .on('afterInit afterOpen', function () {
        var _a;
        editor.toggleFullSize((_a = editor === null || editor === void 0 ? void 0 : editor.options) === null || _a === void 0 ? void 0 : _a.fullsize);
    })
        .on('toggleFullSize', toggle)
        .on('beforeDestruct', function () {
        isEnabled && toggle(false);
    })
        .on('beforeDestruct', function () {
        editor.events && editor.e.off(editor.ow, 'resize', resize);
    });
}
exports.fullsize = fullsize;
global_1.pluginSystem.add('fullsize', fullsize);


/***/ }),

/***/ 16829:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1152516__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1152516__(93166);
config_1.Config.prototype.commandToHotkeys = {
    removeFormat: ['ctrl+shift+m', 'cmd+shift+m'],
    insertOrderedList: ['ctrl+shift+7', 'cmd+shift+7'],
    insertUnorderedList: ['ctrl+shift+8, cmd+shift+8'],
    selectall: ['ctrl+a', 'cmd+a']
};


/***/ }),

/***/ 83228:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1153208__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hotkeys = void 0;
var tslib_1 = __nested_webpack_require_1153208__(20255);
var plugin_1 = __nested_webpack_require_1153208__(57549);
var helpers_1 = __nested_webpack_require_1153208__(40332);
var constants_1 = __nested_webpack_require_1153208__(86893);
var global_1 = __nested_webpack_require_1153208__(17332);
__nested_webpack_require_1153208__(16829);
var hotkeys = (function (_super) {
    tslib_1.__extends(hotkeys, _super);
    function hotkeys() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.onKeyPress = function (event) {
            var special = _this.specialKeys[event.which], character = (event.key || String.fromCharCode(event.which)).toLowerCase();
            var modif = [special || character];
            ['alt', 'ctrl', 'shift', 'meta'].forEach(function (specialKey) {
                if (event[specialKey + 'Key'] && special !== specialKey) {
                    modif.push(specialKey);
                }
            });
            return (0, helpers_1.normalizeKeyAliases)(modif.join('+'));
        };
        _this.specialKeys = {
            8: 'backspace',
            9: 'tab',
            10: 'return',
            13: 'return',
            16: 'shift',
            17: 'ctrl',
            18: 'alt',
            19: 'pause',
            20: 'capslock',
            27: 'esc',
            32: 'space',
            33: 'pageup',
            34: 'pagedown',
            35: 'end',
            36: 'home',
            37: 'left',
            38: 'up',
            39: 'right',
            40: 'down',
            45: 'insert',
            46: 'del',
            59: ';',
            61: '=',
            91: 'meta',
            96: '0',
            97: '1',
            98: '2',
            99: '3',
            100: '4',
            101: '5',
            102: '6',
            103: '7',
            104: '8',
            105: '9',
            106: '*',
            107: '+',
            109: '-',
            110: '.',
            111: '/',
            112: 'f1',
            113: 'f2',
            114: 'f3',
            115: 'f4',
            116: 'f5',
            117: 'f6',
            118: 'f7',
            119: 'f8',
            120: 'f9',
            121: 'f10',
            122: 'f11',
            123: 'f12',
            144: 'numlock',
            145: 'scroll',
            173: '-',
            186: ';',
            187: '=',
            188: ',',
            189: '-',
            190: '.',
            191: '/',
            192: '`',
            219: '[',
            220: '\\',
            221: ']',
            222: "'"
        };
        return _this;
    }
    hotkeys.prototype.afterInit = function (editor) {
        var _this = this;
        (0, helpers_1.keys)(editor.o.commandToHotkeys, false).forEach(function (commandName) {
            var shortcuts = editor.o.commandToHotkeys[commandName];
            if (shortcuts && ((0, helpers_1.isArray)(shortcuts) || (0, helpers_1.isString)(shortcuts))) {
                editor.registerHotkeyToCommand(shortcuts, commandName);
            }
        });
        var itIsHotkey = false;
        editor.e
            .off('.hotkeys')
            .on([editor.ow, editor.ew], 'keydown.hotkeys', function (e) {
            if (e.key === constants_1.KEY_ESC) {
                return _this.j.e.fire('escape', e);
            }
        })
            .on('keydown.hotkeys', function (event) {
            var shortcut = _this.onKeyPress(event), stop = {
                shouldStop: true
            };
            var resultOfFire = _this.j.e.fire(shortcut + '.hotkey', event.type, stop);
            if (resultOfFire === false) {
                if (stop.shouldStop) {
                    itIsHotkey = true;
                    editor.e.stopPropagation('keydown');
                    return false;
                }
                else {
                    event.preventDefault();
                }
            }
        }, { top: true })
            .on('keyup.hotkeys', function () {
            if (itIsHotkey) {
                itIsHotkey = false;
                editor.e.stopPropagation('keyup');
                return false;
            }
        }, { top: true });
    };
    hotkeys.prototype.beforeDestruct = function (jodit) {
        if (jodit.events) {
            jodit.e.off('.hotkeys');
        }
    };
    return hotkeys;
}(plugin_1.Plugin));
exports.hotkeys = hotkeys;
global_1.pluginSystem.add('hotkeys', hotkeys);


/***/ }),

/***/ 43889:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1158004__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.hr = void 0;
var config_1 = __nested_webpack_require_1158004__(93166);
var dom_1 = __nested_webpack_require_1158004__(64968);
var global_1 = __nested_webpack_require_1158004__(17332);
var icon_1 = __nested_webpack_require_1158004__(77904);
icon_1.Icon.set('hr', __nested_webpack_require_1158004__(14655));
config_1.Config.prototype.controls.hr = {
    command: 'insertHorizontalRule',
    tags: ['hr'],
    tooltip: 'Insert Horizontal Line'
};
function hr(editor) {
    editor.registerButton({
        name: 'hr',
        group: 'insert'
    });
    editor.registerCommand('insertHorizontalRule', function () {
        var elm = editor.createInside.element('hr');
        editor.s.insertNode(elm, false, false);
        var block = dom_1.Dom.closest(elm.parentElement, dom_1.Dom.isBlock, editor.editor);
        if (block && dom_1.Dom.isEmpty(block) && block !== editor.editor) {
            dom_1.Dom.after(block, elm);
            dom_1.Dom.safeRemove(block);
        }
        var p = dom_1.Dom.next(elm, dom_1.Dom.isBlock, editor.editor, false);
        if (!p) {
            p = editor.createInside.element(editor.o.enter);
            dom_1.Dom.after(elm, p);
        }
        editor.s.setCursorIn(p);
        return false;
    });
}
exports.hr = hr;
global_1.pluginSystem.add('hr', hr);


/***/ }),

/***/ 2509:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1159632__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1159632__(93166);
config_1.Config.prototype.iframeBaseUrl = '';
config_1.Config.prototype.iframeTitle = 'Jodit Editor';
config_1.Config.prototype.iframeDoctype = '<!DOCTYPE html>';
config_1.Config.prototype.iframeDefaultSrc = 'about:blank';
config_1.Config.prototype.iframeStyle =
    'html{' +
        'margin:0;' +
        'padding:0;' +
        'min-height: 100%;' +
        '}' +
        'body{' +
        'box-sizing:border-box;' +
        'font-size:13px;' +
        'line-height:1.6;' +
        'padding:10px;' +
        'margin:0;' +
        'background:transparent;' +
        'color:#000;' +
        'position:' +
        'relative;' +
        'z-index:2;' +
        'user-select:auto;' +
        'margin:0px;' +
        'overflow:auto;' +
        'outline:none;' +
        '}' +
        'table{' +
        'width:100%;' +
        'border:none;' +
        'border-collapse:collapse;' +
        'empty-cells: show;' +
        'max-width: 100%;' +
        '}' +
        'th,td{' +
        'padding: 2px 5px;' +
        'border:1px solid #ccc;' +
        '-webkit-user-select:text;' +
        '-moz-user-select:text;' +
        '-ms-user-select:text;' +
        'user-select:text' +
        '}' +
        'p{' +
        'margin-top:0;' +
        '}' +
        '.jodit_editor .jodit_iframe_wrapper{' +
        'display: block;' +
        'clear: both;' +
        'user-select: none;' +
        'position: relative;' +
        '}' +
        '.jodit_editor .jodit_iframe_wrapper:after {' +
        'position:absolute;' +
        'content:"";' +
        'z-index:1;' +
        'top:0;' +
        'left:0;' +
        'right: 0;' +
        'bottom: 0;' +
        'cursor: pointer;' +
        'display: block;' +
        'background: rgba(0, 0, 0, 0);' +
        '} ' +
        '.jodit_disabled{' +
        'user-select: none;' +
        '-o-user-select: none;' +
        '-moz-user-select: none;' +
        '-khtml-user-select: none;' +
        '-webkit-user-select: none;' +
        '-ms-user-select: none' +
        '}';
config_1.Config.prototype.iframeCSSLinks = [];


/***/ }),

/***/ 93300:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1162129__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.iframe = void 0;
var helpers_1 = __nested_webpack_require_1162129__(40332);
var helpers_2 = __nested_webpack_require_1162129__(40332);
var constants_1 = __nested_webpack_require_1162129__(86893);
var global_1 = __nested_webpack_require_1162129__(17332);
__nested_webpack_require_1162129__(2509);
function iframe(editor) {
    var opt = editor.options;
    editor.e
        .on('afterSetMode', function () {
        if (editor.isEditorMode()) {
            editor.s.focus();
        }
    })
        .on('generateDocumentStructure.iframe', function (__doc, jodit) {
        var doc = __doc ||
            jodit.iframe
                .contentWindow.document;
        doc.open();
        doc.write(opt.iframeDoctype +
            "<html dir=\"".concat(opt.direction, "\" class=\"jodit\" lang=\"").concat((0, helpers_1.defaultLanguage)(opt.language), "\">") +
            '<head>' +
            "<title>".concat(opt.iframeTitle, "</title>") +
            (opt.iframeBaseUrl
                ? "<base href=\"".concat(opt.iframeBaseUrl, "\"/>")
                : '') +
            '</head>' +
            '<body class="jodit-wysiwyg"></body>' +
            '</html>');
        doc.close();
        if (opt.iframeCSSLinks) {
            opt.iframeCSSLinks.forEach(function (href) {
                var link = doc.createElement('link');
                link.setAttribute('rel', 'stylesheet');
                link.setAttribute('href', href);
                doc.head && doc.head.appendChild(link);
            });
        }
        if (opt.iframeStyle) {
            var style = doc.createElement('style');
            style.innerHTML = opt.iframeStyle;
            doc.head && doc.head.appendChild(style);
        }
    })
        .on('createEditor', function () {
        if (!opt.iframe) {
            return;
        }
        var iframe = editor.c.element('iframe');
        iframe.style.display = 'block';
        iframe.src = 'about:blank';
        iframe.className = 'jodit-wysiwyg_iframe';
        iframe.setAttribute('allowtransparency', 'true');
        iframe.setAttribute('tabindex', opt.tabIndex.toString());
        iframe.setAttribute('frameborder', '0');
        editor.workplace.appendChild(iframe);
        editor.iframe = iframe;
        var result = editor.e.fire('generateDocumentStructure.iframe', null, editor);
        var init = function () {
            if (!editor.iframe) {
                return false;
            }
            var doc = editor.iframe.contentWindow.document;
            editor.editorWindow = editor.iframe.contentWindow;
            var docMode = opt.editHTMLDocumentMode;
            var toggleEditable = function () {
                (0, helpers_1.attr)(doc.body, 'contenteditable', (editor.getMode() !== constants_1.MODE_SOURCE &&
                    !editor.getReadOnly()) ||
                    null);
            };
            var clearMarkers = function (html) {
                var bodyReg = /<body.*<\/body>/im, bodyMarker = '{%%BODY%%}', body = bodyReg.exec(html);
                if (body) {
                    html = html
                        .replace(bodyReg, bodyMarker)
                        .replace(/<span([^>]*?)>(.*?)<\/span>/gim, '')
                        .replace(/&lt;span([^&]*?)&gt;(.*?)&lt;\/span&gt;/gim, '')
                        .replace(bodyMarker, body[0]
                        .replace(/(<body[^>]+?)min-height["'\s]*:[\s"']*[0-9]+(px|%)/im, '$1')
                        .replace(/(<body[^>]+?)([\s]*["'])?contenteditable["'\s]*=[\s"']*true["']?/im, '$1')
                        .replace(/<(style|script|span)[^>]+jodit[^>]+>.*?<\/\1>/g, ''))
                        .replace(/(class\s*=\s*)(['"])([^"']*)(jodit-wysiwyg|jodit)([^"']*\2)/g, '$1$2$3$5')
                        .replace(/(<[^<]+?)\sclass="[\s]*"/gim, '$1')
                        .replace(/(<[^<]+?)\sstyle="[\s;]*"/gim, '$1')
                        .replace(/(<[^<]+?)\sdir="[\s]*"/gim, '$1');
                }
                return html;
            };
            if (docMode) {
                var tag = editor.element.tagName;
                if (tag !== 'TEXTAREA' && tag !== 'INPUT') {
                    throw (0, helpers_2.error)('If enable `editHTMLDocumentMode` - source element should be INPUT or TEXTAREA');
                }
                editor.e
                    .on('beforeGetNativeEditorValue', function () {
                    return clearMarkers(editor.o.iframeDoctype +
                        doc.documentElement.outerHTML);
                })
                    .on('beforeSetNativeEditorValue', function (_a) {
                    var value = _a.value;
                    if (editor.isLocked) {
                        return false;
                    }
                    if (/<(html|body)/i.test(value)) {
                        var old = doc.documentElement.outerHTML;
                        if (clearMarkers(old) !==
                            clearMarkers(value)) {
                            doc.open();
                            doc.write(editor.o.iframeDoctype +
                                clearMarkers(value));
                            doc.close();
                            editor.editor = doc.body;
                            editor.e.fire('safeHTML', editor.editor);
                            toggleEditable();
                            editor.e.fire('prepareWYSIWYGEditor');
                            editor.e.stopPropagation('beforeSetNativeEditorValue');
                        }
                    }
                    else {
                        doc.body.innerHTML = value;
                    }
                    return true;
                }, { top: true });
            }
            editor.editor = doc.body;
            editor.e.on('afterSetMode afterInit afterAddPlace', toggleEditable);
            if (opt.height === 'auto') {
                doc.documentElement &&
                    (doc.documentElement.style.overflowY = 'hidden');
                var resizeIframe = editor.async.throttle(function () {
                    if (editor.editor &&
                        editor.iframe &&
                        opt.height === 'auto') {
                        var style = editor.ew.getComputedStyle(editor.editor), marginOffset = parseInt(style.marginTop || '0', 10) +
                            parseInt(style.marginBottom || '0', 10);
                        (0, helpers_1.css)(editor.iframe, 'height', editor.editor.offsetHeight + marginOffset);
                    }
                }, editor.defaultTimeout / 2);
                editor.e
                    .on('change afterInit afterSetMode resize', resizeIframe)
                    .on([editor.iframe, editor.ew, doc.documentElement], 'load', resizeIframe)
                    .on(doc, 'readystatechange DOMContentLoaded', resizeIframe);
                if (typeof ResizeObserver === 'function') {
                    var resizeObserver_1 = new ResizeObserver(resizeIframe);
                    resizeObserver_1.observe(doc.body);
                    editor.e.on('beforeDestruct', function () {
                        resizeObserver_1.unobserve(doc.body);
                    });
                }
            }
            if (doc.documentElement) {
                editor.e
                    .on(doc.documentElement, 'mousedown touchend', function () {
                    if (!editor.s.isFocused()) {
                        editor.s.focus();
                        if (editor.editor === doc.body) {
                            editor.s.setCursorIn(doc.body);
                        }
                    }
                })
                    .on(editor.ew, 'mousedown touchstart keydown keyup touchend click mouseup mousemove scroll', function (e) {
                    var _a;
                    (_a = editor.events) === null || _a === void 0 ? void 0 : _a.fire(editor.ow, e);
                });
            }
            return false;
        };
        return (0, helpers_1.callPromise)(result, init);
    });
}
exports.iframe = iframe;
global_1.pluginSystem.add('iframe', iframe);


/***/ }),

/***/ 18226:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1170572__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1170572__(93166);
config_1.Config.prototype.imageProcessor = {
    replaceDataURIToBlobIdInView: true
};


/***/ }),

/***/ 92575:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1171103__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.imageProcessor = void 0;
var tslib_1 = __nested_webpack_require_1171103__(20255);
var helpers_1 = __nested_webpack_require_1171103__(40332);
var plugin_1 = __nested_webpack_require_1171103__(57549);
var decorators_1 = __nested_webpack_require_1171103__(43441);
var constants_1 = __nested_webpack_require_1171103__(86893);
var global_1 = __nested_webpack_require_1171103__(17332);
__nested_webpack_require_1171103__(18226);
var JODIT_IMAGE_PROCESSOR_BINDED = '__jodit_imageprocessor_binded';
var JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
var imageProcessor = (function (_super) {
    tslib_1.__extends(imageProcessor, _super);
    function imageProcessor() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    imageProcessor.prototype.afterInit = function (jodit) { };
    imageProcessor.prototype.beforeDestruct = function (jodit) {
        var e_1, _a;
        var list = jodit.buffer.get(JODIT_IMAGE_BLOB_ID);
        if (list) {
            var keys = Object.keys(list);
            try {
                for (var keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
                    var uri = keys_1_1.value;
                    URL.revokeObjectURL(uri);
                }
            }
            catch (e_1_1) { e_1 = { error: e_1_1 }; }
            finally {
                try {
                    if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
                }
                finally { if (e_1) throw e_1.error; }
            }
            jodit.buffer.delete(JODIT_IMAGE_BLOB_ID);
        }
    };
    imageProcessor.prototype.onAfterGetValueFromEditor = function (data, consumer) {
        if (consumer !== constants_1.SOURCE_CONSUMER) {
            return this.onBeforeSetElementValue(data);
        }
    };
    imageProcessor.prototype.onBeforeSetElementValue = function (data) {
        var e_2, _a;
        var editor = this.jodit;
        if (!editor.o.imageProcessor.replaceDataURIToBlobIdInView) {
            return;
        }
        var list = editor.buffer.get(JODIT_IMAGE_BLOB_ID);
        if (list) {
            var keys = Object.keys(list);
            try {
                for (var keys_2 = tslib_1.__values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
                    var uri = keys_2_1.value;
                    while (data.value.includes(uri)) {
                        data.value = data.value.replace(uri, list[uri]);
                    }
                }
            }
            catch (e_2_1) { e_2 = { error: e_2_1 }; }
            finally {
                try {
                    if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2);
                }
                finally { if (e_2) throw e_2.error; }
            }
        }
    };
    imageProcessor.prototype.afterChange = function (data) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var editor;
            return tslib_1.__generator(this, function (_a) {
                editor = this.jodit;
                if (!editor.editor) {
                    return [2];
                }
                (0, helpers_1.$$)('img', editor.editor).forEach(function (elm) {
                    if (!(0, helpers_1.dataBind)(elm, JODIT_IMAGE_PROCESSOR_BINDED)) {
                        (0, helpers_1.dataBind)(elm, JODIT_IMAGE_PROCESSOR_BINDED, true);
                        if (!elm.complete) {
                            editor.e.on(elm, 'load', function ElementOnLoad() {
                                var _a;
                                !editor.isInDestruct && ((_a = editor.e) === null || _a === void 0 ? void 0 : _a.fire('resize'));
                                editor.e.off(elm, 'load', ElementOnLoad);
                            });
                        }
                        if (elm.src && /^data:/.test(elm.src)) {
                            replaceDataURIToBlobUUID(editor, elm);
                        }
                        editor.e.on(elm, 'mousedown touchstart', function () {
                            editor.s.select(elm);
                        });
                    }
                });
                return [2];
            });
        });
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':afterGetValueFromEditor')
    ], imageProcessor.prototype, "onAfterGetValueFromEditor", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeSetElementValue')
    ], imageProcessor.prototype, "onBeforeSetElementValue", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)([':change', ':afterInit', ':changePlace']),
        (0, decorators_1.debounce)()
    ], imageProcessor.prototype, "afterChange", null);
    return imageProcessor;
}(plugin_1.Plugin));
exports.imageProcessor = imageProcessor;
function replaceDataURIToBlobUUID(editor, elm) {
    if (!editor.o.imageProcessor.replaceDataURIToBlobIdInView) {
        return;
    }
    if (typeof ArrayBuffer === 'undefined' || typeof URL === 'undefined') {
        return;
    }
    var dataUri = elm.src, blob = dataURItoBlob(dataUri);
    elm.src = URL.createObjectURL(blob);
    editor.e.fire('internalUpdate');
    var buffer = editor.buffer;
    var list = buffer.get(JODIT_IMAGE_BLOB_ID) || {};
    list[elm.src] = dataUri;
    editor.buffer.set(JODIT_IMAGE_BLOB_ID, list);
}
function dataURItoBlob(dataURI) {
    var byteString = atob(dataURI.split(',')[1]);
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
    var ab = new ArrayBuffer(byteString.length);
    var ia = new Uint8Array(ab);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }
    return new Blob([ab], { type: mimeString });
}
global_1.pluginSystem.add('imageProcessor', imageProcessor);


/***/ }),

/***/ 1601:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1177297__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1177297__(93166);
config_1.Config.prototype.image = {
    dialogWidth: 600,
    openOnDblClick: true,
    editSrc: true,
    useImageEditor: true,
    editTitle: true,
    editAlt: true,
    editLink: true,
    editSize: true,
    editBorderRadius: true,
    editMargins: true,
    editClass: true,
    availableClasses: [],
    editStyle: true,
    editId: true,
    editAlign: true,
    showPreview: true,
    selectImageAfterClose: true
};


/***/ }),

/***/ 15747:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1178166__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.imageProperties = void 0;
var tslib_1 = __nested_webpack_require_1178166__(20255);
__nested_webpack_require_1178166__(9947);
var modules_1 = __nested_webpack_require_1178166__(87837);
var helpers_1 = __nested_webpack_require_1178166__(40332);
var widget_1 = __nested_webpack_require_1178166__(718);
var button_1 = __nested_webpack_require_1178166__(96516);
var decorators_1 = __nested_webpack_require_1178166__(43441);
var image_editor_1 = __nested_webpack_require_1178166__(35503);
var global_1 = __nested_webpack_require_1178166__(17332);
var form_1 = __nested_webpack_require_1178166__(49391);
var main_tab_1 = __nested_webpack_require_1178166__(27506);
var position_tab_1 = __nested_webpack_require_1178166__(50109);
__nested_webpack_require_1178166__(1601);
var normalSizeToString = function (value) {
    value = (0, helpers_1.trim)(value);
    return /^[0-9]+$/.test(value) ? value + 'px' : value;
};
var normalSizeFromString = function (value) {
    return /^[-+]?[0-9.]+px$/.test(value.toString())
        ? parseFloat(value.toString())
        : value;
};
var imageProperties = (function (_super) {
    tslib_1.__extends(imageProperties, _super);
    function imageProperties() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.state = {
            image: new Image(),
            get ratio() {
                return this.image.naturalWidth / this.image.naturalHeight || 1;
            },
            sizeIsLocked: true,
            marginIsLocked: true
        };
        _this.activeTabState = {
            __activeTab: 'Image'
        };
        return _this;
    }
    imageProperties.prototype.onChangeMarginIsLocked = function () {
        var _this = this;
        if (!this.form) {
            return;
        }
        var _a = (0, helpers_1.refs)(this.form), marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, lockMargin = _a.lockMargin;
        [marginRight, marginBottom, marginLeft].forEach(function (elm) {
            (0, helpers_1.attr)(elm, 'disabled', _this.state.marginIsLocked || null);
        });
        lockMargin.innerHTML = modules_1.Icon.get(this.state.marginIsLocked ? 'lock' : 'unlock');
    };
    imageProperties.prototype.onChangeSizeIsLocked = function () {
        if (!this.form) {
            return;
        }
        var _a = (0, helpers_1.refs)(this.form), lockSize = _a.lockSize, imageWidth = _a.imageWidth;
        lockSize.innerHTML = modules_1.Icon.get(this.state.sizeIsLocked ? 'lock' : 'unlock');
        lockSize.classList.remove('jodit-properties__lock');
        lockSize.classList.remove('jodit-properties__unlock');
        lockSize.classList.add(this.state.sizeIsLocked
            ? 'jodit-properties__lock'
            : 'jodit-properties__unlock');
        this.j.e.fire(imageWidth, 'change');
    };
    imageProperties.prototype.open = function () {
        this.makeForm();
        this.activeTabState.__activeTab = 'Image';
        this.j.e.fire('hidePopup');
        (0, helpers_1.markOwner)(this.j, this.dialog.container);
        this.state.marginIsLocked = true;
        this.state.sizeIsLocked = true;
        this.onChangeMarginIsLocked();
        this.onChangeSizeIsLocked();
        this.updateValues();
        this.dialog.open().setModal(true).setPosition();
        return false;
    };
    imageProperties.prototype.makeForm = function () {
        var _this = this;
        if (this.dialog) {
            return;
        }
        this.dialog = this.j.dlg({
            minWidth: Math.min(400, screen.width),
            minHeight: 590,
            buttons: ['fullsize', 'dialog.close']
        });
        var editor = this.j, opt = editor.o, i18n = editor.i18n.bind(editor), buttons = {
            check: (0, button_1.Button)(editor, 'ok', 'Apply', 'primary'),
            remove: (0, button_1.Button)(editor, 'bin', 'Delete')
        };
        editor.e.on(this.dialog, 'afterClose', function () {
            if (_this.state.image.parentNode &&
                opt.image.selectImageAfterClose) {
                editor.s.select(_this.state.image);
            }
        });
        buttons.remove.onAction(function () {
            editor.s.removeNode(_this.state.image);
            _this.dialog.close();
        });
        var dialog = this.dialog;
        dialog.setHeader(i18n('Image properties'));
        var mainForm = (0, form_1.form)(editor);
        this.form = mainForm;
        dialog.setContent(mainForm);
        var tabsBox = (0, helpers_1.refs)(this.form).tabsBox;
        if (tabsBox) {
            tabsBox.appendChild((0, widget_1.TabsWidget)(editor, [
                { name: 'Image', content: (0, main_tab_1.mainTab)(editor) },
                { name: 'Advanced', content: (0, position_tab_1.positionTab)(editor) }
            ], this.activeTabState));
        }
        buttons.check.onAction(this.onApply);
        var _a = (0, helpers_1.refs)(this.form), changeImage = _a.changeImage, editImage = _a.editImage;
        editor.e.on(changeImage, 'click', this.openImagePopup);
        if (opt.image.useImageEditor) {
            editor.e.on(editImage, 'click', this.openImageEditor);
        }
        var _b = (0, helpers_1.refs)(mainForm), lockSize = _b.lockSize, lockMargin = _b.lockMargin, imageWidth = _b.imageWidth, imageHeight = _b.imageHeight;
        if (lockSize) {
            editor.e.on(lockSize, 'click', function () {
                _this.state.sizeIsLocked = !_this.state.sizeIsLocked;
            });
        }
        editor.e.on(lockMargin, 'click', function (e) {
            _this.state.marginIsLocked = !_this.state.marginIsLocked;
            e.preventDefault();
        });
        var changeSizes = function (event) {
            if (!(0, helpers_1.isNumeric)(imageWidth.value) || !(0, helpers_1.isNumeric)(imageHeight.value)) {
                return;
            }
            var w = parseFloat(imageWidth.value), h = parseFloat(imageHeight.value);
            if (event.target === imageWidth) {
                imageHeight.value = Math.round(w / _this.state.ratio).toString();
            }
            else {
                imageWidth.value = Math.round(h * _this.state.ratio).toString();
            }
        };
        editor.e.on([imageWidth, imageHeight], 'change keydown mousedown paste', function (event) {
            if (!_this.state.sizeIsLocked) {
                return;
            }
            editor.async.setTimeout(changeSizes.bind(_this, event), {
                timeout: editor.defaultTimeout,
                label: 'image-properties-changeSize'
            });
        });
        dialog.setFooter([buttons.remove, buttons.check]);
        dialog.setSize(this.j.o.image.dialogWidth);
    };
    imageProperties.prototype.updateValues = function () {
        var _this = this;
        var opt = this.j.o;
        var image = this.state.image;
        var _a = (0, helpers_1.refs)(this.form), marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, lockMargin = _a.lockMargin, imageSrc = _a.imageSrc, id = _a.id, classes = _a.classes, align = _a.align, style = _a.style, imageTitle = _a.imageTitle, imageAlt = _a.imageAlt, borderRadius = _a.borderRadius, imageLink = _a.imageLink, imageWidth = _a.imageWidth, imageHeight = _a.imageHeight, imageLinkOpenInNewTab = _a.imageLinkOpenInNewTab, imageViewSrc = _a.imageViewSrc, lockSize = _a.lockSize;
        var updateLock = function () {
            lockMargin.checked = _this.state.marginIsLocked;
            lockSize.checked = _this.state.sizeIsLocked;
        }, updateAlign = function () {
            if (image.style.cssFloat &&
                ['left', 'right'].indexOf(image.style.cssFloat.toLowerCase()) !== -1) {
                align.value = (0, helpers_1.css)(image, 'float');
            }
            else {
                if ((0, helpers_1.css)(image, 'display') === 'block' &&
                    image.style.marginLeft === 'auto' &&
                    image.style.marginRight === 'auto') {
                    align.value = 'center';
                }
            }
        }, updateBorderRadius = function () {
            borderRadius.value = (parseInt(image.style.borderRadius || '0', 10) || '0').toString();
        }, updateId = function () {
            id.value = (0, helpers_1.attr)(image, 'id') || '';
        }, updateStyle = function () {
            style.value = (0, helpers_1.attr)(image, 'style') || '';
        }, updateClasses = function () {
            classes.value = ((0, helpers_1.attr)(image, 'class') || '').replace(/jodit_focused_image[\s]*/, '');
        }, updateMargins = function () {
            if (!opt.image.editMargins) {
                return;
            }
            var equal = true, wasEmptyField = false;
            [marginTop, marginRight, marginBottom, marginLeft].forEach(function (elm) {
                var id = (0, helpers_1.attr)(elm, 'data-ref') || '';
                var value = image.style.getPropertyValue((0, helpers_1.kebabCase)(id));
                if (!value) {
                    wasEmptyField = true;
                    elm.value = '';
                    return;
                }
                if (/^[0-9]+(px)?$/.test(value)) {
                    value = parseInt(value, 10);
                }
                elm.value = value.toString() || '';
                if ((wasEmptyField && elm.value) ||
                    (equal &&
                        id !== 'marginTop' &&
                        elm.value !== marginTop.value)) {
                    equal = false;
                }
            });
            _this.state.marginIsLocked = equal;
        }, updateSizes = function () {
            var width = (0, helpers_1.attr)(image, 'width') ||
                (0, helpers_1.css)(image, 'width', true) ||
                false, height = (0, helpers_1.attr)(image, 'height') ||
                (0, helpers_1.css)(image, 'height', true) ||
                false;
            imageWidth.value =
                width !== false
                    ? normalSizeFromString(width).toString()
                    : image.offsetWidth.toString();
            imageHeight.value =
                height !== false
                    ? normalSizeFromString(height).toString()
                    : image.offsetHeight.toString();
            _this.state.sizeIsLocked = (function () {
                if (!(0, helpers_1.isNumeric)(imageWidth.value) ||
                    !(0, helpers_1.isNumeric)(imageHeight.value)) {
                    return false;
                }
                var w = parseFloat(imageWidth.value), h = parseFloat(imageHeight.value);
                return Math.abs(w - h * _this.state.ratio) < 1;
            })();
        }, updateText = function () {
            imageTitle.value = (0, helpers_1.attr)(image, 'title') || '';
            imageAlt.value = (0, helpers_1.attr)(image, 'alt') || '';
            var a = modules_1.Dom.closest(image, 'a', _this.j.editor);
            if (a) {
                imageLink.value = (0, helpers_1.attr)(a, 'href') || '';
                imageLinkOpenInNewTab.checked =
                    (0, helpers_1.attr)(a, 'target') === '_blank';
            }
            else {
                imageLink.value = '';
                imageLinkOpenInNewTab.checked = false;
            }
        }, updateSrc = function () {
            imageSrc.value = (0, helpers_1.attr)(image, 'src') || '';
            if (imageViewSrc) {
                (0, helpers_1.attr)(imageViewSrc, 'src', (0, helpers_1.attr)(image, 'src') || '');
            }
        };
        updateLock();
        updateSrc();
        updateText();
        updateSizes();
        updateMargins();
        updateClasses();
        updateId();
        updateBorderRadius();
        updateAlign();
        updateStyle();
    };
    imageProperties.prototype.onApply = function () {
        var _a = (0, helpers_1.refs)(this.form), style = _a.style, imageSrc = _a.imageSrc, borderRadius = _a.borderRadius, imageTitle = _a.imageTitle, imageAlt = _a.imageAlt, imageLink = _a.imageLink, imageWidth = _a.imageWidth, imageHeight = _a.imageHeight, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, imageLinkOpenInNewTab = _a.imageLinkOpenInNewTab, align = _a.align, classes = _a.classes, id = _a.id;
        var opt = this.j.o;
        var image = this.state.image;
        if (opt.image.editStyle) {
            (0, helpers_1.attr)(image, 'style', style.value || null);
        }
        if (imageSrc.value) {
            (0, helpers_1.attr)(image, 'src', imageSrc.value);
        }
        else {
            modules_1.Dom.safeRemove(image);
            this.dialog.close();
            return;
        }
        if (borderRadius.value !== '0' && /^[0-9]+$/.test(borderRadius.value)) {
            image.style.borderRadius = borderRadius.value + 'px';
        }
        else {
            image.style.borderRadius = '';
        }
        (0, helpers_1.attr)(image, 'title', imageTitle.value || null);
        (0, helpers_1.attr)(image, 'alt', imageAlt.value || null);
        var link = modules_1.Dom.closest(image, 'a', this.j.editor);
        if (imageLink.value) {
            if (!link) {
                link = modules_1.Dom.wrap(image, 'a', this.j.createInside);
            }
            (0, helpers_1.attr)(link, 'href', imageLink.value);
            (0, helpers_1.attr)(link, 'target', imageLinkOpenInNewTab.checked ? '_blank' : null);
        }
        else {
            if (link && link.parentNode) {
                link.parentNode.replaceChild(image, link);
            }
        }
        if (imageWidth.value !== image.offsetWidth.toString() ||
            imageHeight.value !== image.offsetHeight.toString()) {
            var updatedtWidth = (0, helpers_1.trim)(imageWidth.value)
                ? normalSizeToString(imageWidth.value)
                : null;
            var updatedHeight = (0, helpers_1.trim)(imageHeight.value)
                ? normalSizeToString(imageHeight.value)
                : null;
            (0, helpers_1.css)(image, {
                width: updatedtWidth,
                height: updatedHeight
            });
            (0, helpers_1.attr)(image, 'width', (0, helpers_1.attr)(image, 'width') ? updatedtWidth : null);
            (0, helpers_1.attr)(image, 'height', (0, helpers_1.attr)(image, 'height') ? updatedHeight : null);
        }
        var margins = [marginTop, marginRight, marginBottom, marginLeft];
        if (opt.image.editMargins) {
            if (!this.state.marginIsLocked) {
                margins.forEach(function (margin) {
                    var side = (0, helpers_1.attr)(margin, 'data-ref') || '';
                    (0, helpers_1.css)(image, side, normalSizeToString(margin.value));
                });
            }
            else {
                (0, helpers_1.css)(image, 'margin', normalSizeToString(marginTop.value));
            }
        }
        if (opt.image.editClass) {
            (0, helpers_1.attr)(image, 'class', classes.value || null);
        }
        if (opt.image.editId) {
            (0, helpers_1.attr)(image, 'id', id.value || null);
        }
        if (opt.image.editAlign) {
            (0, helpers_1.hAlignElement)(image, align.value);
        }
        this.j.synchronizeValues();
        this.dialog.close();
    };
    imageProperties.prototype.openImageEditor = function () {
        var _this = this;
        var url = (0, helpers_1.attr)(this.state.image, 'src') || '', a = this.j.c.element('a'), loadExternal = function () {
            if (a.host !== location.host) {
                _this.j.confirm('You can only edit your own images. Download this image on the host?', function (yes) {
                    if (yes && _this.j.uploader) {
                        _this.j.uploader.uploadRemoteImage(a.href.toString(), function (resp) {
                            _this.j.alert('The image has been successfully uploaded to the host!', function () {
                                if ((0, helpers_1.isString)(resp.newfilename)) {
                                    (0, helpers_1.attr)(_this.state.image, 'src', resp.baseurl +
                                        resp.newfilename);
                                    _this.updateValues();
                                }
                            });
                        }, function (error) {
                            _this.j.alert('There was an error loading %s', error.message);
                        });
                    }
                });
                return;
            }
        };
        a.href = url;
        this.j.filebrowser.dataProvider
            .getPathByUrl(a.href.toString())
            .then(function (resp) {
            image_editor_1.openImageEditor.call(_this.j.filebrowser, a.href, resp.name, resp.path, resp.source, function () {
                var timestamp = new Date().getTime();
                (0, helpers_1.attr)(_this.state.image, 'src', url +
                    (url.indexOf('?') !== -1 ? '' : '?') +
                    '&_tmp=' +
                    timestamp.toString());
                _this.updateValues();
            }, function (error) {
                _this.j.alert(error.message);
            });
        })
            .catch(function (error) {
            _this.j.alert(error.message, loadExternal);
        });
    };
    imageProperties.prototype.openImagePopup = function (event) {
        var _this = this;
        var popup = new modules_1.Popup(this.j), changeImage = (0, helpers_1.refs)(this.form).changeImage;
        popup.setZIndex(this.dialog.getZIndex() + 1);
        popup
            .setContent((0, widget_1.FileSelectorWidget)(this.j, {
            upload: function (data) {
                if (data.files && data.files.length) {
                    (0, helpers_1.attr)(_this.state.image, 'src', data.baseurl + data.files[0]);
                }
                _this.updateValues();
                popup.close();
            },
            filebrowser: function (data) {
                if (data &&
                    (0, helpers_1.isArray)(data.files) &&
                    data.files.length) {
                    (0, helpers_1.attr)(_this.state.image, 'src', data.files[0]);
                    popup.close();
                    _this.updateValues();
                }
            }
        }, this.state.image, popup.close))
            .open(function () { return (0, helpers_1.position)(changeImage); });
        event.stopPropagation();
    };
    imageProperties.prototype.afterInit = function (editor) {
        var _this = this;
        var self = this;
        editor.e
            .on('afterConstructor changePlace', function () {
            editor.e
                .off(editor.editor, '.imageproperties')
                .on(editor.editor, 'dblclick.imageproperties', function (e) {
                var image = e.target;
                if (!modules_1.Dom.isTag(image, 'img')) {
                    return;
                }
                if (editor.o.image.openOnDblClick) {
                    if (_this.j.e.fire('openOnDblClick', image) ===
                        false) {
                        return;
                    }
                    self.state.image = image;
                    if (!editor.o.readonly) {
                        e.stopImmediatePropagation();
                        e.preventDefault();
                        self.open();
                    }
                }
                else {
                    e.stopImmediatePropagation();
                    editor.s.select(image);
                }
            });
        })
            .on('openImageProperties.imageproperties', function (image) {
            _this.state.image = image;
            _this.open();
        });
    };
    imageProperties.prototype.beforeDestruct = function (editor) {
        this.dialog && this.dialog.destruct();
        editor.e.off(editor.editor, '.imageproperties').off('.imageproperties');
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.marginIsLocked')
    ], imageProperties.prototype, "onChangeMarginIsLocked", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('state.sizeIsLocked')
    ], imageProperties.prototype, "onChangeSizeIsLocked", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], imageProperties.prototype, "onApply", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], imageProperties.prototype, "openImageEditor", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], imageProperties.prototype, "openImagePopup", null);
    return imageProperties;
}(modules_1.Plugin));
exports.imageProperties = imageProperties;
global_1.pluginSystem.add('imageProperties', imageProperties);


/***/ }),

/***/ 49391:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1199286__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.form = void 0;
var icon_1 = __nested_webpack_require_1199286__(77904);
function form(editor) {
    var _a = editor.o.image, showPreview = _a.showPreview, editSize = _a.editSize, gi = icon_1.Icon.get.bind(icon_1.Icon);
    return editor.c.fromHTML("<form class=\"jodit-properties\">\n\t\t<div class=\"jodit-grid jodit-grid_xs-column\">\n\t\t\t<div class=\"jodit_col-lg-2-5 jodit_col-xs-5-5\">\n\t\t\t\t<div class=\"jodit-properties_view_box\">\n\t\t\t\t\t<div style=\"".concat(!showPreview ? 'display:none' : '', "\" class=\"jodit-properties_image_view\">\n\t\t\t\t\t\t<img data-ref=\"imageViewSrc\" src=\"\" alt=\"\"/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style=\"").concat(!editSize ? 'display:none' : '', "\" class=\"jodit-form__group jodit-properties_image_sizes\">\n\t\t\t\t\t\t<input data-ref=\"imageWidth\" type=\"text\" class=\"jodit-input\"/>\n\t\t\t\t\t\t<a data-ref=\"lockSize\" class=\"jodit-properties__lock\">").concat(gi('lock'), "</a>\n\t\t\t\t\t\t<input data-ref=\"imageHeight\" type=\"text\" class=\"imageHeight jodit-input\"/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div data-ref=\"tabsBox\" class=\"jodit_col-lg-3-5 jodit_col-xs-5-5\"></div>\n\t\t</div>\n\t</form>"));
}
exports.form = form;


/***/ }),

/***/ 27506:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1200904__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.mainTab = void 0;
var icon_1 = __nested_webpack_require_1200904__(77904);
function mainTab(editor) {
    var opt = editor.o, i18n = editor.i18n.bind(editor), gi = icon_1.Icon.get.bind(icon_1.Icon), hasFbUrl = opt.filebrowser.ajax.url || opt.uploader.url, hasEditor = opt.image.useImageEditor;
    return editor.c.fromHTML("<div style=\"".concat(!opt.image.editSrc ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Src'), "</label>\n\t\t\t<div class=\"jodit-input_group\">\n\t\t\t\t<input data-ref=\"imageSrc\" class=\"jodit-input\" type=\"text\"/>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"jodit-input_group-buttons\"\n\t\t\t\t\tstyle=\"").concat(hasFbUrl ? '' : 'display: none', "\"\n\t\t\t\t>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tdata-ref=\"changeImage\"\n\t\t\t\t\t\t\tclass=\"jodit-button\"\n\t\t\t\t\t\t>").concat(gi('image'), "</a>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tdata-ref=\"editImage\"\n\t\t\t\t\t\t\tclass=\"jodit-button\"\n\t\t\t\t\t\t\tstyle=\"").concat(hasEditor ? '' : 'display: none', "\"\n\t\t\t\t\t\t>").concat(gi('crop'), "</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editTitle ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Title'), "</label>\n\t\t\t<input data-ref=\"imageTitle\" type=\"text\" class=\"jodit-input\"/>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editAlt ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Alternative'), "</label>\n\t\t\t<input data-ref=\"imageAlt\" type=\"text\" class=\"jodit-input\"/>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editLink ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Link'), "</label>\n\t\t\t<input data-ref=\"imageLink\" type=\"text\" class=\"jodit-input\"/>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editLink ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label class=\"jodit_vertical_middle\">\n\t\t\t\t<input data-ref=\"imageLinkOpenInNewTab\" type=\"checkbox\" class=\"jodit-checkbox\"/>\n\t\t\t\t<span>").concat(i18n('Open link in new tab'), "</span>\n\t\t\t</label>\n\t\t</div>"));
}
exports.mainTab = mainTab;


/***/ }),

/***/ 50109:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1203501__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.positionTab = void 0;
var icon_1 = __nested_webpack_require_1203501__(77904);
function positionTab(editor) {
    var opt = editor.o, i18n = editor.i18n.bind(editor), gi = icon_1.Icon.get.bind(icon_1.Icon);
    var classInput = [];
    if (opt.image.availableClasses.length > 0) {
        classInput.push('<select data-ref="classes" class="jodit-input jodit-select">');
        opt.image.availableClasses.forEach(function (item) {
            if (typeof item === 'string') {
                classInput.push("<option value=\"".concat(item, "\">").concat(item, "</option>"));
            }
            else {
                classInput.push("<option value=\"".concat(item[0], "\">").concat(item[1], "</option>"));
            }
        });
        classInput.push('</select>');
    }
    else {
        classInput.push('<input data-ref="classes" type="text" class="jodit-input"/>');
    }
    return editor.c.fromHTML("<div style=\"".concat(!opt.image.editMargins ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Margins'), "</label>\n\t\t\t<div class=\"jodit-grid jodit_vertical_middle\">\n\t\t\t\t<input class=\"jodit_col-lg-1-5 jodit-input\" data-ref=\"marginTop\" type=\"text\" placeholder=\"").concat(i18n('top'), "\"/>\n\t\t\t\t<a style=\"text-align: center;\" data-ref=\"lockMargin\" class=\"jodit-properties__lock jodit_col-lg-1-5\">").concat(gi('lock'), "</a>\n\t\t\t\t<input disabled=\"true\" class=\"jodit_col-lg-1-5 jodit-input\" data-ref=\"marginRight\" type=\"text\" placeholder=\"").concat(i18n('right'), "\"/>\n\t\t\t\t<input disabled=\"true\" class=\"jodit_col-lg-1-5 jodit-input\" data-ref=\"marginBottom\" type=\"text\" placeholder=\"").concat(i18n('bottom'), "\"/>\n\t\t\t\t<input disabled=\"true\" class=\"jodit_col-lg-1-5 jodit-input\" data-ref=\"marginLeft\" type=\"text\" placeholder=\"").concat(i18n('left'), "\"/>\n\t\t\t</div>\n\t\t</div>\n\t\t<div\n\t\t\tstyle=\"").concat(!opt.image.editAlign ? 'display:none' : '', "\"\n\t\t\tclass=\"jodit-form__group\"\n\t\t>\n\t\t\t<label>").concat(i18n('Align'), "</label>\n\t\t\t<select data-ref=\"align\" class=\"jodit-select\">\n\t\t\t\t<option value=\"\">").concat(i18n('--Not Set--'), "</option>\n\t\t\t\t<option value=\"left\">").concat(i18n('Left'), "</option>\n\t\t\t\t<option value=\"center\">").concat(i18n('Center'), "</option>\n\t\t\t\t<option value=\"right\">").concat(i18n('Right'), "</option>\n\t\t\t</select>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editStyle ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Styles'), "</label>\n\t\t\t<input data-ref=\"style\" type=\"text\" class=\"jodit-input\"/>\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editClass ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>").concat(i18n('Classes'), "</label>\n\t\t\t").concat(classInput.join(''), "\n\t\t</div>\n\t\t<div style=\"").concat(!opt.image.editId ? 'display:none' : '', "\" class=\"jodit-form__group\">\n\t\t\t<label>Id</label>\n\t\t\t<input data-ref=\"id\" type=\"text\" class=\"jodit-input\"/>\n\t\t</div>\n\t\t<div\n\t\t\tstyle=\"").concat(!opt.image.editBorderRadius ? 'display:none' : '', "\"\n\t\t\tclass=\"jodit-form__group\"\n\t\t>\n\t\t\t<label>").concat(i18n('Border radius'), "</label>\n\t\t\t\t<input data-ref=\"borderRadius\" type=\"number\" class=\"jodit-input\"/>\n\t\t</div>"));
}
exports.positionTab = positionTab;


/***/ }),

/***/ 67547:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1207310__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.image = void 0;
var tslib_1 = __nested_webpack_require_1207310__(20255);
var dom_1 = __nested_webpack_require_1207310__(64968);
var helpers_1 = __nested_webpack_require_1207310__(40332);
var widget_1 = __nested_webpack_require_1207310__(718);
var config_1 = __nested_webpack_require_1207310__(93166);
var global_1 = __nested_webpack_require_1207310__(17332);
var icon_1 = __nested_webpack_require_1207310__(77904);
icon_1.Icon.set('image', __nested_webpack_require_1207310__(53477));
config_1.Config.prototype.controls.image = {
    popup: function (editor, current, ignore, close) {
        var sourceImage = null;
        if (current &&
            !dom_1.Dom.isText(current) &&
            dom_1.Dom.isHTMLElement(current) &&
            (dom_1.Dom.isTag(current, 'img') || (0, helpers_1.$$)('img', current).length)) {
            sourceImage = dom_1.Dom.isTag(current, 'img')
                ? current
                : (0, helpers_1.$$)('img', current)[0];
        }
        editor.s.save();
        return (0, widget_1.FileSelectorWidget)(editor, {
            filebrowser: function (data) {
                editor.s.restore();
                data.files &&
                    data.files.forEach(function (file) {
                        return editor.s.insertImage(data.baseurl + file, null, editor.o.imageDefaultWidth);
                    });
                close();
            },
            upload: true,
            url: function (url, text) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
                var image;
                return tslib_1.__generator(this, function (_a) {
                    switch (_a.label) {
                        case 0:
                            editor.s.restore();
                            if (/^[a-z\d_-]+(\.[a-z\d_-]+)+/i.test(url)) {
                                url = '//' + url;
                            }
                            image = sourceImage || editor.createInside.element('img');
                            image.setAttribute('src', url);
                            image.setAttribute('alt', text);
                            if (!!sourceImage) return [3, 2];
                            return [4, editor.s.insertImage(image, null, editor.o.imageDefaultWidth)];
                        case 1:
                            _a.sent();
                            _a.label = 2;
                        case 2:
                            close();
                            return [2];
                    }
                });
            }); }
        }, sourceImage, close);
    },
    tags: ['img'],
    tooltip: 'Insert Image'
};
function image(editor) {
    editor.registerButton({
        name: 'image',
        group: 'media'
    });
}
exports.image = image;
global_1.pluginSystem.add('image', image);


/***/ }),

/***/ 2916:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1210406__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1210406__(93166);
var dom_1 = __nested_webpack_require_1210406__(64968);
var icon_1 = __nested_webpack_require_1210406__(77904);
var helpers_1 = __nested_webpack_require_1210406__(26011);
icon_1.Icon.set('indent', __nested_webpack_require_1210406__(90053)).set('outdent', __nested_webpack_require_1210406__(72230));
config_1.Config.prototype.controls.indent = {
    tooltip: 'Increase Indent'
};
config_1.Config.prototype.controls.outdent = {
    isDisabled: function (editor) {
        var current = editor.s.current();
        if (current) {
            var currentBox = dom_1.Dom.closest(current, dom_1.Dom.isBlock, editor.editor);
            if (currentBox) {
                var arrow = (0, helpers_1.getKey)(editor.o.direction, currentBox);
                return (!currentBox.style[arrow] ||
                    parseInt(currentBox.style[arrow], 10) <= 0);
            }
        }
        return true;
    },
    tooltip: 'Decrease Indent'
};
config_1.Config.prototype.indentMargin = 10;


/***/ }),

/***/ 26011:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1211753__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getKey = void 0;
var dom_1 = __nested_webpack_require_1211753__(24263);
var getKey = function (direction, box) {
    return "".concat(dom_1.Dom.isCell(box) ? 'padding' : 'margin').concat(direction === 'rtl' ? 'Right' : 'Left');
};
exports.getKey = getKey;


/***/ }),

/***/ 71838:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1212403__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.indent = void 0;
var constants_1 = __nested_webpack_require_1212403__(86893);
var dom_1 = __nested_webpack_require_1212403__(64968);
var helpers_1 = __nested_webpack_require_1212403__(40332);
var global_1 = __nested_webpack_require_1212403__(17332);
__nested_webpack_require_1212403__(2916);
var helpers_2 = __nested_webpack_require_1212403__(26011);
function indent(editor) {
    editor
        .registerButton({
        name: 'indent',
        group: 'indent'
    })
        .registerButton({
        name: 'outdent',
        group: 'indent'
    });
    var callback = function (command) {
        var processedElements = [];
        editor.s.eachSelection(function (current) {
            editor.s.save();
            var currentBox = current
                ? dom_1.Dom.up(current, dom_1.Dom.isBlock, editor.editor)
                : false;
            var enter = editor.o.enter;
            if (!currentBox && current) {
                currentBox = dom_1.Dom.wrapInline(current, enter !== constants_1.BR ? enter : constants_1.PARAGRAPH, editor);
            }
            if (!currentBox) {
                editor.s.restore();
                return false;
            }
            var alreadyIndented = processedElements.includes(currentBox);
            if (currentBox && !alreadyIndented) {
                var key = (0, helpers_2.getKey)(editor.o.direction, currentBox);
                processedElements.push(currentBox);
                var value = currentBox.style[key]
                    ? parseInt(currentBox.style[key], 10)
                    : 0;
                value +=
                    editor.o.indentMargin * (command === 'outdent' ? -1 : 1);
                currentBox.style[key] = value > 0 ? value + 'px' : '';
                if (!(0, helpers_1.attr)(currentBox, 'style')) {
                    (0, helpers_1.attr)(currentBox, 'style', null);
                }
            }
            editor.s.restore();
        });
        editor.synchronizeValues();
        return false;
    };
    editor.registerCommand('indent', {
        exec: callback,
        hotkeys: ['ctrl+]', 'cmd+]']
    });
    editor.registerCommand('outdent', {
        exec: callback,
        hotkeys: ['ctrl+[', 'cmd+[']
    });
}
exports.indent = indent;
global_1.pluginSystem.add('indent', indent);


/***/ }),

/***/ 70022:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1215027__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
__nested_webpack_require_1215027__(55692);
__nested_webpack_require_1215027__(66031);
__nested_webpack_require_1215027__(91241);
__nested_webpack_require_1215027__(87565);
__nested_webpack_require_1215027__(60894);
__nested_webpack_require_1215027__(90302);
__nested_webpack_require_1215027__(92138);
__nested_webpack_require_1215027__(88412);
__nested_webpack_require_1215027__(79308);
__nested_webpack_require_1215027__(19268);
__nested_webpack_require_1215027__(30598);
__nested_webpack_require_1215027__(33122);
__nested_webpack_require_1215027__(10135);
__nested_webpack_require_1215027__(66994);
__nested_webpack_require_1215027__(54798);
__nested_webpack_require_1215027__(12908);
__nested_webpack_require_1215027__(65123);
__nested_webpack_require_1215027__(83228);
__nested_webpack_require_1215027__(43889);
__nested_webpack_require_1215027__(93300);
__nested_webpack_require_1215027__(67547);
__nested_webpack_require_1215027__(92575);
__nested_webpack_require_1215027__(15747);
__nested_webpack_require_1215027__(71838);
__nested_webpack_require_1215027__(54752);
__nested_webpack_require_1215027__(54452);
__nested_webpack_require_1215027__(46324);
__nested_webpack_require_1215027__(27738);
__nested_webpack_require_1215027__(61421);
__nested_webpack_require_1215027__(27582);
__nested_webpack_require_1215027__(76303);
__nested_webpack_require_1215027__(19806);
__nested_webpack_require_1215027__(52598);
__nested_webpack_require_1215027__(19483);
__nested_webpack_require_1215027__(15428);
__nested_webpack_require_1215027__(47224);
__nested_webpack_require_1215027__(83211);
__nested_webpack_require_1215027__(88297);
__nested_webpack_require_1215027__(72930);
__nested_webpack_require_1215027__(51197);
__nested_webpack_require_1215027__(2327);
__nested_webpack_require_1215027__(47608);
__nested_webpack_require_1215027__(90523);
__nested_webpack_require_1215027__(69257);
__nested_webpack_require_1215027__(14889);
__nested_webpack_require_1215027__(95323);
__nested_webpack_require_1215027__(37458);
__nested_webpack_require_1215027__(71003);
__nested_webpack_require_1215027__(86030);
__nested_webpack_require_1215027__(17002);
__nested_webpack_require_1215027__(1557);
__nested_webpack_require_1215027__(82808);
__nested_webpack_require_1215027__(48560);
__nested_webpack_require_1215027__(32246);
__nested_webpack_require_1215027__(45842);
__nested_webpack_require_1215027__(23308);
__nested_webpack_require_1215027__(19889);
__nested_webpack_require_1215027__(20728);
__nested_webpack_require_1215027__(96899);
__nested_webpack_require_1215027__(18238);


/***/ }),

/***/ 35387:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1217106__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1217106__(93166);
var icon_1 = __nested_webpack_require_1217106__(77904);
config_1.Config.prototype.toolbarInline = true;
config_1.Config.prototype.toolbarInlineForSelection = false;
config_1.Config.prototype.toolbarInlineDisableFor = [];
config_1.Config.prototype.toolbarInlineDisabledButtons = ['source'];
icon_1.Icon.set('addcolumn', __nested_webpack_require_1217106__(78321))
    .set('addrow', __nested_webpack_require_1217106__(77654))
    .set('merge', __nested_webpack_require_1217106__(43371))
    .set('th', __nested_webpack_require_1217106__(52242))
    .set('splitg', __nested_webpack_require_1217106__(44563))
    .set('splitv', __nested_webpack_require_1217106__(53183))
    .set('th-list', __nested_webpack_require_1217106__(18548));
config_1.Config.prototype.popup = {
    a: (__nested_webpack_require_1217106__(27487)/* ["default"] */ .Z),
    img: (__nested_webpack_require_1217106__(97425)["default"]),
    cells: (__nested_webpack_require_1217106__(59500)/* ["default"] */ .Z),
    toolbar: (__nested_webpack_require_1217106__(55350)/* ["default"] */ .Z),
    jodit: (__nested_webpack_require_1217106__(66686)/* ["default"] */ .Z),
    iframe: (__nested_webpack_require_1217106__(66686)/* ["default"] */ .Z),
    'jodit-media': (__nested_webpack_require_1217106__(66686)/* ["default"] */ .Z),
    selection: [
        'bold',
        'underline',
        'italic',
        'ul',
        'ol',
        '\n',
        'outdent',
        'indent',
        'fontsize',
        'brush',
        'cut',
        '\n',
        'paragraph',
        'link',
        'align',
        'dots'
    ]
};


/***/ }),

/***/ 27487:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1218915__) {

"use strict";
var __webpack_unused_export__;

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
__webpack_unused_export__ = ({ value: true });
var utils_1 = __nested_webpack_require_1218915__(76502);
exports.Z = [
    {
        name: 'eye',
        tooltip: 'Open link',
        exec: function (editor, current) {
            var href = (0, utils_1.attr)(current, 'href');
            if (current && href) {
                editor.ow.open(href);
            }
        }
    },
    {
        name: 'link',
        tooltip: 'Edit link',
        icon: 'pencil'
    },
    'unlink',
    'brush',
    'file'
];


/***/ }),

/***/ 59500:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1219777__) {

"use strict";
var __webpack_unused_export__;

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
__webpack_unused_export__ = ({ value: true });
var checker_1 = __nested_webpack_require_1219777__(10172);
var css_1 = __nested_webpack_require_1219777__(26911);
var widget_1 = __nested_webpack_require_1219777__(718);
var cmd = function (control) {
    return control.args && (0, checker_1.isString)(control.args[0])
        ? control.args[0].toLowerCase()
        : '';
};
exports.Z = [
    {
        name: 'brush',
        popup: function (editor, _, _1, close) {
            if (!(0, checker_1.isJoditObject)(editor)) {
                return;
            }
            var tableModule = editor.getInstance('Table', editor.o), selected = tableModule.getAllSelectedCells();
            if (!selected.length) {
                return false;
            }
            var makeColorPicker = function (key) {
                return (0, widget_1.ColorPickerWidget)(editor, function (value) {
                    selected.forEach(function (cell) {
                        (0, css_1.css)(cell, key, value);
                    });
                    editor.lock();
                    editor.synchronizeValues();
                    close();
                    editor.unlock();
                }, (0, css_1.css)(selected[0], key));
            };
            return (0, widget_1.TabsWidget)(editor, [
                {
                    name: 'Background',
                    content: makeColorPicker('background-color')
                },
                { name: 'Text', content: makeColorPicker('color') },
                { name: 'Border', content: makeColorPicker('border-color') }
            ]);
        },
        tooltip: 'Background'
    },
    {
        name: 'valign',
        list: ['Top', 'Middle', 'Bottom', 'Normal'],
        childTemplate: function (_, __, value) { return value; },
        exec: function (editor, table, _a) {
            var control = _a.control;
            var command = cmd(control);
            editor
                .getInstance('Table', editor.o)
                .getAllSelectedCells()
                .forEach(function (cell) {
                (0, css_1.css)(cell, 'vertical-align', command === 'normal' ? '' : command);
            });
        },
        tooltip: 'Vertical align'
    },
    {
        name: 'splitv',
        list: {
            tablesplitv: 'Split vertical',
            tablesplitg: 'Split horizontal'
        },
        tooltip: 'Split'
    },
    {
        name: 'align',
        icon: 'left'
    },
    '\n',
    {
        name: 'merge',
        command: 'tablemerge',
        tooltip: 'Merge'
    },
    {
        name: 'addcolumn',
        list: {
            tableaddcolumnbefore: 'Insert column before',
            tableaddcolumnafter: 'Insert column after'
        },
        exec: function (editor, table, _a) {
            var control = _a.control;
            if (!(0, checker_1.isJoditObject)(editor)) {
                return;
            }
            var command = cmd(control);
            editor.execCommand(command, false, table);
        },
        tooltip: 'Add column'
    },
    {
        name: 'addrow',
        list: {
            tableaddrowbefore: 'Insert row above',
            tableaddrowafter: 'Insert row below'
        },
        exec: function (editor, table, _a) {
            var control = _a.control;
            if (!(0, checker_1.isJoditObject)(editor)) {
                return;
            }
            var command = cmd(control);
            editor.execCommand(command, false, table);
        },
        tooltip: 'Add row'
    },
    {
        name: 'delete',
        icon: 'bin',
        list: {
            tablebin: 'Delete table',
            tablebinrow: 'Delete row',
            tablebincolumn: 'Delete column',
            tableempty: 'Empty cell'
        },
        exec: function (editor, table, _a) {
            var control = _a.control;
            if (!(0, checker_1.isJoditObject)(editor)) {
                return;
            }
            var command = cmd(control);
            editor.execCommand(command, false, table);
            editor.e.fire('hidePopup');
        },
        tooltip: 'Delete'
    }
];


/***/ }),

/***/ 66686:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1224230__) {

"use strict";
var __webpack_unused_export__;

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
__webpack_unused_export__ = ({ value: true });
var img_1 = __nested_webpack_require_1224230__(97425);
exports.Z = [
    {
        name: 'bin',
        tooltip: 'Delete',
        exec: function (editor, image) {
            image && editor.s.removeNode(image);
        }
    },
    img_1.align
];


/***/ }),

/***/ 97425:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1224878__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.align = void 0;
var dom_1 = __nested_webpack_require_1224878__(64968);
var is_string_1 = __nested_webpack_require_1224878__(24421);
var css_1 = __nested_webpack_require_1224878__(26911);
var align_1 = __nested_webpack_require_1224878__(60303);
exports.align = {
    name: 'left',
    childTemplate: function (_, __, value) { return value; },
    list: ['Left', 'Right', 'Center', 'Normal'],
    exec: function (editor, elm, _a) {
        var control = _a.control;
        if (!dom_1.Dom.isTag(elm, ['img', 'jodit', 'jodit-media'])) {
            return;
        }
        var command = control.args && (0, is_string_1.isString)(control.args[0])
            ? control.args[0].toLowerCase()
            : '';
        if (!command) {
            return false;
        }
        (0, align_1.hAlignElement)(elm, command);
        if (dom_1.Dom.isTag(elm, ['jodit', 'jodit-media']) && elm.firstElementChild) {
            (0, align_1.hAlignElement)(elm.firstElementChild, command);
        }
        editor.synchronizeValues();
        editor.e.fire('recalcPositionPopup');
    },
    tooltip: 'Horizontal align'
};
exports["default"] = [
    {
        name: 'delete',
        icon: 'bin',
        tooltip: 'Delete',
        exec: function (editor, image) {
            image && editor.s.removeNode(image);
        }
    },
    {
        name: 'pencil',
        exec: function (editor, current) {
            var tagName = current.tagName.toLowerCase();
            if (tagName === 'img') {
                editor.e.fire('openImageProperties', current);
            }
        },
        tooltip: 'Edit'
    },
    {
        name: 'valign',
        list: ['Top', 'Middle', 'Bottom', 'Normal'],
        tooltip: 'Vertical align',
        exec: function (editor, image, _a) {
            var control = _a.control;
            if (!dom_1.Dom.isTag(image, 'img')) {
                return;
            }
            var command = control.args && (0, is_string_1.isString)(control.args[0])
                ? control.args[0].toLowerCase()
                : '';
            if (!command) {
                return false;
            }
            (0, css_1.css)(image, 'vertical-align', command === 'normal' ? '' : command);
            editor.e.fire('recalcPositionPopup');
        }
    },
    exports.align
];


/***/ }),

/***/ 55350:
/***/ (function(__unused_webpack_module, exports) {

"use strict";
var __webpack_unused_export__;

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
__webpack_unused_export__ = ({ value: true });
exports.Z = [
    'bold',
    'italic',
    '|',
    'ul',
    'ol',
    'eraser',
    '|',
    'fontsize',
    'brush',
    'paragraph',
    '---',
    'image',
    'table',
    '\n',
    'link',
    '|',
    'align',
    '|',
    'undo',
    'redo',
    '|',
    'copyformat',
    'fullsize',
    '---',
    'dots'
];


/***/ }),

/***/ 54752:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1228238__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.inlinePopup = void 0;
var tslib_1 = __nested_webpack_require_1228238__(20255);
__nested_webpack_require_1228238__(45109);
var plugin_1 = __nested_webpack_require_1228238__(57549);
var factory_1 = __nested_webpack_require_1228238__(81438);
var popup_1 = __nested_webpack_require_1228238__(35799);
var helpers_1 = __nested_webpack_require_1228238__(40332);
var dom_1 = __nested_webpack_require_1228238__(64968);
var ui_1 = __nested_webpack_require_1228238__(2074);
var decorators_1 = __nested_webpack_require_1228238__(43441);
var global_1 = __nested_webpack_require_1228238__(17332);
__nested_webpack_require_1228238__(35387);
var inlinePopup = (function (_super) {
    tslib_1.__extends(inlinePopup, _super);
    function inlinePopup() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.requires = ['select'];
        _this.type = null;
        _this.popup = new popup_1.Popup(_this.jodit, false);
        _this.toolbar = (0, factory_1.makeCollection)(_this.jodit, _this.popup);
        _this.snapRange = null;
        _this.elmsList = (0, helpers_1.keys)(_this.j.o.popup, false).filter(function (s) { return !_this.isExcludedTarget(s); });
        return _this;
    }
    inlinePopup.prototype.onClick = function (node) {
        var _this = this;
        var elements = this.elmsList, target = dom_1.Dom.isTag(node, 'img')
            ? node
            : dom_1.Dom.closest(node, elements, this.j.editor);
        if (target && this.canShowPopupForType(target.nodeName.toLowerCase())) {
            this.showPopup(function () { return (0, helpers_1.position)(target, _this.j); }, target.nodeName.toLowerCase(), target);
            return false;
        }
    };
    inlinePopup.prototype.showPopup = function (rect, type, target) {
        type = type.toLowerCase();
        if (!this.canShowPopupForType(type)) {
            return false;
        }
        if (this.type !== type || target !== this.previousTarget) {
            this.previousTarget = target;
            var data = this.j.o.popup[type];
            var content = void 0;
            if ((0, helpers_1.isFunction)(data)) {
                content = data(this.j, target, this.popup.close);
            }
            else {
                content = data;
            }
            if ((0, helpers_1.isArray)(content)) {
                this.toolbar.build(content, target);
                this.toolbar.buttonSize = this.j.o.toolbarButtonSize;
                content = this.toolbar.container;
            }
            this.popup.setContent(content);
            this.type = type;
        }
        this.popup.open(rect);
        return true;
    };
    inlinePopup.prototype.hidePopup = function (type) {
        if (!(0, helpers_1.isString)(type) || type === this.type) {
            this.popup.close();
        }
    };
    inlinePopup.prototype.onOutsideClick = function () {
        this.popup.close();
    };
    inlinePopup.prototype.canShowPopupForType = function (type) {
        var data = this.j.o.popup[type.toLowerCase()];
        if (this.j.o.readonly || !this.j.o.toolbarInline || !data) {
            return false;
        }
        return !this.isExcludedTarget(type);
    };
    inlinePopup.prototype.isExcludedTarget = function (type) {
        return (0, helpers_1.splitArray)(this.j.o.toolbarInlineDisableFor)
            .map(function (a) { return a.toLowerCase(); })
            .includes(type.toLowerCase());
    };
    inlinePopup.prototype.afterInit = function (jodit) {
        var _this = this;
        this.j.e
            .on('getDiffButtons.mobile', function (toolbar) {
            if (_this.toolbar === toolbar) {
                var names_1 = _this.toolbar.getButtonsNames();
                return (0, helpers_1.toArray)(jodit.registeredButtons)
                    .filter(function (btn) {
                    return !_this.j.o.toolbarInlineDisabledButtons.includes(btn.name);
                })
                    .filter(function (item) {
                    var name = (0, helpers_1.isString)(item) ? item : item.name;
                    return (name &&
                        name !== '|' &&
                        name !== '\n' &&
                        !names_1.includes(name));
                });
            }
        })
            .on('hidePopup', this.hidePopup)
            .on('showInlineToolbar', this.showInlineToolbar)
            .on('showPopup', function (elm, rect, type) {
            _this.showPopup(rect, type || ((0, helpers_1.isString)(elm) ? elm : elm.nodeName), (0, helpers_1.isString)(elm) ? undefined : elm);
        })
            .on('mousedown keydown', this.onSelectionStart)
            .on('change', function () {
            if (_this.popup.isOpened &&
                _this.previousTarget &&
                !_this.previousTarget.parentNode) {
                _this.hidePopup();
                _this.previousTarget = undefined;
            }
        })
            .on([this.j.ew, this.j.ow], 'mouseup keyup', this.onSelectionEnd);
        this.addListenersForElements();
    };
    inlinePopup.prototype.onSelectionStart = function () {
        this.snapRange = this.j.s.range.cloneRange();
    };
    inlinePopup.prototype.onSelectionEnd = function (e) {
        if (e &&
            e.target &&
            ui_1.UIElement.closestElement(e.target, popup_1.Popup)) {
            return;
        }
        var snapRange = this.snapRange, range = this.j.s.range;
        if (!snapRange ||
            range.collapsed ||
            range.startContainer !== snapRange.startContainer ||
            range.startOffset !== snapRange.startOffset ||
            range.endContainer !== snapRange.endContainer ||
            range.endOffset !== snapRange.endOffset) {
            this.onSelectionChange();
        }
    };
    inlinePopup.prototype.onSelectionChange = function () {
        if (!this.j.o.toolbarInlineForSelection) {
            return;
        }
        var type = 'selection', sel = this.j.s.sel, range = this.j.s.range;
        if ((sel === null || sel === void 0 ? void 0 : sel.isCollapsed) ||
            this.isSelectedTarget(range) ||
            this.tableModule.getAllSelectedCells().length) {
            if (this.type === type && this.popup.isOpened) {
                this.hidePopup();
            }
            return;
        }
        var node = this.j.s.current();
        if (!node) {
            return;
        }
        this.showPopup(function () { return range.getBoundingClientRect(); }, type);
    };
    inlinePopup.prototype.isSelectedTarget = function (r) {
        var sc = r.startContainer;
        return (dom_1.Dom.isElement(sc) &&
            sc === r.endContainer &&
            dom_1.Dom.isTag(sc.childNodes[r.startOffset], (0, helpers_1.keys)(this.j.o.popup, false)) &&
            r.startOffset === r.endOffset - 1);
    };
    Object.defineProperty(inlinePopup.prototype, "tableModule", {
        get: function () {
            return this.j.getInstance('Table', this.j.o);
        },
        enumerable: false,
        configurable: true
    });
    inlinePopup.prototype.beforeDestruct = function (jodit) {
        jodit.e
            .off('showPopup')
            .off([this.j.ew, this.j.ow], 'mouseup keyup', this.onSelectionEnd);
        this.removeListenersForElements();
    };
    inlinePopup.prototype._eventsList = function () {
        var el = this.elmsList;
        return el
            .map(function (e) { return (0, helpers_1.camelCase)("click_".concat(e)); })
            .concat(el.map(function (e) { return (0, helpers_1.camelCase)("touchstart_".concat(e)); }))
            .join(' ');
    };
    inlinePopup.prototype.addListenersForElements = function () {
        this.j.e.on(this._eventsList(), this.onClick);
    };
    inlinePopup.prototype.removeListenersForElements = function () {
        this.j.e.off(this._eventsList(), this.onClick);
    };
    inlinePopup.prototype.showInlineToolbar = function (bound) {
        var _this = this;
        this.showPopup(function () {
            if (bound) {
                return bound;
            }
            var range = _this.j.s.range;
            return range.getBoundingClientRect();
        }, 'toolbar');
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], inlinePopup.prototype, "onClick", null);
    tslib_1.__decorate([
        (0, decorators_1.wait)(function (ctx) { return !ctx.j.isLocked; })
    ], inlinePopup.prototype, "showPopup", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':clickEditor'),
        decorators_1.autobind
    ], inlinePopup.prototype, "hidePopup", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':outsideClick')
    ], inlinePopup.prototype, "onOutsideClick", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], inlinePopup.prototype, "onSelectionStart", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], inlinePopup.prototype, "onSelectionEnd", null);
    tslib_1.__decorate([
        (0, decorators_1.debounce)(function (ctx) { return ctx.defaultTimeout; })
    ], inlinePopup.prototype, "onSelectionChange", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], inlinePopup.prototype, "showInlineToolbar", null);
    return inlinePopup;
}(plugin_1.Plugin));
exports.inlinePopup = inlinePopup;
global_1.pluginSystem.add('inlinePopup', inlinePopup);


/***/ }),

/***/ 54452:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1237878__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.justify = void 0;
var config_1 = __nested_webpack_require_1237878__(93166);
var dom_1 = __nested_webpack_require_1237878__(24263);
var css_1 = __nested_webpack_require_1237878__(26911);
var align_1 = __nested_webpack_require_1237878__(60303);
var global_1 = __nested_webpack_require_1237878__(17332);
var icon_1 = __nested_webpack_require_1237878__(77904);
icon_1.Icon.set('justify', __nested_webpack_require_1237878__(87498));
config_1.Config.prototype.controls.align = {
    name: 'left',
    tooltip: 'Align',
    update: function (button, editor) {
        var control = button.control, current = editor.s.current();
        if (current) {
            var currentBox = dom_1.Dom.closest(current, dom_1.Dom.isBlock, editor.editor) ||
                editor.editor;
            var currentValue = (0, css_1.css)(currentBox, 'text-align').toString();
            if (control.defaultValue &&
                control.defaultValue.indexOf(currentValue) !== -1) {
                currentValue = 'left';
            }
            if (control.data &&
                control.data.currentValue !== currentValue &&
                control.list &&
                control.list.indexOf(currentValue) !== -1) {
                if (editor.o.textIcons) {
                    button.state.text = currentValue;
                }
                else {
                    button.state.icon.name = currentValue;
                }
                control.data.currentValue = currentValue;
            }
        }
    },
    isActive: function (editor, btn) {
        var current = editor.s.current();
        if (current && btn.defaultValue) {
            var currentBox = dom_1.Dom.closest(current, dom_1.Dom.isBlock, editor.editor) || editor.editor;
            return (btn.defaultValue.indexOf((0, css_1.css)(currentBox, 'text-align').toString()) === -1);
        }
        return false;
    },
    defaultValue: ['left', 'start', 'inherit'],
    data: {
        currentValue: 'left'
    },
    list: ['center', 'left', 'right', 'justify']
};
config_1.Config.prototype.controls.center = {
    command: 'justifyCenter',
    css: {
        'text-align': 'center'
    },
    tooltip: 'Align Center'
};
config_1.Config.prototype.controls.justify = {
    command: 'justifyFull',
    css: {
        'text-align': 'justify'
    },
    tooltip: 'Align Justify'
};
config_1.Config.prototype.controls.left = {
    command: 'justifyLeft',
    css: {
        'text-align': 'left'
    },
    tooltip: 'Align Left'
};
config_1.Config.prototype.controls.right = {
    command: 'justifyRight',
    css: {
        'text-align': 'right'
    },
    tooltip: 'Align Right'
};
function justify(editor) {
    editor.registerButton({
        name: 'align',
        group: 'indent'
    });
    var callback = function (command) {
        editor.s.focus();
        editor.s.eachSelection(function (current) {
            if (!current) {
                return;
            }
            var currentBox = dom_1.Dom.up(current, dom_1.Dom.isBlock, editor.editor);
            if (!currentBox) {
                currentBox = dom_1.Dom.wrapInline(current, editor.o.enterBlock, editor);
            }
            (0, align_1.alignElement)(command, currentBox);
        });
        return false;
    };
    editor.registerCommand('justifyfull', callback);
    editor.registerCommand('justifyright', callback);
    editor.registerCommand('justifyleft', callback);
    editor.registerCommand('justifycenter', callback);
}
exports.justify = justify;
global_1.pluginSystem.add('justify', justify);


/***/ }),

/***/ 46324:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1241731__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.keyArrowOutside = void 0;
var tslib_1 = __nested_webpack_require_1241731__(20255);
var plugin_1 = __nested_webpack_require_1241731__(57549);
var decorators_1 = __nested_webpack_require_1241731__(43441);
var constants_1 = __nested_webpack_require_1241731__(86893);
var dom_1 = __nested_webpack_require_1241731__(24263);
var global_1 = __nested_webpack_require_1241731__(17332);
var keyArrowOutside = (function (_super) {
    tslib_1.__extends(keyArrowOutside, _super);
    function keyArrowOutside() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    keyArrowOutside.prototype.afterInit = function (jodit) { };
    keyArrowOutside.prototype.beforeDestruct = function (jodit) { };
    keyArrowOutside.prototype.onKeyDownArrow = function (e) {
        var _a;
        if (e.key !== constants_1.KEY_RIGHT || !this.j.selection.isCollapsed()) {
            return;
        }
        var _b = this.j.selection.range, endContainer = _b.endContainer, endOffset = _b.endOffset;
        if (!dom_1.Dom.isText(endContainer)) {
            return;
        }
        if (((_a = endContainer.nodeValue) === null || _a === void 0 ? void 0 : _a.length) === endOffset) {
            var parentNode = endContainer.parentNode;
            if (dom_1.Dom.isInlineBlock(parentNode) &&
                !dom_1.Dom.findNotEmptyNeighbor(parentNode, false, this.j.editor)) {
                dom_1.Dom.after(parentNode, this.j.createInside.text(constants_1.NBSP_SPACE));
            }
        }
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':keydown')
    ], keyArrowOutside.prototype, "onKeyDownArrow", null);
    return keyArrowOutside;
}(plugin_1.Plugin));
exports.keyArrowOutside = keyArrowOutside;
global_1.pluginSystem.add('keyArrowOutside', keyArrowOutside);


/***/ }),

/***/ 19250:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1243840__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1243840__(93166);
config_1.Config.prototype.limitWords = false;
config_1.Config.prototype.limitChars = false;
config_1.Config.prototype.limitHTML = false;


/***/ }),

/***/ 27738:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1244421__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.limit = void 0;
var tslib_1 = __nested_webpack_require_1244421__(20255);
var plugin_1 = __nested_webpack_require_1244421__(57549);
var constants_1 = __nested_webpack_require_1244421__(86893);
var decorators_1 = __nested_webpack_require_1244421__(43441);
var global_1 = __nested_webpack_require_1244421__(17332);
__nested_webpack_require_1244421__(19250);
var limit = (function (_super) {
    tslib_1.__extends(limit, _super);
    function limit() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    limit.prototype.afterInit = function (jodit) {
        var _this = this;
        var _a = jodit.o, limitWords = _a.limitWords, limitChars = _a.limitChars;
        if (jodit && (limitWords || limitChars)) {
            var snapshot_1 = null;
            jodit.e
                .off('.limit')
                .on('beforePaste.limit', function () {
                snapshot_1 = jodit.history.snapshot.make();
            })
                .on('keydown.limit keyup.limit beforeEnter.limit', this.checkPreventKeyPressOrPaste)
                .on('change.limit', this.checkPreventChanging)
                .on('afterPaste.limit', function () {
                if (_this.__shouldDenyInput(true) && snapshot_1) {
                    jodit.history.snapshot.restore(snapshot_1);
                    jodit.e.fire('denyPaste.limit');
                    return false;
                }
            });
        }
    };
    limit.prototype.shouldPreventInsertHTML = function (event) {
        if (event &&
            (constants_1.COMMAND_KEYS.includes(event.key) || event.ctrlKey || event.metaKey)) {
            return false;
        }
        return this.__shouldDenyInput(false);
    };
    limit.prototype.__shouldDenyInput = function (strict) {
        var jodit = this.jodit;
        var _a = jodit.o, limitWords = _a.limitWords, limitChars = _a.limitChars;
        var text = jodit.o.limitHTML ? jodit.value : jodit.text;
        var words = this.__splitWords(text);
        if (limitWords && isGt(words.length, limitWords, strict)) {
            jodit.e.fire('denyWords.limit limit.limit');
            return true;
        }
        var should = Boolean(limitChars && isGt(words.join('').length, limitChars, strict));
        if (should) {
            jodit.e.fire('denyChars.limit limit.limit');
        }
        return should;
    };
    limit.prototype.checkPreventKeyPressOrPaste = function (event) {
        if (this.shouldPreventInsertHTML(event)) {
            return false;
        }
    };
    limit.prototype.checkPreventChanging = function (newValue, oldValue) {
        var jodit = this.jodit;
        if (this.__shouldDenyInput(true)) {
            jodit.value = oldValue;
        }
    };
    limit.prototype.__splitWords = function (text) {
        return text
            .replace((0, constants_1.INVISIBLE_SPACE_REG_EXP)(), '')
            .split((0, constants_1.SPACE_REG_EXP)())
            .filter(function (e) { return e.length; });
    };
    limit.prototype.beforeDestruct = function (jodit) {
        jodit.e.off('.limit');
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], limit.prototype, "checkPreventKeyPressOrPaste", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], limit.prototype, "checkPreventChanging", null);
    return limit;
}(plugin_1.Plugin));
exports.limit = limit;
function isGt(a, b, strict) {
    return strict ? a > b : a >= b;
}
global_1.pluginSystem.add('limit', limit);


/***/ }),

/***/ 29490:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1248227__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1248227__(93166);
var helpers_1 = __nested_webpack_require_1248227__(40332);
var icon_1 = __nested_webpack_require_1248227__(77904);
config_1.Config.prototype.defaultLineHeight = null;
icon_1.Icon.set('line-height', __nested_webpack_require_1248227__(7986));
config_1.Config.prototype.controls.lineHeight = {
    command: 'applyLineHeight',
    tags: ['ol'],
    tooltip: 'Line height',
    list: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 2],
    exec: function (editor, event, _a) {
        var control = _a.control;
        return (0, helpers_1.memorizeExec)(editor, event, { control: control }, function (value) { return value; });
    }
};


/***/ }),

/***/ 26752:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1249239__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.zh_tw = exports.zh_cn = exports.tr = exports.ru = exports.pt_br = exports.pl = exports.nl = exports.mn = exports.ko = exports.ja = exports.it = exports.id = exports.hu = exports.he = exports.fr = exports.fa = exports.es = exports.de = exports.cs_cz = exports.ar = void 0;
var ar = __nested_webpack_require_1249239__(47762);
exports.ar = ar;
var cs_cz = __nested_webpack_require_1249239__(97495);
exports.cs_cz = cs_cz;
var de = __nested_webpack_require_1249239__(80131);
exports.de = de;
var es = __nested_webpack_require_1249239__(1201);
exports.es = es;
var fa = __nested_webpack_require_1249239__(89912);
exports.fa = fa;
var fr = __nested_webpack_require_1249239__(3405);
exports.fr = fr;
var he = __nested_webpack_require_1249239__(14129);
exports.he = he;
var hu = __nested_webpack_require_1249239__(93729);
exports.hu = hu;
var id = __nested_webpack_require_1249239__(16106);
exports.id = id;
var it = __nested_webpack_require_1249239__(89690);
exports.it = it;
var ja = __nested_webpack_require_1249239__(33216);
exports.ja = ja;
var ko = __nested_webpack_require_1249239__(17282);
exports.ko = ko;
var mn = __nested_webpack_require_1249239__(52841);
exports.mn = mn;
var nl = __nested_webpack_require_1249239__(91761);
exports.nl = nl;
var pl = __nested_webpack_require_1249239__(61675);
exports.pl = pl;
var pt_br = __nested_webpack_require_1249239__(69709);
exports.pt_br = pt_br;
var ru = __nested_webpack_require_1249239__(82591);
exports.ru = ru;
var tr = __nested_webpack_require_1249239__(87649);
exports.tr = tr;
var zh_cn = __nested_webpack_require_1249239__(60268);
exports.zh_cn = zh_cn;
var zh_tw = __nested_webpack_require_1249239__(58214);
exports.zh_tw = zh_tw;


/***/ }),

/***/ 61421:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1251034__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.lineHeight = void 0;
var tslib_1 = __nested_webpack_require_1251034__(20255);
var plugin_1 = __nested_webpack_require_1251034__(57549);
var helpers_1 = __nested_webpack_require_1251034__(40332);
var decorators_1 = __nested_webpack_require_1251034__(43441);
var dom_1 = __nested_webpack_require_1251034__(24263);
var global_1 = __nested_webpack_require_1251034__(17332);
__nested_webpack_require_1251034__(29490);
var lineHeight = (function (_super) {
    tslib_1.__extends(lineHeight, _super);
    function lineHeight(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.buttons = [
            {
                name: 'lineHeight',
                group: 'font'
            }
        ];
        (0, global_1.extendLang)(__nested_webpack_require_1251034__(26752));
        return _this;
    }
    lineHeight.prototype.afterInit = function (jodit) {
        (0, helpers_1.css)(jodit.editor, {
            lineHeight: jodit.o.defaultLineHeight
        });
        jodit.registerCommand('applyLineHeight', this.applyLineHeight);
    };
    lineHeight.prototype.applyLineHeight = function (ignore, ignoreA, value) {
        var _a = this.j, s = _a.s, c = _a.createInside, root = _a.editor, o = _a.o;
        if (!s.isFocused()) {
            s.focus();
        }
        s.save();
        var addStyle;
        var apply = function (node) {
            var parentBlock = dom_1.Dom.closest(node, dom_1.Dom.isBlock, root);
            if (!parentBlock) {
                parentBlock = dom_1.Dom.wrap(node, o.enter, c);
            }
            var previousValue = (0, helpers_1.css)(parentBlock, 'lineHeight');
            if (addStyle === undefined) {
                addStyle = previousValue.toString() !== value.toString();
            }
            (0, helpers_1.css)(parentBlock, 'lineHeight', addStyle ? value : null);
        };
        try {
            if (s.isCollapsed()) {
                var fake = c.fake();
                s.insertNode(fake, false, false);
                apply(fake);
                dom_1.Dom.safeRemove(fake);
            }
            else {
                s.eachSelection(apply);
            }
        }
        finally {
            s.restore();
        }
    };
    lineHeight.prototype.beforeDestruct = function (jodit) {
        (0, helpers_1.css)(jodit.editor, {
            lineHeight: null
        });
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], lineHeight.prototype, "applyLineHeight", null);
    return lineHeight;
}(plugin_1.Plugin));
exports.lineHeight = lineHeight;
global_1.pluginSystem.add('lineHeight', lineHeight);


/***/ }),

/***/ 56367:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1253936__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1253936__(93166);
var template_1 = __nested_webpack_require_1253936__(54238);
var dom_1 = __nested_webpack_require_1253936__(24263);
var icon_1 = __nested_webpack_require_1253936__(77904);
config_1.Config.prototype.link = {
    formTemplate: template_1.formTemplate,
    followOnDblClick: false,
    processVideoLink: true,
    processPastedLink: true,
    noFollowCheckbox: true,
    openInNewTabCheckbox: true,
    modeClassName: 'input',
    selectMultipleClassName: true,
    selectSizeClassName: 3,
    selectOptionsClassName: [],
    hotkeys: ['ctrl+k', 'cmd+k']
};
icon_1.Icon.set('link', __nested_webpack_require_1253936__(23075)).set('unlink', __nested_webpack_require_1253936__(10655));
config_1.Config.prototype.controls.unlink = {
    exec: function (editor, current) {
        var anchor = dom_1.Dom.closest(current, 'a', editor.editor);
        if (anchor) {
            dom_1.Dom.unwrap(anchor);
        }
        editor.synchronizeValues();
        editor.e.fire('hidePopup');
    },
    tooltip: 'Unlink'
};
config_1.Config.prototype.controls.link = {
    isActive: function (editor) {
        var current = editor.s.current();
        return Boolean(current && dom_1.Dom.closest(current, 'a', editor.editor));
    },
    popup: function (editor, current, self, close) {
        return editor.e.fire('generateLinkForm.link', current, close);
    },
    tags: ['a'],
    tooltip: 'Insert link'
};


/***/ }),

/***/ 27582:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1255700__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.link = void 0;
var tslib_1 = __nested_webpack_require_1255700__(20255);
var dom_1 = __nested_webpack_require_1255700__(64968);
var helpers_1 = __nested_webpack_require_1255700__(40332);
var plugin_1 = __nested_webpack_require_1255700__(57549);
var decorators_1 = __nested_webpack_require_1255700__(43441);
var global_1 = __nested_webpack_require_1255700__(17332);
__nested_webpack_require_1255700__(56367);
var link = (function (_super) {
    tslib_1.__extends(link, _super);
    function link() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'link',
                group: 'insert'
            }
        ];
        return _this;
    }
    link.prototype.afterInit = function (jodit) {
        var _this = this;
        if (jodit.o.link.followOnDblClick) {
            jodit.e.on('dblclick.link', this.onDblClickOnLink);
        }
        if (jodit.o.link.processPastedLink) {
            jodit.e.on('processPaste.link', this.onProcessPasteLink);
        }
        jodit.e.on('generateLinkForm.link', this.__generateForm);
        jodit.registerCommand('openLinkDialog', {
            exec: function () {
                var dialog = jodit.dlg({
                    resizable: false
                });
                var htmlForm = _this.__generateForm(jodit.s.current(), function () {
                    dialog.close();
                });
                htmlForm.container.classList.add('jodit-dialog_alert');
                dialog.setContent(htmlForm);
                dialog.open();
                jodit.async.requestIdleCallback(function () {
                    var url_input = (0, helpers_1.refs)(htmlForm.container).url_input;
                    url_input === null || url_input === void 0 ? void 0 : url_input.focus();
                });
            },
            hotkeys: jodit.o.link.hotkeys
        });
    };
    link.prototype.onDblClickOnLink = function (e) {
        if (!dom_1.Dom.isTag(e.target, 'a')) {
            return;
        }
        var href = (0, helpers_1.attr)(e.target, 'href');
        if (href) {
            location.href = href;
            e.preventDefault();
        }
    };
    link.prototype.onProcessPasteLink = function (ignore, html) {
        var jodit = this.jodit;
        if (!(0, helpers_1.isURL)(html) || !jodit.o.link.processPastedLink) {
            return;
        }
        jodit.e.stopPropagation('processPaste');
        if (jodit.o.link.processVideoLink) {
            var embed = (0, helpers_1.convertMediaUrlToVideoEmbed)(html);
            if (embed !== html) {
                return jodit.createInside.fromHTML(embed);
            }
        }
        if (jodit.s.isCollapsed()) {
            var a = jodit.createInside.element('a');
            a.setAttribute('href', html);
            a.textContent = html;
            jodit.e.fire('applyLink', jodit, a, null);
            return a;
        }
        jodit.s.applyStyle(undefined, {
            element: 'a',
            attributes: {
                href: html
            }
        });
        return true;
    };
    link.prototype.__generateForm = function (current, close) {
        var jodit = this.jodit;
        var i18n = jodit.i18n.bind(jodit), _a = jodit.o.link, openInNewTabCheckbox = _a.openInNewTabCheckbox, noFollowCheckbox = _a.noFollowCheckbox, formTemplate = _a.formTemplate, formClassName = _a.formClassName, modeClassName = _a.modeClassName;
        var html = formTemplate(jodit), form = (0, helpers_1.isString)(html)
            ? jodit.c.fromHTML(html, {
                target_checkbox_box: openInNewTabCheckbox,
                nofollow_checkbox_box: noFollowCheckbox
            })
            : html, htmlForm = dom_1.Dom.isElement(form) ? form : form.container;
        var elements = (0, helpers_1.refs)(htmlForm), insert = elements.insert, unlink = elements.unlink, content_input_box = elements.content_input_box, _b = elements, target_checkbox = _b.target_checkbox, nofollow_checkbox = _b.nofollow_checkbox, url_input = _b.url_input, currentElement = current, isImageContent = dom_1.Dom.isImage(currentElement);
        var content_input = elements.content_input;
        var className_input = elements.className_input, className_select = elements.className_select;
        if (!content_input) {
            content_input = jodit.c.element('input', {
                type: 'hidden',
                ref: 'content_input'
            });
        }
        if (formClassName) {
            htmlForm.classList.add(formClassName);
        }
        if (isImageContent) {
            dom_1.Dom.hide(content_input_box);
        }
        var link;
        var getSelectionText = function () {
            return link
                ? link.innerText
                : (0, helpers_1.stripTags)(jodit.s.range.cloneContents(), jodit.ed);
        };
        if (current && dom_1.Dom.closest(current, 'a', jodit.editor)) {
            link = dom_1.Dom.closest(current, 'a', jodit.editor);
        }
        else {
            link = false;
        }
        if (!isImageContent && current) {
            content_input.value = getSelectionText();
        }
        if (link) {
            url_input.value = (0, helpers_1.attr)(link, 'href') || '';
            if (modeClassName) {
                switch (modeClassName) {
                    case 'input':
                        if (className_input) {
                            className_input.value = (0, helpers_1.attr)(link, 'class') || '';
                        }
                        break;
                    case 'select':
                        if (className_select) {
                            for (var i = 0; i < className_select.selectedOptions.length; i++) {
                                var option = className_select.options.item(i);
                                if (option) {
                                    option.selected = false;
                                }
                            }
                            var classNames = (0, helpers_1.attr)(link, 'class') || '';
                            classNames.split(' ').forEach(function (className) {
                                if (className) {
                                    for (var i = 0; i < className_select.options.length; i++) {
                                        var option = className_select.options.item(i);
                                        if ((option === null || option === void 0 ? void 0 : option.value) &&
                                            option.value === className) {
                                            option.selected = true;
                                        }
                                    }
                                }
                            });
                        }
                        break;
                }
            }
            if (openInNewTabCheckbox && target_checkbox) {
                target_checkbox.checked = (0, helpers_1.attr)(link, 'target') === '_blank';
            }
            if (noFollowCheckbox && nofollow_checkbox) {
                nofollow_checkbox.checked = (0, helpers_1.attr)(link, 'rel') === 'nofollow';
            }
            insert.textContent = i18n('Update');
        }
        else {
            dom_1.Dom.hide(unlink);
        }
        jodit.editor.normalize();
        var snapshot = jodit.history.snapshot.make();
        if (unlink) {
            jodit.e.on(unlink, 'click', function (e) {
                jodit.s.restore();
                jodit.history.snapshot.restore(snapshot);
                if (link) {
                    dom_1.Dom.unwrap(link);
                }
                jodit.synchronizeValues();
                close();
                e.preventDefault();
            });
        }
        var onSubmit = function () {
            if (!url_input.value.trim().length) {
                url_input.focus();
                url_input.classList.add('jodit_error');
                return false;
            }
            var links;
            jodit.s.restore();
            jodit.s.removeMarkers();
            jodit.editor.normalize();
            jodit.history.snapshot.restore(snapshot);
            var textWasChanged = getSelectionText() !== content_input.value.trim();
            var ci = jodit.createInside;
            if (!link) {
                if (!jodit.s.isCollapsed()) {
                    var node = jodit.s.current();
                    if (dom_1.Dom.isTag(node, ['img'])) {
                        links = [dom_1.Dom.wrap(node, 'a', ci)];
                    }
                    else {
                        links = jodit.s.wrapInTag('a');
                    }
                }
                else {
                    var a = ci.element('a');
                    jodit.s.insertNode(a, false, false);
                    links = [a];
                }
                links.forEach(function (link) { return jodit.s.select(link); });
            }
            else {
                links = [link];
            }
            links.forEach(function (a) {
                var _a;
                (0, helpers_1.attr)(a, 'href', url_input.value);
                if (modeClassName && (className_input !== null && className_input !== void 0 ? className_input : className_select)) {
                    if (modeClassName === 'input') {
                        if (className_input.value === '' &&
                            a.hasAttribute('class')) {
                            (0, helpers_1.attr)(a, 'class', null);
                        }
                        if (className_input.value !== '') {
                            (0, helpers_1.attr)(a, 'class', className_input.value);
                        }
                    }
                    else if (modeClassName === 'select') {
                        if (a.hasAttribute('class')) {
                            (0, helpers_1.attr)(a, 'class', null);
                        }
                        for (var i = 0; i < className_select.selectedOptions.length; i++) {
                            var className = (_a = className_select.selectedOptions.item(i)) === null || _a === void 0 ? void 0 : _a.value;
                            if (className) {
                                a.classList.add(className);
                            }
                        }
                    }
                }
                if (!isImageContent) {
                    var newContent = a.textContent;
                    if (content_input.value.trim().length) {
                        if (textWasChanged) {
                            newContent = content_input.value;
                        }
                    }
                    else {
                        newContent = url_input.value;
                    }
                    var content = a.textContent;
                    if (newContent !== content) {
                        a.textContent = newContent;
                    }
                }
                if (openInNewTabCheckbox && target_checkbox) {
                    (0, helpers_1.attr)(a, 'target', target_checkbox.checked ? '_blank' : null);
                }
                if (noFollowCheckbox && nofollow_checkbox) {
                    (0, helpers_1.attr)(a, 'rel', nofollow_checkbox.checked ? 'nofollow' : null);
                }
                jodit.e.fire('applyLink', jodit, a, form);
            });
            jodit.synchronizeValues();
            close();
            return false;
        };
        if (dom_1.Dom.isElement(form)) {
            jodit.e.on(form, 'submit', function (event) {
                event.preventDefault();
                event.stopImmediatePropagation();
                onSubmit();
                return false;
            });
        }
        else {
            form.onSubmit(onSubmit);
        }
        return form;
    };
    link.prototype.beforeDestruct = function (jodit) {
        jodit.e
            .off('generateLinkForm.link', this.__generateForm)
            .off('dblclick.link', this.onDblClickOnLink)
            .off('processPaste.link', this.onProcessPasteLink);
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], link.prototype, "onDblClickOnLink", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], link.prototype, "onProcessPasteLink", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], link.prototype, "__generateForm", null);
    return link;
}(plugin_1.Plugin));
exports.link = link;
global_1.pluginSystem.add('link', link);


/***/ }),

/***/ 54238:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1268616__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.formTemplate = void 0;
var form_1 = __nested_webpack_require_1268616__(95963);
var button_1 = __nested_webpack_require_1268616__(96516);
var formTemplate = function (editor) {
    var _a = editor.o.link, openInNewTabCheckbox = _a.openInNewTabCheckbox, noFollowCheckbox = _a.noFollowCheckbox, modeClassName = _a.modeClassName, selectSizeClassName = _a.selectSizeClassName, selectMultipleClassName = _a.selectMultipleClassName, selectOptionsClassName = _a.selectOptionsClassName;
    return new form_1.UIForm(editor, [
        new form_1.UIBlock(editor, [
            new form_1.UIInput(editor, {
                name: 'url',
                type: 'text',
                ref: 'url_input',
                label: 'URL',
                placeholder: 'http://',
                required: true
            })
        ]),
        new form_1.UIBlock(editor, [
            new form_1.UIInput(editor, {
                name: 'content',
                ref: 'content_input',
                label: 'Text'
            })
        ], {
            ref: 'content_input_box'
        }),
        modeClassName
            ? new form_1.UIBlock(editor, [
                (function () {
                    if (modeClassName === 'input') {
                        return new form_1.UIInput(editor, {
                            name: 'className',
                            ref: 'className_input',
                            label: 'Class name'
                        });
                    }
                    if (modeClassName === 'select') {
                        return new form_1.UISelect(editor, {
                            name: 'className',
                            ref: 'className_select',
                            label: 'Class name',
                            size: selectSizeClassName,
                            multiple: selectMultipleClassName,
                            options: selectOptionsClassName
                        });
                    }
                    return null;
                })()
            ])
            : null,
        openInNewTabCheckbox
            ? new form_1.UICheckbox(editor, {
                name: 'target',
                ref: 'target_checkbox',
                label: 'Open in new tab'
            })
            : null,
        noFollowCheckbox
            ? new form_1.UICheckbox(editor, {
                name: 'nofollow',
                ref: 'nofollow_checkbox',
                label: 'No follow'
            })
            : null,
        new form_1.UIBlock(editor, [
            new button_1.UIButton(editor, {
                name: 'unlink',
                variant: 'default',
                text: 'Unlink'
            }),
            new button_1.UIButton(editor, {
                name: 'insert',
                type: 'submit',
                variant: 'primary',
                text: 'Insert'
            })
        ], {
            align: 'full'
        })
    ]);
};
exports.formTemplate = formTemplate;


/***/ }),

/***/ 11737:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1271978__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1271978__(93166);
config_1.Config.prototype.mediaFakeTag = 'jodit-media';
config_1.Config.prototype.mediaInFakeBlock = true;
config_1.Config.prototype.mediaBlocks = ['video', 'audio'];


/***/ }),

/***/ 76303:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1272589__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.media = void 0;
var consts = __nested_webpack_require_1272589__(86893);
var utils_1 = __nested_webpack_require_1272589__(76502);
var global_1 = __nested_webpack_require_1272589__(17332);
__nested_webpack_require_1272589__(11737);
function media(editor) {
    var keyFake = 'jodit_fake_wrapper';
    var _a = editor.options, mediaFakeTag = _a.mediaFakeTag, mediaBlocks = _a.mediaBlocks, mediaInFakeBlock = _a.mediaInFakeBlock;
    var wrap = function (element) {
        var _a;
        if (element.parentNode &&
            (0, utils_1.attr)(element.parentNode, 'data-jodit_iframe_wrapper')) {
            element = element.parentNode;
        }
        else {
            var wrapper = editor.createInside.element(mediaFakeTag, (_a = {
                    'data-jodit-temp': 1,
                    contenteditable: false,
                    draggable: true
                },
                _a["data-".concat(keyFake)] = 1,
                _a));
            (0, utils_1.attr)(wrapper, 'style', (0, utils_1.attr)(element, 'style'));
            wrapper.style.display =
                element.style.display === 'inline-block'
                    ? 'inline-block'
                    : 'block';
            wrapper.style.width = element.offsetWidth + 'px';
            wrapper.style.height = element.offsetHeight + 'px';
            if (element.parentNode) {
                element.parentNode.insertBefore(wrapper, element);
            }
            wrapper.appendChild(element);
            element = wrapper;
        }
        editor.e
            .off(element, 'mousedown.select touchstart.select')
            .on(element, 'mousedown.select touchstart.select', function () {
            editor.s.setCursorAfter(element);
        });
    };
    if (mediaInFakeBlock) {
        editor.e
            .on('afterGetValueFromEditor', function (data) {
            var rxp = new RegExp("<".concat(mediaFakeTag, "[^>]+data-").concat(keyFake, "[^>]+>([^]+?)</").concat(mediaFakeTag, ">"), 'ig');
            if (rxp.test(data.value)) {
                data.value = data.value.replace(rxp, '$1');
            }
        })
            .on('change afterInit afterSetMode changePlace', editor.async.debounce(function () {
            if (!editor.isDestructed &&
                editor.getMode() !== consts.MODE_SOURCE) {
                (0, utils_1.$$)(mediaBlocks.join(','), editor.editor).forEach(function (elm) {
                    if (!(0, utils_1.dataBind)(elm, keyFake)) {
                        (0, utils_1.dataBind)(elm, keyFake, true);
                        wrap(elm);
                    }
                });
            }
        }, editor.defaultTimeout));
    }
}
exports.media = media;
global_1.pluginSystem.add('media', media);


/***/ }),

/***/ 8860:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1275679__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1275679__(93166);
var consts = __nested_webpack_require_1275679__(86893);
var factory_1 = __nested_webpack_require_1275679__(81438);
var helpers_1 = __nested_webpack_require_1275679__(40332);
var collection_1 = __nested_webpack_require_1275679__(72719);
config_1.Config.prototype.mobileTapTimeout = 300;
config_1.Config.prototype.toolbarAdaptive = true;
config_1.Config.prototype.controls.dots = {
    mode: consts.MODE_SOURCE + consts.MODE_WYSIWYG,
    popup: function (editor, current, control, close, button) {
        var store = control.data;
        if (store === undefined) {
            store = {
                toolbar: (0, factory_1.makeCollection)(editor),
                rebuild: function () {
                    var _a;
                    if (button) {
                        var buttons = editor.e.fire('getDiffButtons.mobile', button.closest(collection_1.ToolbarCollection));
                        if (buttons && store) {
                            store.toolbar.build((0, helpers_1.splitArray)(buttons));
                            var w = ((_a = editor.toolbar.firstButton) === null || _a === void 0 ? void 0 : _a.container.offsetWidth) || 36;
                            store.toolbar.container.style.width =
                                (w + 4) * 3 + 'px';
                        }
                    }
                }
            };
            control.data = store;
        }
        store.rebuild();
        return store.toolbar;
    },
    tooltip: 'Show all'
};


/***/ }),

/***/ 19806:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1277547__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.mobile = void 0;
var helpers_1 = __nested_webpack_require_1277547__(40332);
var buttons_1 = __nested_webpack_require_1277547__(97642);
var global_1 = __nested_webpack_require_1277547__(17332);
__nested_webpack_require_1277547__(8860);
function mobile(editor) {
    var timeout = 0, store = (0, helpers_1.splitArray)(editor.o.buttons);
    if (editor.o.mobileTapTimeout) {
        editor.e.on('touchend', function (e) {
            if (e.changedTouches && e.changedTouches.length) {
                var now = new Date().getTime(), diff = now - timeout;
                if (diff > editor.o.mobileTapTimeout) {
                    timeout = now;
                    if (diff < editor.o.mobileTapTimeout * 1.5) {
                        editor.s.insertCursorAtPoint(e.clientX, e.clientY);
                    }
                }
            }
        });
    }
    editor.e.on('getDiffButtons.mobile', function (toolbar) {
        if (toolbar === editor.toolbar) {
            var buttons = (0, buttons_1.flatButtonsSet)((0, helpers_1.splitArray)(editor.o.buttons), editor), flatStore_1 = (0, buttons_1.flatButtonsSet)(store, editor);
            return (0, helpers_1.toArray)(buttons).reduce(function (acc, item) {
                if (!flatStore_1.has(item)) {
                    acc.push(item);
                }
                return acc;
            }, []);
        }
    });
    if (editor.o.toolbarAdaptive) {
        editor.e
            .on('resize afterInit recalcAdaptive changePlace afterAddPlace', function () {
            var _a;
            if (!editor.o.toolbar) {
                return;
            }
            var width = ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
            var newStore = (function () {
                if (editor.isFullSize || width >= editor.o.sizeLG) {
                    return (0, helpers_1.splitArray)(editor.o.buttons);
                }
                if (width >= editor.o.sizeMD) {
                    return (0, helpers_1.splitArray)(editor.o.buttonsMD);
                }
                if (width >= editor.o.sizeSM) {
                    return (0, helpers_1.splitArray)(editor.o.buttonsSM);
                }
                return (0, helpers_1.splitArray)(editor.o.buttonsXS);
            })();
            if (newStore.toString() !== store.toString()) {
                store = newStore;
                editor.e.fire('closeAllPopups');
                editor.toolbar
                    .setRemoveButtons(editor.o.removeButtons)
                    .build(store.concat(editor.o.extraButtons));
            }
        })
            .on(editor.ow, 'load resize', function () {
            return editor.e.fire('recalcAdaptive');
        });
    }
}
exports.mobile = mobile;
global_1.pluginSystem.add('mobile', mobile);


/***/ }),

/***/ 73013:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1280733__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1280733__(93166);
var data_bind_1 = __nested_webpack_require_1280733__(63122);
var icon_1 = __nested_webpack_require_1280733__(77904);
var memoExec = function (jodit, _, _a) {
    var _b;
    var control = _a.control;
    var key = "button".concat(control.command);
    var value = (_b = (control.args && control.args[0])) !== null && _b !== void 0 ? _b : (0, data_bind_1.dataBind)(jodit, key);
    (0, data_bind_1.dataBind)(jodit, key, value);
    jodit.execCommand(control.command, false, value === 'default' ? null : value);
};
icon_1.Icon.set('ol', __nested_webpack_require_1280733__(15476)).set('ul', __nested_webpack_require_1280733__(59403));
config_1.Config.prototype.controls.ul = {
    command: 'insertUnorderedList',
    tags: ['ul'],
    tooltip: 'Insert Unordered List',
    list: {
        default: 'Default',
        circle: 'Circle',
        disc: 'Dot',
        square: 'Quadrate'
    },
    exec: memoExec
};
config_1.Config.prototype.controls.ol = {
    command: 'insertOrderedList',
    tags: ['ol'],
    tooltip: 'Insert Ordered List',
    list: {
        default: 'Default',
        'lower-alpha': 'Lower Alpha',
        'lower-greek': 'Lower Greek',
        'lower-roman': 'Lower Roman',
        'upper-alpha': 'Upper Alpha',
        'upper-roman': 'Upper Roman'
    },
    exec: memoExec
};


/***/ }),

/***/ 52598:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1282414__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.orderedList = void 0;
var tslib_1 = __nested_webpack_require_1282414__(20255);
var plugin_1 = __nested_webpack_require_1282414__(57549);
var decorators_1 = __nested_webpack_require_1282414__(43441);
var global_1 = __nested_webpack_require_1282414__(17332);
__nested_webpack_require_1282414__(73013);
var orderedList = (function (_super) {
    tslib_1.__extends(orderedList, _super);
    function orderedList() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'ul',
                group: 'list'
            },
            {
                name: 'ol',
                group: 'list'
            }
        ];
        return _this;
    }
    orderedList.prototype.afterInit = function (jodit) {
        jodit
            .registerCommand('insertUnorderedList', this.onCommand)
            .registerCommand('insertOrderedList', this.onCommand);
    };
    orderedList.prototype.onCommand = function (command, _, type) {
        this.jodit.s.applyStyle({
            listStyleType: type !== null && type !== void 0 ? type : null
        }, {
            element: command === 'insertunorderedlist' ? 'ul' : 'ol'
        });
        this.jodit.synchronizeValues();
        return false;
    };
    orderedList.prototype.beforeDestruct = function (jodit) { };
    tslib_1.__decorate([
        decorators_1.autobind
    ], orderedList.prototype, "onCommand", null);
    return orderedList;
}(plugin_1.Plugin));
exports.orderedList = orderedList;
global_1.pluginSystem.add('orderedList', orderedList);


/***/ }),

/***/ 47470:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1284333__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1284333__(93166);
var constants_1 = __nested_webpack_require_1284333__(86893);
config_1.Config.prototype.askBeforePasteFromWord = true;
config_1.Config.prototype.processPasteFromWord = true;
config_1.Config.prototype.defaultActionOnPasteFromWord = null;
config_1.Config.prototype.pasteFromWordActionList = [
    { value: constants_1.INSERT_AS_HTML, text: 'Keep' },
    { value: constants_1.INSERT_AS_TEXT, text: 'Clean' },
    { value: constants_1.INSERT_ONLY_TEXT, text: 'Insert only Text' }
];


/***/ }),

/***/ 15428:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1285240__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.pasteFromWord = void 0;
var tslib_1 = __nested_webpack_require_1285240__(20255);
var plugin_1 = __nested_webpack_require_1285240__(57549);
var helpers_1 = __nested_webpack_require_1285240__(40332);
var constants_1 = __nested_webpack_require_1285240__(86893);
var decorators_1 = __nested_webpack_require_1285240__(43441);
var helpers_2 = __nested_webpack_require_1285240__(64280);
var global_1 = __nested_webpack_require_1285240__(17332);
__nested_webpack_require_1285240__(47470);
var pasteFromWord = (function (_super) {
    tslib_1.__extends(pasteFromWord, _super);
    function pasteFromWord() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.requires = ['paste'];
        return _this;
    }
    pasteFromWord.prototype.afterInit = function (jodit) { };
    pasteFromWord.prototype.beforeDestruct = function (jodit) { };
    pasteFromWord.prototype.processWordHTML = function (e, text, texts) {
        var _this = this;
        var j = this.j, _a = j.o, processPasteFromWord = _a.processPasteFromWord, askBeforePasteFromWord = _a.askBeforePasteFromWord, defaultActionOnPasteFromWord = _a.defaultActionOnPasteFromWord, defaultActionOnPaste = _a.defaultActionOnPaste, pasteFromWordActionList = _a.pasteFromWordActionList;
        if (processPasteFromWord && (0, helpers_1.isHtmlFromWord)(text)) {
            if (askBeforePasteFromWord) {
                (0, helpers_2.askInsertTypeDialog)(j, 'The pasted content is coming from a Microsoft Word/Excel document. ' +
                    'Do you want to keep the format or clean it up?', 'Word Paste Detected', function (insertType) {
                    _this.insertFromWordByType(e, text, insertType, texts);
                }, pasteFromWordActionList);
            }
            else {
                this.insertFromWordByType(e, text, defaultActionOnPasteFromWord || defaultActionOnPaste, texts);
            }
            return true;
        }
        return false;
    };
    pasteFromWord.prototype.insertFromWordByType = function (e, html, insertType, texts) {
        var _a;
        switch (insertType) {
            case constants_1.INSERT_AS_HTML: {
                html = (0, helpers_1.applyStyles)(html);
                var value = (_a = this.j.events) === null || _a === void 0 ? void 0 : _a.fire('beautifyHTML', html);
                if ((0, helpers_1.isString)(value)) {
                    html = value;
                }
                break;
            }
            case constants_1.INSERT_AS_TEXT: {
                html = (0, helpers_1.cleanFromWord)(html);
                break;
            }
            case constants_1.INSERT_ONLY_TEXT: {
                html = (0, helpers_1.stripTags)((0, helpers_1.cleanFromWord)(html));
                break;
            }
        }
        (0, helpers_2.pasteInsertHtml)(e, this.j, html);
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':processHTML')
    ], pasteFromWord.prototype, "processWordHTML", null);
    return pasteFromWord;
}(plugin_1.Plugin));
exports.pasteFromWord = pasteFromWord;
global_1.pluginSystem.add('pasteFromWord', pasteFromWord);


/***/ }),

/***/ 47224:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1288669__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.pasteStorage = void 0;
var tslib_1 = __nested_webpack_require_1288669__(20255);
__nested_webpack_require_1288669__(71708);
var constants_1 = __nested_webpack_require_1288669__(86893);
var plugin_1 = __nested_webpack_require_1288669__(85605);
var dom_1 = __nested_webpack_require_1288669__(24263);
var helpers_1 = __nested_webpack_require_1288669__(40332);
var button_1 = __nested_webpack_require_1288669__(96031);
var global_1 = __nested_webpack_require_1288669__(17332);
var pasteStorage = (function (_super) {
    tslib_1.__extends(pasteStorage, _super);
    function pasteStorage() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.currentIndex = 0;
        _this.list = [];
        _this.container = null;
        _this.listBox = null;
        _this.previewBox = null;
        _this.dialog = null;
        _this.paste = function () {
            _this.j.s.focus();
            _this.j.s.insertHTML(_this.list[_this.currentIndex]);
            if (_this.currentIndex !== 0) {
                var buffer = _this.list[0];
                _this.list[0] = _this.list[_this.currentIndex];
                _this.list[_this.currentIndex] = buffer;
            }
            _this.dialog && _this.dialog.close();
            _this.j.synchronizeValues();
            _this.j.e.fire('afterPaste');
        };
        _this.onKeyDown = function (e) {
            var index = _this.currentIndex;
            if ([constants_1.KEY_UP, constants_1.KEY_DOWN, constants_1.KEY_ENTER].indexOf(e.key) === -1) {
                return;
            }
            if (e.key === constants_1.KEY_UP) {
                if (index === 0) {
                    index = _this.list.length - 1;
                }
                else {
                    index -= 1;
                }
            }
            if (e.key === constants_1.KEY_DOWN) {
                if (index === _this.list.length - 1) {
                    index = 0;
                }
                else {
                    index += 1;
                }
            }
            if (e.key === constants_1.KEY_ENTER) {
                _this.paste();
                return;
            }
            if (index !== _this.currentIndex) {
                _this.selectIndex(index);
            }
            e.stopImmediatePropagation();
            e.preventDefault();
        };
        _this.selectIndex = function (index) {
            if (_this.listBox) {
                (0, helpers_1.toArray)(_this.listBox.childNodes).forEach(function (a, i) {
                    a.classList.remove('jodit_active');
                    if (index === i && _this.previewBox) {
                        a.classList.add('jodit_active');
                        _this.previewBox.innerHTML = _this.list[index];
                        a.focus();
                    }
                });
            }
            _this.currentIndex = index;
        };
        _this.showDialog = function () {
            if (_this.list.length < 2) {
                return;
            }
            _this.dialog || _this.createDialog();
            if (_this.listBox) {
                _this.listBox.innerHTML = '';
            }
            if (_this.previewBox) {
                _this.previewBox.innerHTML = '';
            }
            _this.list.forEach(function (html, index) {
                var a = _this.j.c.element('a');
                a.textContent =
                    index + 1 + '. ' + html.replace((0, constants_1.SPACE_REG_EXP)(), '');
                _this.j.e.on(a, 'keydown', _this.onKeyDown);
                (0, helpers_1.attr)(a, 'href', '#');
                (0, helpers_1.attr)(a, 'data-index', index.toString());
                (0, helpers_1.attr)(a, 'tab-index', '-1');
                _this.listBox && _this.listBox.appendChild(a);
            });
            _this.dialog && _this.dialog.open();
            _this.j.async.setTimeout(function () {
                _this.selectIndex(0);
            }, 100);
        };
        return _this;
    }
    pasteStorage.prototype.createDialog = function () {
        var _this = this;
        this.dialog = this.j.dlg();
        var pasteButton = (0, button_1.Button)(this.j, 'paste', 'Paste', 'primary');
        pasteButton.onAction(this.paste);
        var cancelButton = (0, button_1.Button)(this.j, '', 'Cancel');
        cancelButton.onAction(this.dialog.close);
        this.container = this.j.c.div();
        this.container.classList.add('jodit-paste-storage');
        this.listBox = this.j.c.div();
        this.previewBox = this.j.c.div();
        this.container.appendChild(this.listBox);
        this.container.appendChild(this.previewBox);
        this.dialog.setHeader(this.j.i18n('Choose Content to Paste'));
        this.dialog.setContent(this.container);
        this.dialog.setFooter([pasteButton, cancelButton]);
        this.j.e.on(this.listBox, 'click dblclick', function (e) {
            var a = e.target;
            if (dom_1.Dom.isTag(a, 'a') && a.hasAttribute('data-index')) {
                _this.selectIndex(parseInt((0, helpers_1.attr)(a, '-index') || '0', 10));
            }
            if (e.type === 'dblclick') {
                _this.paste();
            }
            return false;
        });
    };
    pasteStorage.prototype.afterInit = function () {
        var _this = this;
        this.j.e
            .off('afterCopy.paste-storage')
            .on('pasteStorageList.paste-storage', function () { return _this.list.length; })
            .on('afterCopy.paste-storage', function (html) {
            if (_this.list.indexOf(html) !== -1) {
                _this.list.splice(_this.list.indexOf(html), 1);
            }
            _this.list.unshift(html);
            if (_this.list.length > 5) {
                _this.list.length = 5;
            }
        });
        this.j.registerCommand('showPasteStorage', {
            exec: this.showDialog,
            hotkeys: ['ctrl+shift+v', 'cmd+shift+v']
        });
    };
    pasteStorage.prototype.beforeDestruct = function () {
        this.dialog && this.dialog.destruct();
        this.j.e.off('.paste-storage');
        dom_1.Dom.safeRemove(this.previewBox);
        dom_1.Dom.safeRemove(this.listBox);
        dom_1.Dom.safeRemove(this.container);
        this.container = null;
        this.listBox = null;
        this.previewBox = null;
        this.dialog = null;
        this.list = [];
    };
    return pasteStorage;
}(plugin_1.Plugin));
exports.pasteStorage = pasteStorage;
global_1.pluginSystem.add('pasteStorage', pasteStorage);


/***/ }),

/***/ 24703:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1295529__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
var _a;
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1295529__(20255);
var constants_1 = __nested_webpack_require_1295529__(86893);
var config_1 = __nested_webpack_require_1295529__(93166);
var helpers_1 = __nested_webpack_require_1295529__(64280);
config_1.Config.prototype.askBeforePasteHTML = true;
config_1.Config.prototype.processPasteHTML = true;
config_1.Config.prototype.pasteHTMLActionList = [
    { value: constants_1.INSERT_AS_HTML, text: 'Keep' },
    { value: constants_1.INSERT_AS_TEXT, text: 'Insert as Text' },
    { value: constants_1.INSERT_ONLY_TEXT, text: 'Insert only Text' }
];
config_1.Config.prototype.memorizeChoiceWhenPasteFragment = false;
config_1.Config.prototype.nl2brInPlainText = true;
var psKey = 'pasteStorage';
config_1.Config.prototype.controls.paste = {
    tooltip: 'Paste from clipboard',
    exec: function (editor, _, _a) {
        var control = _a.control;
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            var text, error, items, textBlob, e_1, e_2, value;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        if (control.name === psKey) {
                            editor.execCommand('showPasteStorage');
                            return [2];
                        }
                        editor.s.focus();
                        text = '', error = true;
                        if (!navigator.clipboard) return [3, 11];
                        _b.label = 1;
                    case 1:
                        _b.trys.push([1, 6, , 7]);
                        return [4, navigator.clipboard.read()];
                    case 2:
                        items = _b.sent();
                        if (!(items && items.length)) return [3, 5];
                        return [4, items[0].getType(constants_1.TEXT_PLAIN)];
                    case 3:
                        textBlob = _b.sent();
                        return [4, new Response(textBlob).text()];
                    case 4:
                        text = _b.sent();
                        _b.label = 5;
                    case 5:
                        error = false;
                        return [3, 7];
                    case 6:
                        e_1 = _b.sent();
                        if (false) // removed by dead control flow
{}
                        return [3, 7];
                    case 7:
                        if (!error) return [3, 11];
                        _b.label = 8;
                    case 8:
                        _b.trys.push([8, 10, , 11]);
                        return [4, navigator.clipboard.readText()];
                    case 9:
                        text = _b.sent();
                        error = false;
                        return [3, 11];
                    case 10:
                        e_2 = _b.sent();
                        if (false) // removed by dead control flow
{}
                        return [3, 11];
                    case 11:
                        if (error) {
                            text = editor.buffer.get(constants_1.CLIPBOARD_ID) || '';
                            error = text.length === 0;
                        }
                        value = editor.value;
                        if (error) {
                            editor.ed.execCommand('paste');
                            error = value === editor.value;
                            !error && editor.e.fire('afterPaste');
                        }
                        else if (text.length) {
                            (0, helpers_1.pasteInsertHtml)(null, editor, text);
                            editor.e.fire('afterPaste');
                        }
                        else {
                            if (error) {
                                editor.alert("Your browser doesn't support direct access to the clipboard.", function () { return void editor.s.focus(); });
                            }
                        }
                        return [2];
                }
            });
        });
    },
    list: (_a = {},
        _a[psKey] = 'Paste Storage',
        _a),
    isChildDisabled: function (j) {
        return j.e.fire('pasteStorageList') < 2;
    }
};


/***/ }),

/***/ 64280:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1300107__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.askInsertTypeDialog = exports.getAllTypes = exports.pasteInsertHtml = void 0;
var tslib_1 = __nested_webpack_require_1300107__(20255);
var checker_1 = __nested_webpack_require_1300107__(10172);
var dom_1 = __nested_webpack_require_1300107__(24263);
var constants_1 = __nested_webpack_require_1300107__(86893);
var button_1 = __nested_webpack_require_1300107__(96031);
function removeExtraFragments(html) {
    html = html.replace(/<meta[^>]+?>/g, '');
    var start = html.search(/<!--StartFragment-->/i);
    if (start !== -1) {
        html = html.substring(start + 20);
    }
    var end = html.search(/<!--EndFragment-->/i);
    if (end !== -1) {
        html = html.substring(0, end);
    }
    return html;
}
function isDragEvent(e) {
    return Boolean(e && e.type === 'drop');
}
function pasteInsertHtml(e, editor, html) {
    if (editor.isInDestruct) {
        return;
    }
    if (isDragEvent(e)) {
        editor.s.insertCursorAtPoint(e.clientX, e.clientY);
    }
    var result = editor.e.fire('beforePasteInsert', html);
    if (!(0, checker_1.isVoid)(result) &&
        ((0, checker_1.isString)(result) || (0, checker_1.isNumber)(result) || dom_1.Dom.isNode(result))) {
        html = result;
    }
    if ((0, checker_1.isString)(html)) {
        html = removeExtraFragments(html);
    }
    editor.s.insertHTML(html);
}
exports.pasteInsertHtml = pasteInsertHtml;
function getAllTypes(dt) {
    var types = dt.types;
    var types_str = '';
    if ((0, checker_1.isArray)(types) ||
        {}.toString.call(types) === '[object DOMStringList]') {
        for (var i = 0; i < types.length; i += 1) {
            types_str += types[i] + ';';
        }
    }
    else {
        types_str = (types || constants_1.TEXT_PLAIN).toString() + ';';
    }
    return types_str;
}
exports.getAllTypes = getAllTypes;
function askInsertTypeDialog(jodit, msg, title, callback, buttonList) {
    if (jodit.e.fire('beforeOpenPasteDialog', msg, title, callback, buttonList) === false) {
        return;
    }
    var dialog = jodit.confirm("<div style=\"word-break: normal; white-space: normal\">".concat(jodit.i18n(msg), "</div>"), jodit.i18n(title));
    var buttons = buttonList.map(function (_a) {
        var text = _a.text, value = _a.value;
        return (0, button_1.Button)(jodit, {
            text: text,
            name: text.toLowerCase(),
            tabIndex: 0
        }).onAction(function () {
            dialog.close();
            callback(value);
        });
    });
    dialog.e.one(dialog, 'afterClose', function () {
        if (!jodit.s.isFocused()) {
            jodit.s.focus();
        }
    });
    var cancel = (0, button_1.Button)(jodit, {
        text: 'Cancel',
        tabIndex: 0
    }).onAction(function () {
        dialog.close();
    });
    dialog.setFooter(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(buttons), false), [cancel], false));
    buttons[0].focus();
    buttons[0].state.variant = 'primary';
    jodit.e.fire('afterOpenPasteDialog', dialog, msg, title, callback, buttonList);
    return dialog;
}
exports.askInsertTypeDialog = askInsertTypeDialog;


/***/ }),

/***/ 19483:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1303560__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.paste = void 0;
var tslib_1 = __nested_webpack_require_1303560__(20255);
var plugin_1 = __nested_webpack_require_1303560__(85605);
var constants_1 = __nested_webpack_require_1303560__(86893);
var dom_1 = __nested_webpack_require_1303560__(24263);
var decorators_1 = __nested_webpack_require_1303560__(43441);
var helpers_1 = __nested_webpack_require_1303560__(40332);
var global_1 = __nested_webpack_require_1303560__(17332);
var helpers_2 = __nested_webpack_require_1303560__(64280);
__nested_webpack_require_1303560__(24703);
var paste = (function (_super) {
    tslib_1.__extends(paste, _super);
    function paste() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.pasteStack = new helpers_1.LimitedStack(20);
        _this._isDialogOpened = false;
        return _this;
    }
    paste.prototype.afterInit = function (jodit) {
        var _this = this;
        jodit.e
            .on('paste.paste', this.onPaste)
            .on('pasteStack.paste', function (item) {
            return _this.pasteStack.push(item);
        });
        if (jodit.o.nl2brInPlainText) {
            this.j.e.on('processPaste.paste', this.onProcessPasteReplaceNl2Br);
        }
    };
    paste.prototype.beforeDestruct = function (jodit) {
        jodit.e
            .off('paste.paste', this.onPaste)
            .off('processPaste.paste', this.onProcessPasteReplaceNl2Br)
            .off('.paste');
    };
    paste.prototype.onPaste = function (e) {
        try {
            if (this.customPasteProcess(e) === false ||
                this.j.e.fire('beforePaste', e) === false) {
                e.preventDefault();
                return false;
            }
            this.defaultPasteProcess(e);
        }
        finally {
            this.j.e.fire('afterPaste', e);
        }
    };
    paste.prototype.customPasteProcess = function (e) {
        if (!this.j.o.processPasteHTML) {
            return;
        }
        var dt = (0, helpers_1.getDataTransfer)(e), texts = {
            html: dt === null || dt === void 0 ? void 0 : dt.getData(constants_1.TEXT_HTML),
            plain: dt === null || dt === void 0 ? void 0 : dt.getData(constants_1.TEXT_PLAIN),
            rtf: dt === null || dt === void 0 ? void 0 : dt.getData(constants_1.TEXT_RTF)
        };
        var key;
        for (key in texts) {
            var value = texts[key];
            if ((0, helpers_1.isHTML)(value) &&
                (this.j.e.fire('processHTML', e, value, texts) ||
                    this.processHTML(e, value))) {
                return false;
            }
        }
    };
    paste.prototype.defaultPasteProcess = function (e) {
        var dt = (0, helpers_1.getDataTransfer)(e);
        var text = (dt === null || dt === void 0 ? void 0 : dt.getData(constants_1.TEXT_HTML)) || (dt === null || dt === void 0 ? void 0 : dt.getData(constants_1.TEXT_PLAIN));
        if (dt && text && (0, helpers_1.trim)(text) !== '') {
            var result = this.j.e.fire('processPaste', e, text, (0, helpers_2.getAllTypes)(dt));
            if (result !== undefined) {
                text = result;
            }
            if ((0, helpers_1.isString)(text) || dom_1.Dom.isNode(text)) {
                this.insertByType(e, text, this.j.o.defaultActionOnPaste);
            }
            e.preventDefault();
            e.stopPropagation();
        }
    };
    paste.prototype.processHTML = function (e, html) {
        var _this = this;
        if (this.j.o.askBeforePasteHTML) {
            if (this.j.o.memorizeChoiceWhenPasteFragment) {
                var cached = this.pasteStack.find(function (cachedItem) { return cachedItem.html === html; });
                if (cached) {
                    this.insertByType(e, html, cached.action || this.j.o.defaultActionOnPaste);
                    return true;
                }
            }
            if (this._isDialogOpened) {
                return true;
            }
            var dialog = (0, helpers_2.askInsertTypeDialog)(this.j, 'Your code is similar to HTML. Keep as HTML?', 'Paste as HTML', function (insertType) {
                _this._isDialogOpened = false;
                _this.insertByType(e, html, insertType);
            }, this.j.o.pasteHTMLActionList);
            if (dialog) {
                this._isDialogOpened = true;
                dialog.e.on('beforeClose', function () {
                    _this._isDialogOpened = false;
                });
            }
            return true;
        }
        return false;
    };
    paste.prototype.insertByType = function (e, html, action) {
        this.pasteStack.push({ html: html, action: action });
        if ((0, helpers_1.isString)(html)) {
            this.j.buffer.set(constants_1.CLIPBOARD_ID, html);
            switch (action) {
                case constants_1.INSERT_CLEAR_HTML:
                    html = (0, helpers_1.cleanFromWord)(html);
                    break;
                case constants_1.INSERT_ONLY_TEXT:
                    html = (0, helpers_1.stripTags)(html);
                    break;
                case constants_1.INSERT_AS_TEXT:
                    html = (0, helpers_1.htmlspecialchars)(html);
                    break;
                default:
            }
        }
        (0, helpers_2.pasteInsertHtml)(e, this.j, html);
    };
    paste.prototype.onProcessPasteReplaceNl2Br = function (ignore, text, type) {
        if (type === constants_1.TEXT_PLAIN + ';' && !(0, helpers_1.isHTML)(text)) {
            return (0, helpers_1.nl2br)(text);
        }
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], paste.prototype, "onPaste", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], paste.prototype, "onProcessPasteReplaceNl2Br", null);
    return paste;
}(plugin_1.Plugin));
exports.paste = paste;
global_1.pluginSystem.add('paste', paste);


/***/ }),

/***/ 76952:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1309720__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1309720__(93166);
config_1.Config.prototype.showPlaceholder = true;
config_1.Config.prototype.placeholder = 'Type something';
config_1.Config.prototype.useInputsPlaceholder = true;


/***/ }),

/***/ 83211:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1310327__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.placeholder = exports.isEditorEmpty = void 0;
var tslib_1 = __nested_webpack_require_1310327__(20255);
__nested_webpack_require_1310327__(51629);
var consts = __nested_webpack_require_1310327__(86893);
var utils_1 = __nested_webpack_require_1310327__(67309);
var css_1 = __nested_webpack_require_1310327__(26911);
var is_marker_1 = __nested_webpack_require_1310327__(37204);
var dom_1 = __nested_webpack_require_1310327__(24263);
var plugin_1 = __nested_webpack_require_1310327__(85605);
var constants_1 = __nested_webpack_require_1310327__(86893);
var decorators_1 = __nested_webpack_require_1310327__(43441);
var global_1 = __nested_webpack_require_1310327__(17332);
__nested_webpack_require_1310327__(76952);
function isEditorEmpty(root) {
    var _a;
    if (!root.firstChild) {
        return true;
    }
    var first = root.firstChild;
    if (constants_1.INSEPARABLE_TAGS.has((_a = first.nodeName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) ||
        /^(TABLE)$/i.test(first.nodeName)) {
        return false;
    }
    var next = dom_1.Dom.next(first, function (node) { return node && !dom_1.Dom.isEmptyTextNode(node); }, root);
    if (dom_1.Dom.isText(first) && !next) {
        return dom_1.Dom.isEmptyTextNode(first);
    }
    return (!next &&
        dom_1.Dom.each(first, function (elm) {
            return !dom_1.Dom.isTag(elm, ['ul', 'li', 'ol']) &&
                (dom_1.Dom.isEmpty(elm) || dom_1.Dom.isTag(elm, 'br'));
        }));
}
exports.isEditorEmpty = isEditorEmpty;
var placeholder = (function (_super) {
    tslib_1.__extends(placeholder, _super);
    function placeholder() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.addNativeListeners = function () {
            _this.j.e
                .off(_this.j.editor, 'input.placeholder keydown.placeholder')
                .on(_this.j.editor, 'input.placeholder keydown.placeholder', _this.toggle);
        };
        _this.addEvents = function () {
            var editor = _this.j;
            if (editor.o.useInputsPlaceholder &&
                editor.element.hasAttribute('placeholder')) {
                _this.placeholderElm.innerHTML =
                    (0, utils_1.attr)(editor.element, 'placeholder') || '';
            }
            editor.e.fire('placeholder', _this.placeholderElm.innerHTML);
            editor.e
                .off('.placeholder')
                .on('changePlace.placeholder', _this.addNativeListeners)
                .on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' +
                'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder', _this.toggle)
                .on(window, 'load', _this.toggle);
            _this.addNativeListeners();
            _this.toggle();
        };
        return _this;
    }
    placeholder.prototype.afterInit = function (editor) {
        var _this = this;
        if (!editor.o.showPlaceholder) {
            return;
        }
        this.placeholderElm = editor.c.fromHTML("<span data-ref=\"placeholder\" style=\"display: none;\" class=\"jodit-placeholder\">".concat(editor.i18n(editor.o.placeholder), "</span>"));
        if (editor.o.direction === 'rtl') {
            this.placeholderElm.style.right = '0px';
            this.placeholderElm.style.direction = 'rtl';
        }
        editor.e
            .on('readonly', function (isReadOnly) {
            if (isReadOnly) {
                _this.hide();
            }
            else {
                _this.toggle();
            }
        })
            .on('changePlace', this.addEvents);
        this.addEvents();
    };
    placeholder.prototype.show = function () {
        var editor = this.j;
        if (editor.o.readonly) {
            return;
        }
        var marginTop = 0, marginLeft = 0;
        var current = editor.s.current(), wrapper = (current && dom_1.Dom.closest(current, dom_1.Dom.isBlock, editor.editor)) ||
            editor.editor;
        var style = editor.ew.getComputedStyle(wrapper);
        var styleEditor = editor.ew.getComputedStyle(editor.editor);
        editor.workplace.appendChild(this.placeholderElm);
        var firstChild = editor.editor.firstChild;
        if (dom_1.Dom.isElement(firstChild) && !(0, is_marker_1.isMarker)(firstChild)) {
            var style2 = editor.ew.getComputedStyle(firstChild);
            marginTop = parseInt(style2.getPropertyValue('margin-top'), 10);
            marginLeft = parseInt(style2.getPropertyValue('margin-left'), 10);
            this.placeholderElm.style.fontSize =
                parseInt(style2.getPropertyValue('font-size'), 10) + 'px';
            this.placeholderElm.style.lineHeight =
                style2.getPropertyValue('line-height');
        }
        else {
            this.placeholderElm.style.fontSize =
                parseInt(style.getPropertyValue('font-size'), 10) + 'px';
            this.placeholderElm.style.lineHeight =
                style.getPropertyValue('line-height');
        }
        (0, css_1.css)(this.placeholderElm, {
            display: 'block',
            textAlign: style.getPropertyValue('text-align'),
            paddingTop: parseInt(styleEditor.paddingTop, 10) + 'px',
            paddingLeft: parseInt(styleEditor.paddingLeft, 10) + 'px',
            paddingRight: parseInt(styleEditor.paddingRight, 10) + 'px',
            marginTop: Math.max(parseInt(style.getPropertyValue('margin-top'), 10), marginTop),
            marginLeft: Math.max(parseInt(style.getPropertyValue('margin-left'), 10), marginLeft)
        });
    };
    placeholder.prototype.hide = function () {
        dom_1.Dom.safeRemove(this.placeholderElm);
    };
    placeholder.prototype.toggle = function () {
        var editor = this.j;
        if (!editor.editor || editor.isInDestruct) {
            return;
        }
        if (editor.getRealMode() !== consts.MODE_WYSIWYG) {
            this.hide();
            return;
        }
        if (!isEditorEmpty(editor.editor)) {
            this.hide();
        }
        else {
            this.show();
        }
    };
    placeholder.prototype.beforeDestruct = function (jodit) {
        this.hide();
        jodit.e.off('.placeholder').off(window, 'load', this.toggle);
    };
    tslib_1.__decorate([
        (0, decorators_1.debounce)(function (ctx) { return ctx.defaultTimeout / 10; }, true)
    ], placeholder.prototype, "toggle", null);
    return placeholder;
}(plugin_1.Plugin));
exports.placeholder = placeholder;
global_1.pluginSystem.add('placeholder', placeholder);


/***/ }),

/***/ 88297:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1317146__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.poweredByJodit = void 0;
var global_1 = __nested_webpack_require_1317146__(17332);
function poweredByJodit(jodit) {
    var o = jodit.o;
    if (!o.hidePoweredByJodit &&
        !o.inline &&
        (o.showCharsCounter ||
            o.showWordsCounter ||
            o.showXPathInStatusbar)) {
        jodit.hookStatus('ready', function () {
            jodit.statusbar.append(jodit.create.fromHTML("<a\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\tstyle=\"text-transform: uppercase\"\n\t\t\t\t\t\tclass=\"jodit-status-bar-link\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\thref=\"https://xdsoft.net/jodit/\">\n\t\t\t\t\t\t\tPowered by Jodit\n\t\t\t\t\t\t</a>"), true);
        });
    }
}
exports.poweredByJodit = poweredByJodit;
global_1.pluginSystem.add('poweredByJodit', poweredByJodit);


/***/ }),

/***/ 72930:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1318329__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.preview = void 0;
__nested_webpack_require_1318329__(54860);
var config_1 = __nested_webpack_require_1318329__(93166);
var constants_1 = __nested_webpack_require_1318329__(86893);
var print_1 = __nested_webpack_require_1318329__(21498);
var global_1 = __nested_webpack_require_1318329__(17332);
config_1.Config.prototype.controls.preview = {
    icon: 'eye',
    command: 'preview',
    mode: constants_1.MODE_SOURCE + constants_1.MODE_WYSIWYG,
    tooltip: 'Preview'
};
function preview(editor) {
    editor.registerButton({
        name: 'preview'
    });
    editor.registerCommand('preview', function (_, _1, defaultValue) {
        var dialog = editor.dlg();
        dialog
            .setSize(1024, 600)
            .open('', editor.i18n('Preview'))
            .setModal(true);
        (0, print_1.previewBox)(editor, defaultValue, 'px', dialog.getElm('content'));
    });
}
exports.preview = preview;
global_1.pluginSystem.add('preview', preview);


/***/ }),

/***/ 20137:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1319620__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.generateCriticalCSS = void 0;
var tslib_1 = __nested_webpack_require_1319620__(20255);
var to_array_1 = __nested_webpack_require_1319620__(1853);
function generateCriticalCSS(jodit) {
    var getMatchedCSSRules = function (el, css) {
        if (css === void 0) { css = el.ownerDocument.styleSheets; }
        var rules = (0, to_array_1.toArray)(css)
            .map(function (s) {
            try {
                return (0, to_array_1.toArray)(s.cssRules);
            }
            catch (_a) { }
            return [];
        })
            .flat();
        return rules.filter(function (r) {
            try {
                return Boolean(r && el.matches(r.selectorText));
            }
            catch (_a) { }
            return false;
        });
    };
    var CSSCriticalPath = (function () {
        function CSSCriticalPath(w, d, opts) {
            var _this = this;
            this.css = {};
            var opt = opts || {};
            var pushCSS = function (r) {
                var selectorText = r.selectorText
                    .split(',')
                    .map(function (a) { return a.trim(); })
                    .sort()
                    .join(',');
                if (Boolean(_this.css[selectorText]) === false) {
                    _this.css[selectorText] = {};
                }
                var styles = r.style.cssText.split(/;(?![A-Za-z0-9])/);
                for (var i = 0; i < styles.length; i++) {
                    if (!styles[i]) {
                        continue;
                    }
                    var pair = styles[i].split(':');
                    pair[0] = pair[0].trim();
                    pair[1] = pair[1].trim();
                    _this.css[selectorText][pair[0]] = pair[1].replace(/var\(([^)]+)\)/g, function (varValue, key) {
                        var _a = tslib_1.__read(key.split(','), 2), name = _a[0], def = _a[1];
                        return (jodit.ew
                            .getComputedStyle(jodit.editor)
                            .getPropertyValue(name.trim()) ||
                            def ||
                            varValue).trim();
                    });
                }
            };
            var parseTree = function () {
                var height = w.innerHeight;
                var walker = d.createTreeWalker(jodit.editor, NodeFilter.SHOW_ELEMENT, function () { return NodeFilter.FILTER_ACCEPT; });
                while (walker.nextNode()) {
                    var node = walker.currentNode;
                    var rect = node.getBoundingClientRect();
                    if (rect.top < height || opt.scanFullPage) {
                        var rules = getMatchedCSSRules(node);
                        if (rules) {
                            for (var r = 0; r < rules.length; r++) {
                                pushCSS(rules[r]);
                            }
                        }
                    }
                }
            };
            parseTree();
        }
        CSSCriticalPath.prototype.generateCSS = function () {
            var finalCSS = '';
            for (var k in this.css) {
                if (/:not\(/.test(k)) {
                    continue;
                }
                finalCSS += k + ' { ';
                for (var j in this.css[k]) {
                    finalCSS += j + ': ' + this.css[k][j] + '; ';
                }
                finalCSS += '}\n';
            }
            return finalCSS;
        };
        return CSSCriticalPath;
    }());
    try {
        var cp = new CSSCriticalPath(jodit.ew, jodit.ed, {
            scanFullPage: true
        });
        return cp.generateCSS();
    }
    catch (_a) { }
    return '';
}
exports.generateCriticalCSS = generateCriticalCSS;


/***/ }),

/***/ 51197:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1323772__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.print = void 0;
var config_1 = __nested_webpack_require_1323772__(93166);
var global_1 = __nested_webpack_require_1323772__(17332);
var dom_1 = __nested_webpack_require_1323772__(64968);
var default_language_1 = __nested_webpack_require_1323772__(93351);
var consts = __nested_webpack_require_1323772__(86893);
var global_2 = __nested_webpack_require_1323772__(17332);
var icon_1 = __nested_webpack_require_1323772__(77904);
var generate_critical_css_1 = __nested_webpack_require_1323772__(20137);
var print_1 = __nested_webpack_require_1323772__(21498);
icon_1.Icon.set('print', __nested_webpack_require_1323772__(22860));
config_1.Config.prototype.controls.print = {
    exec: function (editor) {
        var iframe = editor.create.element('iframe');
        Object.assign(iframe.style, {
            position: 'fixed',
            right: 0,
            bottom: 0,
            width: 0,
            height: 0,
            border: 0
        });
        (0, global_1.getContainer)(editor, config_1.Config).appendChild(iframe);
        var afterFinishPrint = function () {
            editor.e.off(editor.ow, 'mousemove', afterFinishPrint);
            dom_1.Dom.safeRemove(iframe);
        };
        var myWindow = iframe.contentWindow;
        if (myWindow) {
            editor.e
                .on(myWindow, 'onbeforeunload onafterprint', afterFinishPrint)
                .on(editor.ow, 'mousemove', afterFinishPrint);
            if (editor.o.iframe) {
                editor.e.fire('generateDocumentStructure.iframe', myWindow.document, editor);
                myWindow.document.body.innerHTML = editor.value;
            }
            else {
                myWindow.document.write('<!doctype html><html lang="' +
                    (0, default_language_1.defaultLanguage)(editor.o.language) +
                    '"><head><title></title></head><style>' +
                    (0, generate_critical_css_1.generateCriticalCSS)(editor) +
                    '</style><body></body></html>');
                myWindow.document.close();
                (0, print_1.previewBox)(editor, undefined, 'px', myWindow.document.body);
            }
            var style = myWindow.document.createElement('style');
            style.innerHTML = "@media print {\n\t\t\t\t\tbody {\n\t\t\t\t\t\t\t-webkit-print-color-adjust: exact;\n\t\t\t\t\t}\n\t\t\t}";
            myWindow.document.head.appendChild(style);
            myWindow.focus();
            myWindow.print();
        }
    },
    mode: consts.MODE_SOURCE + consts.MODE_WYSIWYG,
    tooltip: 'Print'
};
function print(editor) {
    editor.registerButton({
        name: 'print'
    });
}
exports.print = print;
global_2.pluginSystem.add('print', print);


/***/ }),

/***/ 2327:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1326739__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.redoUndo = void 0;
var tslib_1 = __nested_webpack_require_1326739__(20255);
var config_1 = __nested_webpack_require_1326739__(93166);
var consts = __nested_webpack_require_1326739__(86893);
var plugin_1 = __nested_webpack_require_1326739__(85605);
var global_1 = __nested_webpack_require_1326739__(17332);
var icon_1 = __nested_webpack_require_1326739__(77904);
icon_1.Icon.set('redo', __nested_webpack_require_1326739__(95600)).set('undo', __nested_webpack_require_1326739__(76214));
config_1.Config.prototype.controls.redo = {
    mode: consts.MODE_SPLIT,
    isDisabled: function (editor) { return !editor.history.canRedo(); },
    tooltip: 'Redo'
};
config_1.Config.prototype.controls.undo = {
    mode: consts.MODE_SPLIT,
    isDisabled: function (editor) { return !editor.history.canUndo(); },
    tooltip: 'Undo'
};
var redoUndo = (function (_super) {
    tslib_1.__extends(redoUndo, _super);
    function redoUndo() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'undo',
                group: 'history'
            },
            {
                name: 'redo',
                group: 'history'
            }
        ];
        return _this;
    }
    redoUndo.prototype.beforeDestruct = function () {
    };
    redoUndo.prototype.afterInit = function (editor) {
        var callback = function (command) {
            editor.history[command]();
            return false;
        };
        editor.registerCommand('redo', {
            exec: callback,
            hotkeys: ['ctrl+y', 'ctrl+shift+z', 'cmd+y', 'cmd+shift+z']
        });
        editor.registerCommand('undo', {
            exec: callback,
            hotkeys: ['ctrl+z', 'cmd+z']
        });
    };
    return redoUndo;
}(plugin_1.Plugin));
exports.redoUndo = redoUndo;
global_1.pluginSystem.add('redoUndo', redoUndo);


/***/ }),

/***/ 52444:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1328918__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1328918__(93166);
config_1.Config.prototype.tableAllowCellResize = true;


/***/ }),

/***/ 47608:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1329417__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.resizeCells = void 0;
var tslib_1 = __nested_webpack_require_1329417__(20255);
__nested_webpack_require_1329417__(47818);
var consts = __nested_webpack_require_1329417__(86893);
var modules_1 = __nested_webpack_require_1329417__(87837);
var helpers_1 = __nested_webpack_require_1329417__(40332);
var decorators_1 = __nested_webpack_require_1329417__(43441);
var dom_1 = __nested_webpack_require_1329417__(24263);
var global_1 = __nested_webpack_require_1329417__(17332);
__nested_webpack_require_1329417__(52444);
var key = 'table_processor_observer-resize';
var resizeCells = (function (_super) {
    tslib_1.__extends(resizeCells, _super);
    function resizeCells() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.selectMode = false;
        _this.resizeDelta = 0;
        _this.createResizeHandle = function () {
            if (!_this.resizeHandler) {
                _this.resizeHandler = _this.j.c.div('jodit-table-resizer');
                _this.j.e
                    .on(_this.resizeHandler, 'mousedown.table touchstart.table', _this.onHandleMouseDown)
                    .on(_this.resizeHandler, 'mouseenter.table', function () {
                    _this.j.async.clearTimeout(_this.hideTimeout);
                });
            }
        };
        _this.hideTimeout = 0;
        _this.drag = false;
        _this.minX = 0;
        _this.maxX = 0;
        _this.startX = 0;
        return _this;
    }
    Object.defineProperty(resizeCells.prototype, "module", {
        get: function () {
            return this.j.getInstance('Table', this.j.o);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(resizeCells.prototype, "isRTL", {
        get: function () {
            return this.j.o.direction === 'rtl';
        },
        enumerable: false,
        configurable: true
    });
    resizeCells.prototype.showResizeHandle = function () {
        this.j.async.clearTimeout(this.hideTimeout);
        this.j.workplace.appendChild(this.resizeHandler);
    };
    resizeCells.prototype.hideResizeHandle = function () {
        var _this = this;
        this.hideTimeout = this.j.async.setTimeout(function () {
            dom_1.Dom.safeRemove(_this.resizeHandler);
        }, {
            timeout: this.j.defaultTimeout,
            label: 'hideResizer'
        });
    };
    resizeCells.prototype.onHandleMouseDown = function (event) {
        var _this = this;
        if (this.j.isLocked) {
            return;
        }
        this.drag = true;
        this.j.e
            .on(this.j.ow, 'mouseup.resize-cells touchend.resize-cells', this.onMouseUp)
            .on(this.j.ew, 'mousemove.table touchmove.table', this.onMouseMove);
        this.startX = event.clientX;
        this.j.lock(key);
        this.resizeHandler.classList.add('jodit-table-resizer_moved');
        var box, tableBox = this.workTable.getBoundingClientRect();
        this.minX = 0;
        this.maxX = 1000000;
        if (this.wholeTable != null) {
            tableBox = this.workTable.parentNode.getBoundingClientRect();
            this.minX = tableBox.left;
            this.maxX = this.minX + tableBox.width;
        }
        else {
            var coordinate_1 = modules_1.Table.formalCoordinate(this.workTable, this.workCell, true);
            modules_1.Table.formalMatrix(this.workTable, function (td, i, j) {
                if (coordinate_1[1] === j) {
                    box = td.getBoundingClientRect();
                    _this.minX = Math.max(box.left + consts.NEARBY / 2, _this.minX);
                }
                if (coordinate_1[1] + (_this.isRTL ? -1 : 1) === j) {
                    box = td.getBoundingClientRect();
                    _this.maxX = Math.min(box.left + box.width - consts.NEARBY / 2, _this.maxX);
                }
            });
        }
        return false;
    };
    resizeCells.prototype.onMouseMove = function (event) {
        if (!this.drag) {
            return;
        }
        this.j.e.fire('closeAllPopups');
        var x = event.clientX;
        var workplacePosition = (0, helpers_1.offset)((this.resizeHandler.parentNode ||
            this.j.od.documentElement), this.j, this.j.od, true);
        if (x < this.minX) {
            x = this.minX;
        }
        if (x > this.maxX) {
            x = this.maxX;
        }
        this.resizeDelta =
            x - this.startX + (!this.j.o.iframe ? 0 : workplacePosition.left);
        this.resizeHandler.style.left =
            x - (this.j.o.iframe ? 0 : workplacePosition.left) + 'px';
        var sel = this.j.s.sel;
        sel && sel.removeAllRanges();
    };
    resizeCells.prototype.onMouseUp = function (e) {
        if (this.selectMode || this.drag) {
            this.selectMode = false;
            this.j.unlock();
        }
        if (!this.resizeHandler || !this.drag) {
            return;
        }
        this.drag = false;
        this.j.e.off(this.j.ew, 'mousemove.table touchmove.table', this.onMouseMove);
        this.resizeHandler.classList.remove('jodit-table-resizer_moved');
        if (this.startX !== e.clientX) {
            if (this.wholeTable == null) {
                this.resizeColumns();
            }
            else {
                this.resizeTable();
            }
        }
        this.j.synchronizeValues();
        this.j.s.focus();
    };
    resizeCells.prototype.resizeColumns = function () {
        var delta = this.resizeDelta;
        var marked = [];
        modules_1.Table.setColumnWidthByDelta(this.workTable, modules_1.Table.formalCoordinate(this.workTable, this.workCell, true)[1], delta, true, marked);
        var nextTD = (0, helpers_1.call)(this.isRTL ? dom_1.Dom.prev : dom_1.Dom.next, this.workCell, dom_1.Dom.isCell, this.workCell.parentNode);
        modules_1.Table.setColumnWidthByDelta(this.workTable, modules_1.Table.formalCoordinate(this.workTable, nextTD)[1], -delta, false, marked);
    };
    resizeCells.prototype.resizeTable = function () {
        var delta = this.resizeDelta * (this.isRTL ? -1 : 1);
        var width = this.workTable.offsetWidth, parentWidth = (0, helpers_1.getContentWidth)(this.workTable.parentNode, this.j.ew);
        var rightSide = !this.wholeTable;
        var needChangeWidth = this.isRTL ? !rightSide : rightSide;
        if (needChangeWidth) {
            this.workTable.style.width =
                ((width + delta) / parentWidth) * 100 + '%';
        }
        else {
            var side = this.isRTL ? 'marginRight' : 'marginLeft';
            var margin = parseInt(this.j.ew.getComputedStyle(this.workTable)[side] || '0', 10);
            this.workTable.style.width =
                ((width - delta) / parentWidth) * 100 + '%';
            this.workTable.style[side] =
                ((margin + delta) / parentWidth) * 100 + '%';
        }
    };
    resizeCells.prototype.setWorkCell = function (cell, wholeTable) {
        if (wholeTable === void 0) { wholeTable = null; }
        this.wholeTable = wholeTable;
        this.workCell = cell;
        this.workTable = dom_1.Dom.up(cell, function (elm) { return dom_1.Dom.isTag(elm, 'table'); }, this.j.editor);
    };
    resizeCells.prototype.calcHandlePosition = function (table, cell, offsetX, delta) {
        if (offsetX === void 0) { offsetX = 0; }
        if (delta === void 0) { delta = 0; }
        var box = (0, helpers_1.offset)(cell, this.j, this.j.ed);
        if (offsetX > consts.NEARBY && offsetX < box.width - consts.NEARBY) {
            this.hideResizeHandle();
            return;
        }
        var workplacePosition = (0, helpers_1.offset)(this.j.workplace, this.j, this.j.od, true), parentBox = (0, helpers_1.offset)(table, this.j, this.j.ed);
        this.resizeHandler.style.left =
            (offsetX <= consts.NEARBY ? box.left : box.left + box.width) -
                workplacePosition.left +
                delta +
                'px';
        Object.assign(this.resizeHandler.style, {
            height: parentBox.height + 'px',
            top: parentBox.top - workplacePosition.top + 'px'
        });
        this.showResizeHandle();
        if (offsetX <= consts.NEARBY) {
            var prevTD = (0, helpers_1.call)(this.isRTL ? dom_1.Dom.next : dom_1.Dom.prev, cell, dom_1.Dom.isCell, cell.parentNode);
            this.setWorkCell(prevTD || cell, prevTD ? null : true);
        }
        else {
            var nextTD = (0, helpers_1.call)(!this.isRTL ? dom_1.Dom.next : dom_1.Dom.prev, cell, dom_1.Dom.isCell, cell.parentNode);
            this.setWorkCell(cell, !nextTD ? false : null);
        }
    };
    resizeCells.prototype.afterInit = function (editor) {
        var _this = this;
        if (!editor.o.tableAllowCellResize) {
            return;
        }
        editor.e
            .off(this.j.ow, '.resize-cells')
            .off('.resize-cells')
            .on('change.resize-cells afterCommand.resize-cells afterSetMode.resize-cells', function () {
            (0, helpers_1.$$)('table', editor.editor).forEach(_this.observe);
        })
            .on(this.j.ow, 'scroll.resize-cells', function () {
            if (!_this.drag) {
                return;
            }
            var parent = dom_1.Dom.up(_this.workCell, function (elm) { return dom_1.Dom.isTag(elm, 'table'); }, editor.editor);
            if (parent) {
                var parentBox = parent.getBoundingClientRect();
                _this.resizeHandler.style.top = parentBox.top + 'px';
            }
        })
            .on('beforeSetMode.resize-cells', function () {
            _this.module.getAllSelectedCells().forEach(function (td) {
                _this.module.removeSelection(td);
                modules_1.Table.normalizeTable(dom_1.Dom.closest(td, 'table', editor.editor));
            });
        });
    };
    resizeCells.prototype.observe = function (table) {
        var _this = this;
        if ((0, helpers_1.dataBind)(table, key)) {
            return;
        }
        (0, helpers_1.dataBind)(table, key, true);
        this.j.e
            .on(table, 'mouseleave.resize-cells', function (e) {
            if (_this.resizeHandler &&
                _this.resizeHandler !== e.relatedTarget) {
                _this.hideResizeHandle();
            }
        })
            .on(table, 'mousemove.resize-cells touchmove.resize-cells', this.j.async.throttle(function (event) {
            if (_this.j.isLocked) {
                return;
            }
            var cell = dom_1.Dom.up(event.target, dom_1.Dom.isCell, table);
            if (!cell) {
                return;
            }
            _this.calcHandlePosition(table, cell, event.offsetX);
        }, {
            timeout: this.j.defaultTimeout
        }));
        this.createResizeHandle();
    };
    resizeCells.prototype.beforeDestruct = function (jodit) {
        if (jodit.events) {
            jodit.e.off(this.j.ow, '.resize-cells');
            jodit.e.off('.resize-cells');
        }
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizeCells.prototype, "onHandleMouseDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizeCells.prototype, "onMouseMove", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizeCells.prototype, "onMouseUp", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizeCells.prototype, "observe", null);
    return resizeCells;
}(modules_1.Plugin));
exports.resizeCells = resizeCells;
global_1.pluginSystem.add('resizeCells', resizeCells);


/***/ }),

/***/ 91637:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1341255__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1341255__(93166);
config_1.Config.prototype.allowResizeX = false;
config_1.Config.prototype.allowResizeY = true;


/***/ }),

/***/ 90523:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1341794__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.resizeHandler = void 0;
var tslib_1 = __nested_webpack_require_1341794__(20255);
var plugin_1 = __nested_webpack_require_1341794__(57549);
var dom_1 = __nested_webpack_require_1341794__(64968);
var decorators_1 = __nested_webpack_require_1341794__(43441);
var ui_1 = __nested_webpack_require_1341794__(2074);
var global_1 = __nested_webpack_require_1341794__(17332);
__nested_webpack_require_1341794__(91637);
var resizeHandler = (function (_super) {
    tslib_1.__extends(resizeHandler, _super);
    function resizeHandler() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isResized = false;
        _this.start = {
            x: 0,
            y: 0,
            w: 0,
            h: 0
        };
        _this.handle = _this.j.c.div('jodit-editor__resize', ui_1.Icon.get('resize_handler'));
        return _this;
    }
    resizeHandler.prototype.afterInit = function (editor) {
        var _this = this;
        var _a = editor.o, height = _a.height, width = _a.width, allowResizeX = _a.allowResizeX;
        var allowResizeY = editor.o.allowResizeY;
        if (height === 'auto' && width !== 'auto') {
            allowResizeY = false;
        }
        if ((height !== 'auto' || width !== 'auto') &&
            (allowResizeX || allowResizeY)) {
            editor.statusbar.setMod('resize-handle', true);
            editor.e
                .on('toggleFullSize.resizeHandler', function () {
                _this.handle.style.display = editor.isFullSize
                    ? 'none'
                    : 'block';
            })
                .on(this.handle, 'mousedown touchstart', this.onHandleResizeStart)
                .on(editor.ow, 'mouseup touchend', this.onHandleResizeEnd);
            editor.container.appendChild(this.handle);
        }
    };
    resizeHandler.prototype.onHandleResizeStart = function (e) {
        this.isResized = true;
        this.start.x = e.clientX;
        this.start.y = e.clientY;
        this.start.w = this.j.container.offsetWidth;
        this.start.h = this.j.container.offsetHeight;
        this.j.lock();
        this.j.e.on(this.j.ow, 'mousemove touchmove', this.onHandleResize);
        e.preventDefault();
    };
    resizeHandler.prototype.onHandleResize = function (e) {
        if (!this.isResized) {
            return;
        }
        if (this.j.o.allowResizeY) {
            this.j.e.fire('setHeight', this.start.h + e.clientY - this.start.y);
        }
        if (this.j.o.allowResizeX) {
            this.j.e.fire('setWidth', this.start.w + e.clientX - this.start.x);
        }
        this.j.e.fire('resize');
    };
    resizeHandler.prototype.onHandleResizeEnd = function () {
        if (this.isResized) {
            this.isResized = false;
            this.j.e.off(this.j.ow, 'mousemove touchmove', this.onHandleResize);
            this.j.unlock();
        }
    };
    resizeHandler.prototype.beforeDestruct = function () {
        dom_1.Dom.safeRemove(this.handle);
        this.j.e.off(this.j.ow, 'mouseup touchsend', this.onHandleResizeEnd);
    };
    resizeHandler.requires = ['size'];
    resizeHandler = tslib_1.__decorate([
        decorators_1.autobind
    ], resizeHandler);
    return resizeHandler;
}(plugin_1.Plugin));
exports.resizeHandler = resizeHandler;
global_1.pluginSystem.add('resizeHandler', resizeHandler);


/***/ }),

/***/ 36560:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1345454__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1345454__(93166);
config_1.Config.prototype.allowResizeTags = ['img', 'iframe', 'table', 'jodit'];
config_1.Config.prototype.resizer = {
    showSize: true,
    hideSizeTimeout: 1000,
    forImageChangeAttributes: true,
    min_width: 10,
    min_height: 10,
    useAspectRatio: ['img']
};


/***/ }),

/***/ 69257:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1346170__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.resizer = void 0;
var tslib_1 = __nested_webpack_require_1346170__(20255);
__nested_webpack_require_1346170__(6316);
var consts = __nested_webpack_require_1346170__(86893);
var constants_1 = __nested_webpack_require_1346170__(86893);
var dom_1 = __nested_webpack_require_1346170__(24263);
var helpers_1 = __nested_webpack_require_1346170__(40332);
var plugin_1 = __nested_webpack_require_1346170__(85605);
var global_1 = __nested_webpack_require_1346170__(17332);
var decorators_1 = __nested_webpack_require_1346170__(43441);
var global_2 = __nested_webpack_require_1346170__(17332);
__nested_webpack_require_1346170__(36560);
var keyBInd = '__jodit-resizer_binded';
var resizer = (function (_super) {
    tslib_1.__extends(resizer, _super);
    function resizer() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.LOCK_KEY = 'resizer';
        _this.element = null;
        _this.isResizeMode = false;
        _this.isShown = false;
        _this.startX = 0;
        _this.startY = 0;
        _this.width = 0;
        _this.height = 0;
        _this.ratio = 0;
        _this.rect = _this.j.c.fromHTML("<div title=\"".concat(_this.j.i18n('Press Alt for custom resizing'), "\" class=\"jodit-resizer\">\n\t\t\t\t<div class=\"jodit-resizer__top-left\"></div>\n\t\t\t\t<div class=\"jodit-resizer__top-right\"></div>\n\t\t\t\t<div class=\"jodit-resizer__bottom-right\"></div>\n\t\t\t\t<div class=\"jodit-resizer__bottom-left\"></div>\n\t\t\t\t<span>100x100</span>\n\t\t\t</div>"));
        _this.sizeViewer = _this.rect.getElementsByTagName('span')[0];
        _this.pointerX = 0;
        _this.pointerY = 0;
        _this.isAltMode = false;
        _this.onClickElement = function (element) {
            if (_this.isResizeMode) {
                return;
            }
            if (_this.element !== element || !_this.isShown) {
                _this.element = element;
                _this.show();
                if (dom_1.Dom.isTag(_this.element, 'img') && !_this.element.complete) {
                    _this.j.e.one(_this.element, 'load', _this.updateSize);
                }
            }
        };
        _this.updateSize = function () {
            if (_this.isInDestruct || !_this.isShown) {
                return;
            }
            if (_this.element && _this.rect) {
                var workplacePosition = _this.getWorkplacePosition();
                var pos = (0, helpers_1.offset)(_this.element, _this.j, _this.j.ed), left = parseInt(_this.rect.style.left || '0', 10), top = parseInt(_this.rect.style.top || '0', 10), w = _this.rect.offsetWidth, h = _this.rect.offsetHeight;
                var newTop = pos.top - workplacePosition.top, newLeft = pos.left - workplacePosition.left;
                if (top !== newTop ||
                    left !== newLeft ||
                    w !== _this.element.offsetWidth ||
                    h !== _this.element.offsetHeight) {
                    (0, helpers_1.css)(_this.rect, {
                        top: newTop,
                        left: newLeft,
                        width: _this.element.offsetWidth,
                        height: _this.element.offsetHeight
                    });
                    if (_this.j.events) {
                        _this.j.e.fire(_this.element, 'changesize');
                        if (!isNaN(left)) {
                            _this.j.e.fire('resize');
                        }
                    }
                }
            }
        };
        _this.hideSizeViewer = function () {
            _this.sizeViewer.style.opacity = '0';
        };
        return _this;
    }
    resizer.prototype.afterInit = function (editor) {
        var _this = this;
        (0, helpers_1.$$)('div', this.rect).forEach(function (resizeHandle) {
            editor.e.on(resizeHandle, 'mousedown.resizer touchstart.resizer', _this.onStartResizing.bind(_this, resizeHandle));
        });
        global_1.eventEmitter.on('hideHelpers', this.hide);
        editor.e
            .on('readonly', function (isReadOnly) {
            if (isReadOnly) {
                _this.hide();
            }
        })
            .on('afterInit changePlace', this.addEventListeners.bind(this))
            .on('afterGetValueFromEditor.resizer', function (data) {
            var rgx = /<jodit[^>]+data-jodit_iframe_wrapper[^>]+>(.*?<iframe[^>]*>.*?<\/iframe>.*?)<\/jodit>/gi;
            if (rgx.test(data.value)) {
                data.value = data.value.replace(rgx, '$1');
            }
        })
            .on('hideResizer', this.hide)
            .on('change afterInit afterSetMode', this.onChangeEditor);
        this.addEventListeners();
        this.onChangeEditor();
    };
    resizer.prototype.onEditorClick = function (e) {
        var node = e.target;
        var _a = this.j, editor = _a.editor, allowResizeTags = _a.options.allowResizeTags;
        while (node && node !== editor) {
            if (dom_1.Dom.isTag(node, allowResizeTags)) {
                this.bind(node);
                this.onClickElement(node);
                return;
            }
            node = node.parentNode;
        }
    };
    resizer.prototype.addEventListeners = function () {
        var _this = this;
        var editor = this.j;
        editor.e
            .off(editor.editor, '.resizer')
            .off(editor.ow, '.resizer')
            .on(editor.editor, 'keydown.resizer', function (e) {
            if (_this.isShown &&
                e.key === consts.KEY_DELETE &&
                _this.element &&
                !dom_1.Dom.isTag(_this.element, 'table')) {
                _this.onDelete(e);
            }
        })
            .on(editor.ow, 'resize.resizer', this.updateSize)
            .on('resize.resizer', this.updateSize)
            .on([editor.ow, editor.editor], 'scroll.resizer', function () {
            if (_this.isShown && !_this.isResizeMode) {
                _this.hide();
            }
        })
            .on(editor.ow, 'keydown.resizer', this.onKeyDown)
            .on(editor.ow, 'keyup.resizer', this.onKeyUp)
            .on(editor.ow, 'mouseup.resizer touchend.resizer', this.onClickOutside);
    };
    resizer.prototype.onStartResizing = function (resizeHandle, e) {
        if (!this.element || !this.element.parentNode) {
            this.hide();
            return false;
        }
        this.handle = resizeHandle;
        if (e.cancelable) {
            e.preventDefault();
        }
        e.stopImmediatePropagation();
        this.width = this.element.offsetWidth;
        this.height = this.element.offsetHeight;
        this.ratio = this.width / this.height;
        this.isResizeMode = true;
        this.startX = e.clientX;
        this.startY = e.clientY;
        this.pointerX = e.clientX;
        this.pointerY = e.clientY;
        var j = this.j;
        j.e.fire('hidePopup');
        j.lock(this.LOCK_KEY);
        j.e.on(j.ow, 'mousemove.resizer touchmove.resizer', this.onResize);
    };
    resizer.prototype.onEndResizing = function () {
        var j = this.j;
        j.unlock();
        this.isResizeMode = false;
        this.isAltMode = false;
        j.synchronizeValues();
        j.e.off(j.ow, 'mousemove.resizer touchmove.resizer', this.onResize);
    };
    resizer.prototype.onResize = function (e) {
        if (this.isResizeMode) {
            if (!this.element) {
                return;
            }
            this.pointerX = e.clientX;
            this.pointerY = e.clientY;
            var diff_x = void 0, diff_y = void 0;
            if (this.j.options.iframe) {
                var workplacePosition = this.getWorkplacePosition();
                diff_x = e.clientX + workplacePosition.left - this.startX;
                diff_y = e.clientY + workplacePosition.top - this.startY;
            }
            else {
                diff_x = this.pointerX - this.startX;
                diff_y = this.pointerY - this.startY;
            }
            var className = this.handle.className;
            var new_w = 0, new_h = 0;
            var uar = this.j.o.resizer.useAspectRatio;
            if (!this.isAltMode &&
                (uar === true ||
                    (Array.isArray(uar) && dom_1.Dom.isTag(this.element, uar)))) {
                if (diff_x) {
                    new_w =
                        this.width +
                            (className.match(/left/) ? -1 : 1) * diff_x;
                    new_h = Math.round(new_w / this.ratio);
                }
                else {
                    new_h =
                        this.height +
                            (className.match(/top/) ? -1 : 1) * diff_y;
                    new_w = Math.round(new_h * this.ratio);
                }
                if (new_w > (0, helpers_1.innerWidth)(this.j.editor, this.j.ow)) {
                    new_w = (0, helpers_1.innerWidth)(this.j.editor, this.j.ow);
                    new_h = Math.round(new_w / this.ratio);
                }
            }
            else {
                new_w =
                    this.width + (className.match(/left/) ? -1 : 1) * diff_x;
                new_h =
                    this.height + (className.match(/top/) ? -1 : 1) * diff_y;
            }
            if (new_w > this.j.o.resizer.min_width) {
                if (new_w < this.rect.parentNode.offsetWidth) {
                    this.applySize(this.element, 'width', new_w);
                }
                else {
                    this.applySize(this.element, 'width', '100%');
                }
            }
            if (new_h > this.j.o.resizer.min_height) {
                this.applySize(this.element, 'height', new_h);
            }
            this.updateSize();
            this.showSizeViewer(this.element.offsetWidth, this.element.offsetHeight);
            e.stopImmediatePropagation();
        }
    };
    resizer.prototype.onKeyDown = function (e) {
        this.isAltMode = e.key === constants_1.KEY_ALT;
        if (!this.isAltMode && this.isResizeMode) {
            this.onEndResizing();
        }
    };
    resizer.prototype.onKeyUp = function () {
        if (this.isAltMode && this.isResizeMode && this.element) {
            this.width = this.element.offsetWidth;
            this.height = this.element.offsetHeight;
            this.ratio = this.width / this.height;
            this.startX = this.pointerX;
            this.startY = this.pointerY;
        }
        this.isAltMode = false;
    };
    resizer.prototype.onClickOutside = function (e) {
        if (!this.isShown) {
            return;
        }
        if (!this.isResizeMode) {
            return this.hide();
        }
        e.stopImmediatePropagation();
        this.onEndResizing();
    };
    resizer.prototype.getWorkplacePosition = function () {
        return (0, helpers_1.offset)((this.rect.parentNode || this.j.od.documentElement), this.j, this.j.od, true);
    };
    resizer.prototype.applySize = function (element, key, value) {
        var changeAttrs = dom_1.Dom.isImage(element) && this.j.o.resizer.forImageChangeAttributes;
        if (changeAttrs) {
            (0, helpers_1.attr)(element, key, value);
        }
        if (!changeAttrs || element.style[key]) {
            (0, helpers_1.css)(element, key, value);
        }
    };
    resizer.prototype.onDelete = function (e) {
        if (!this.element) {
            return;
        }
        if (this.element.tagName !== 'JODIT') {
            this.j.s.select(this.element);
        }
        else {
            dom_1.Dom.safeRemove(this.element);
            this.hide();
            e.preventDefault();
        }
    };
    resizer.prototype.onChangeEditor = function () {
        if (this.isShown) {
            if (!this.element || !this.element.parentNode) {
                this.hide();
            }
            else {
                this.updateSize();
            }
        }
        (0, helpers_1.$$)('iframe', this.j.editor).forEach(this.bind);
    };
    resizer.prototype.bind = function (element) {
        var _this = this;
        if (!dom_1.Dom.isHTMLElement(element) ||
            !this.j.o.allowResizeTags.includes(element.tagName.toLowerCase()) ||
            (0, helpers_1.dataBind)(element, keyBInd)) {
            return;
        }
        (0, helpers_1.dataBind)(element, keyBInd, true);
        var wrapper;
        if (dom_1.Dom.isTag(element, 'iframe')) {
            var iframe_1 = element;
            if (dom_1.Dom.isHTMLElement(element.parentNode) &&
                (0, helpers_1.attr)(element.parentNode, '-jodit_iframe_wrapper')) {
                element = element.parentNode;
            }
            else {
                wrapper = this.j.createInside.element('jodit', {
                    'data-jodit-temp': 1,
                    contenteditable: false,
                    draggable: true,
                    'data-jodit_iframe_wrapper': 1
                });
                (0, helpers_1.attr)(wrapper, 'style', (0, helpers_1.attr)(element, 'style'));
                (0, helpers_1.css)(wrapper, {
                    display: element.style.display === 'inline-block'
                        ? 'inline-block'
                        : 'block',
                    width: element.offsetWidth,
                    height: element.offsetHeight
                });
                if (element.parentNode) {
                    element.parentNode.insertBefore(wrapper, element);
                }
                wrapper.appendChild(element);
                this.j.e.on(wrapper, 'click', function () {
                    (0, helpers_1.attr)(wrapper, 'data-jodit-wrapper_active', true);
                });
                element = wrapper;
            }
            this.j.e
                .off(element, 'mousedown.select touchstart.select')
                .on(element, 'mousedown.select touchstart.select', function () {
                _this.j.s.select(element);
            })
                .off(element, 'changesize')
                .on(element, 'changesize', function () {
                iframe_1.setAttribute('width', element.offsetWidth + 'px');
                iframe_1.setAttribute('height', element.offsetHeight + 'px');
            });
        }
        this.j.e.on(element, 'dragstart', this.hide);
        if (  true && constants_1.IS_IE) {
            this.j.e.on(element, 'mousedown', function (event) {
                if (dom_1.Dom.isTag(element, 'img')) {
                    event.preventDefault();
                }
            });
        }
    };
    resizer.prototype.showSizeViewer = function (w, h) {
        if (!this.j.o.resizer.showSize) {
            return;
        }
        if (w < this.sizeViewer.offsetWidth ||
            h < this.sizeViewer.offsetHeight) {
            this.hideSizeViewer();
            return;
        }
        this.sizeViewer.style.opacity = '1';
        this.sizeViewer.textContent = "".concat(w, " x ").concat(h);
        this.j.async.setTimeout(this.hideSizeViewer, {
            timeout: this.j.o.resizer.hideSizeTimeout,
            label: 'hideSizeViewer'
        });
    };
    resizer.prototype.show = function () {
        if (this.j.o.readonly || this.isShown) {
            return;
        }
        this.isShown = true;
        if (!this.rect.parentNode) {
            (0, helpers_1.markOwner)(this.j, this.rect);
            this.j.workplace.appendChild(this.rect);
        }
        if (this.j.isFullSize) {
            this.rect.style.zIndex = (0, helpers_1.css)(this.j.container, 'zIndex').toString();
        }
        this.updateSize();
    };
    resizer.prototype.hide = function () {
        if (!this.isResizeMode) {
            this.isResizeMode = false;
            this.isShown = false;
            this.element = null;
            dom_1.Dom.safeRemove(this.rect);
            (0, helpers_1.$$)("[data-jodit-wrapper_active='true']", this.j.editor).forEach(function (elm) { return (0, helpers_1.attr)(elm, 'data-jodit-wrapper_active', false); });
        }
    };
    resizer.prototype.beforeDestruct = function (jodit) {
        this.hide();
        global_1.eventEmitter.off('hideHelpers', this.hide);
        jodit.e.off(this.j.ow, '.resizer').off('.resizer');
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':click')
    ], resizer.prototype, "onEditorClick", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onStartResizing", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onEndResizing", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onResize", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onKeyDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onKeyUp", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "onClickOutside", null);
    tslib_1.__decorate([
        (0, decorators_1.debounce)()
    ], resizer.prototype, "onChangeEditor", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "bind", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], resizer.prototype, "hide", null);
    return resizer;
}(plugin_1.Plugin));
exports.resizer = resizer;
global_2.pluginSystem.add('resizer', resizer);


/***/ }),

/***/ 61975:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1363799__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1363799__(93166);
var icon_1 = __nested_webpack_require_1363799__(77904);
__nested_webpack_require_1363799__(59535);
config_1.Config.prototype.useSearch = true;
config_1.Config.prototype.search = {
    lazyIdleTimeout: 0
};
icon_1.Icon.set('search', __nested_webpack_require_1363799__(41197));
config_1.Config.prototype.controls.find = {
    tooltip: 'Find',
    icon: 'search',
    exec: function (jodit, _, _a) {
        var control = _a.control;
        var value = control.args && control.args[0];
        switch (value) {
            case 'findPrevious':
                jodit.e.fire('searchPrevious');
                break;
            case 'findNext':
                jodit.e.fire('searchNext');
                break;
            case 'replace':
                jodit.execCommand('openReplaceDialog');
                break;
            default:
                jodit.execCommand('openSearchDialog');
        }
    },
    list: {
        search: 'Find',
        findNext: 'Find Next',
        findPrevious: 'Find Previous',
        replace: 'Replace'
    },
    childTemplate: function (_, k, v) { return v; }
};


/***/ }),

/***/ 73934:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1365302__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1365302__(20255);
tslib_1.__exportStar(__nested_webpack_require_1365302__(18562), exports);
tslib_1.__exportStar(__nested_webpack_require_1365302__(3928), exports);


/***/ }),

/***/ 18562:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1365862__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.SentenceFinder = void 0;
var tslib_1 = __nested_webpack_require_1365862__(20255);
var fuzzy_search_index_1 = __nested_webpack_require_1365862__(93163);
var SentenceFinder = (function () {
    function SentenceFinder(searchIndex) {
        if (searchIndex === void 0) { searchIndex = fuzzy_search_index_1.fuzzySearchIndex; }
        this.searchIndex = searchIndex;
        this.queue = [];
        this.value = '';
    }
    SentenceFinder.prototype.add = function (node) {
        var _a;
        var value = ((_a = node.nodeValue) !== null && _a !== void 0 ? _a : '').toLowerCase();
        if (!value.length) {
            return;
        }
        var index = this.value.length;
        this.queue.push({
            startIndex: index,
            endIndex: index + value.length,
            node: node
        });
        this.value += value;
    };
    SentenceFinder.prototype.ranges = function (needle, position) {
        var _a;
        if (position === void 0) { position = 0; }
        var results = [];
        var index = position, len = 0, startQueueIndex = 0;
        do {
            _a = tslib_1.__read(this.searchIndex(needle, this.value, index), 2), index = _a[0], len = _a[1];
            if (index !== -1) {
                var startContainer = void 0, startOffset = 0, endContainer = void 0, endOffset = 0;
                for (var i = startQueueIndex; i < this.queue.length; i += 1) {
                    if (!startContainer && this.queue[i].endIndex > index) {
                        startContainer = this.queue[i].node;
                        startOffset = index - this.queue[i].startIndex;
                    }
                    if (startContainer &&
                        this.queue[i].endIndex >= index + len) {
                        endContainer = this.queue[i].node;
                        endOffset = index + len - this.queue[i].startIndex;
                        startQueueIndex = i;
                        break;
                    }
                }
                if (startContainer && endContainer) {
                    results.push({
                        startContainer: startContainer,
                        startOffset: startOffset,
                        endContainer: endContainer,
                        endOffset: endOffset
                    });
                }
                index += len;
            }
        } while (index !== -1);
        return results.length === 0 ? null : results;
    };
    return SentenceFinder;
}());
exports.SentenceFinder = SentenceFinder;


/***/ }),

/***/ 3928:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1368783__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.isSelectionWrapper = exports.clearSelectionWrappersFromHTML = exports.clearSelectionWrappers = exports.getSelectionWrappers = exports.wrapRangesTextsInTmpSpan = void 0;
var tslib_1 = __nested_webpack_require_1368783__(20255);
var dom_1 = __nested_webpack_require_1368783__(24263);
var selector_1 = __nested_webpack_require_1368783__(54188);
var TMP_ATTR = 'jd-tmp-selection';
function wrapRangesTextsInTmpSpan(rng, restRanges, ci, root) {
    var _a, e_1, _b;
    if (rng.startContainer.nodeValue == null ||
        rng.endContainer.nodeValue == null) {
        return;
    }
    var span = ci.element('span', (_a = {},
        _a[TMP_ATTR] = true,
        _a));
    dom_1.Dom.markTemporary(span);
    var startText = rng.startContainer.nodeValue;
    var diff = 0;
    if (rng.startOffset !== 0) {
        var text = ci.text(startText.substring(0, rng.startOffset));
        rng.startContainer.nodeValue = startText.substring(rng.startOffset);
        dom_1.Dom.before(rng.startContainer, text);
        if (rng.startContainer === rng.endContainer) {
            diff = rng.startOffset;
            rng.endOffset -= diff;
        }
        rng.startOffset = 0;
    }
    var endText = rng.endContainer.nodeValue;
    if (rng.endOffset !== endText.length) {
        var text = ci.text(endText.substring(rng.endOffset));
        rng.endContainer.nodeValue = endText.substring(0, rng.endOffset);
        dom_1.Dom.after(rng.endContainer, text);
        try {
            for (var restRanges_1 = tslib_1.__values(restRanges), restRanges_1_1 = restRanges_1.next(); !restRanges_1_1.done; restRanges_1_1 = restRanges_1.next()) {
                var range = restRanges_1_1.value;
                if (range.startContainer === rng.endContainer) {
                    range.startContainer = text;
                    range.startOffset = range.startOffset - rng.endOffset - diff;
                    if (range.endContainer === rng.endContainer) {
                        range.endContainer = text;
                        range.endOffset = range.endOffset - rng.endOffset - diff;
                    }
                }
                else {
                    break;
                }
            }
        }
        catch (e_1_1) { e_1 = { error: e_1_1 }; }
        finally {
            try {
                if (restRanges_1_1 && !restRanges_1_1.done && (_b = restRanges_1.return)) _b.call(restRanges_1);
            }
            finally { if (e_1) throw e_1.error; }
        }
        rng.endOffset = rng.endContainer.nodeValue.length;
    }
    var next = rng.startContainer;
    do {
        if (!next) {
            break;
        }
        if (dom_1.Dom.isText(next) && !isSelectionWrapper(next.parentNode)) {
            dom_1.Dom.wrap(next, span.cloneNode(), ci);
        }
        if (next === rng.endContainer) {
            break;
        }
        var step = next.firstChild || next.nextSibling;
        if (!step) {
            while (next && !next.nextSibling && next !== root) {
                next = next.parentNode;
            }
            step = next === null || next === void 0 ? void 0 : next.nextSibling;
        }
        next = step;
    } while (next && next !== root);
}
exports.wrapRangesTextsInTmpSpan = wrapRangesTextsInTmpSpan;
function getSelectionWrappers(root) {
    return (0, selector_1.$$)("[".concat(TMP_ATTR, "]"), root);
}
exports.getSelectionWrappers = getSelectionWrappers;
function clearSelectionWrappers(root) {
    getSelectionWrappers(root).forEach(function (span) { return dom_1.Dom.unwrap(span); });
}
exports.clearSelectionWrappers = clearSelectionWrappers;
function clearSelectionWrappersFromHTML(root) {
    return root.replace(RegExp("<span[^>]+".concat(TMP_ATTR, "[^>]+>(.*?)</span>"), 'g'), '$1');
}
exports.clearSelectionWrappersFromHTML = clearSelectionWrappersFromHTML;
function isSelectionWrapper(node) {
    return dom_1.Dom.isElement(node) && node.hasAttribute(TMP_ATTR);
}
exports.isSelectionWrapper = isSelectionWrapper;


/***/ }),

/***/ 59535:
/***/ (function() {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */


/***/ }),

/***/ 14889:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1373409__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.search = void 0;
var tslib_1 = __nested_webpack_require_1373409__(20255);
var dom_1 = __nested_webpack_require_1373409__(64968);
var plugin_1 = __nested_webpack_require_1373409__(57549);
var decorators_1 = __nested_webpack_require_1373409__(43441);
var search_1 = __nested_webpack_require_1373409__(72235);
var helpers_1 = __nested_webpack_require_1373409__(40332);
var global_1 = __nested_webpack_require_1373409__(17332);
var helpers_2 = __nested_webpack_require_1373409__(73934);
__nested_webpack_require_1373409__(61975);
var search = (function (_super) {
    tslib_1.__extends(search, _super);
    function search() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'find',
                group: 'search'
            }
        ];
        _this.previousQuery = '';
        _this.drawPromise = null;
        _this.walker = null;
        _this.walkerCount = null;
        _this.cache = {};
        _this.wrapFrameRequest = 0;
        return _this;
    }
    Object.defineProperty(search.prototype, "ui", {
        get: function () {
            return new search_1.UISearch(this.j);
        },
        enumerable: false,
        configurable: true
    });
    search.prototype.updateCounters = function () {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var _a;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        if (!this.ui.isOpened) {
                            return [2];
                        }
                        _a = this.ui;
                        return [4, this.calcCounts(this.ui.query)];
                    case 1:
                        _a.count = _b.sent();
                        return [2];
                }
            });
        });
    };
    search.prototype.onPressReplaceButton = function () {
        this.findAndReplace(this.ui.query);
        this.updateCounters();
    };
    search.prototype.tryScrollToElement = function (startContainer) {
        var parentBox = dom_1.Dom.closest(startContainer, dom_1.Dom.isElement, this.j.editor);
        if (!parentBox) {
            parentBox = dom_1.Dom.prev(startContainer, dom_1.Dom.isElement, this.j.editor);
        }
        parentBox &&
            parentBox !== this.j.editor &&
            (0, helpers_1.scrollIntoViewIfNeeded)(parentBox, this.j.editor, this.j.ed);
    };
    search.prototype.calcCounts = function (query) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            return tslib_1.__generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4, this.findQueryBounds(query, 'walkerCount')];
                    case 1: return [2, (_a.sent()).length];
                }
            });
        });
    };
    search.prototype.findQueryBounds = function (query, walkerKey) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var walker;
            return tslib_1.__generator(this, function (_a) {
                walker = this[walkerKey];
                if (walker) {
                    walker.break();
                }
                walker = new dom_1.LazyWalker(this.j.async, {
                    timeout: this.j.o.search.lazyIdleTimeout
                });
                this[walkerKey] = walker;
                return [2, this.find(walker, query).catch(function (e) {
                          false && 0;
                        return [];
                    })];
            });
        });
    };
    search.prototype.findAndReplace = function (query) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var bounds, currentIndex, bound, rng, textNode;
            return tslib_1.__generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4, this.findQueryBounds(query, 'walker')];
                    case 1:
                        bounds = _a.sent();
                        if (!bounds.length) {
                            return [2, false];
                        }
                        currentIndex = this.findCurrentIndexInRanges(bounds, this.j.s.range);
                        if (currentIndex === -1) {
                            currentIndex = 0;
                        }
                        bound = bounds[currentIndex];
                        if (!bound) return [3, 6];
                        _a.label = 2;
                    case 2:
                        _a.trys.push([2, , 4, 5]);
                        rng = this.j.ed.createRange();
                        rng.setStart(bound.startContainer, bound.startOffset);
                        rng.setEnd(bound.endContainer, bound.endOffset);
                        rng.deleteContents();
                        textNode = this.j.createInside.text(this.ui.replace);
                        dom_1.Dom.safeInsertNode(rng, textNode);
                        (0, helpers_2.clearSelectionWrappers)(this.j.editor);
                        this.j.s.setCursorAfter(textNode);
                        this.tryScrollToElement(textNode);
                        this.cache = {};
                        this.ui.currentIndex = currentIndex;
                        return [4, this.findAndSelect(query, true).catch(function (e) {
                                  false && 0;
                                return null;
                            })];
                    case 3:
                        _a.sent();
                        return [3, 5];
                    case 4:
                        this.j.synchronizeValues();
                        return [7];
                    case 5:
                        this.j.e.fire('afterFindAndReplace');
                        return [2, true];
                    case 6: return [2, false];
                }
            });
        });
    };
    search.prototype.findAndSelect = function (query, next) {
        var _a;
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var bounds, currentIndex, bound, rng;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0: return [4, this.findQueryBounds(query, 'walker')];
                    case 1:
                        bounds = _b.sent();
                        if (!bounds.length) {
                            return [2, false];
                        }
                        if (this.previousQuery !== query ||
                            !(0, helpers_2.getSelectionWrappers)(this.j.editor).length) {
                            (_a = this.drawPromise) === null || _a === void 0 ? void 0 : _a.rejectCallback();
                            this.j.async.cancelAnimationFrame(this.wrapFrameRequest);
                            (0, helpers_2.clearSelectionWrappers)(this.j.editor);
                            this.drawPromise = this.drawSelectionRanges(bounds);
                        }
                        this.previousQuery = query;
                        currentIndex = this.ui.currentIndex - 1;
                        if (currentIndex === -1) {
                            currentIndex = 0;
                        }
                        else if (next) {
                            currentIndex =
                                currentIndex === bounds.length - 1 ? 0 : currentIndex + 1;
                        }
                        else {
                            currentIndex =
                                currentIndex === 0 ? bounds.length - 1 : currentIndex - 1;
                        }
                        this.ui.currentIndex = currentIndex + 1;
                        bound = bounds[currentIndex];
                        if (!bound) return [3, 4];
                        rng = this.j.ed.createRange();
                        try {
                            rng.setStart(bound.startContainer, bound.startOffset);
                            rng.setEnd(bound.endContainer, bound.endOffset);
                            this.j.s.selectRange(rng);
                        }
                        catch (e) {
                              false && 0;
                        }
                        this.tryScrollToElement(bound.startContainer);
                        return [4, this.updateCounters()];
                    case 2:
                        _b.sent();
                        return [4, this.drawPromise];
                    case 3:
                        _b.sent();
                        this.j.e.fire('afterFindAndSelect');
                        return [2, true];
                    case 4: return [2, false];
                }
            });
        });
    };
    search.prototype.findCurrentIndexInRanges = function (bounds, range) {
        return bounds.findIndex(function (bound) {
            return bound.startContainer === range.startContainer &&
                bound.startOffset === range.startOffset &&
                bound.endContainer === range.startContainer &&
                bound.endOffset === range.endOffset;
        });
    };
    search.prototype.isValidCache = function (promise) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var res;
            return tslib_1.__generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4, promise];
                    case 1:
                        res = _a.sent();
                        return [2, res.every(function (r) {
                                var _a, _b, _c, _d;
                                return r.startContainer.isConnected &&
                                    r.startOffset <= ((_b = (_a = r.startContainer.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) &&
                                    r.endContainer.isConnected &&
                                    r.endOffset <= ((_d = (_c = r.endContainer.nodeValue) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0);
                            })];
                }
            });
        });
    };
    search.prototype.find = function (walker, query) {
        return tslib_1.__awaiter(this, void 0, Promise, function () {
            var cache, _a;
            var _this = this;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        if (!query.length) {
                            return [2, []];
                        }
                        cache = this.cache[query];
                        _a = cache;
                        if (!_a) return [3, 2];
                        return [4, this.isValidCache(cache)];
                    case 1:
                        _a = (_b.sent());
                        _b.label = 2;
                    case 2:
                        if (_a) {
                            return [2, cache];
                        }
                        this.cache[query] = this.j.async.promise(function (resolve) {
                            var sentence = new helpers_2.SentenceFinder(_this.j.o.search.fuzzySearch);
                            walker
                                .on('break', function () {
                                resolve([]);
                            })
                                .on('visit', function (elm) {
                                if (dom_1.Dom.isText(elm)) {
                                    sentence.add(elm);
                                }
                                return false;
                            })
                                .on('end', function () {
                                var _a;
                                resolve((_a = sentence.ranges(query)) !== null && _a !== void 0 ? _a : []);
                            })
                                .setWork(_this.j.editor);
                        });
                        return [2, this.cache[query]];
                }
            });
        });
    };
    search.prototype.drawSelectionRanges = function (ranges) {
        var _this = this;
        var _a = this.j, async = _a.async, ci = _a.createInside, editor = _a.editor;
        async.cancelAnimationFrame(this.wrapFrameRequest);
        var parts = tslib_1.__spreadArray([], tslib_1.__read(ranges), false);
        var sRange, total = 0;
        return async.promise(function (resolve) {
            var drawParts = function () {
                do {
                    sRange = parts.shift();
                    if (sRange) {
                        (0, helpers_2.wrapRangesTextsInTmpSpan)(sRange, parts, ci, editor);
                    }
                    total += 1;
                } while (sRange && total <= 5);
                if (parts.length) {
                    _this.wrapFrameRequest =
                        async.requestAnimationFrame(drawParts);
                }
                else {
                    resolve();
                }
            };
            drawParts();
        });
    };
    search.prototype.onAfterGetValueFromEditor = function (data) {
        data.value = (0, helpers_2.clearSelectionWrappersFromHTML)(data.value);
    };
    search.prototype.afterInit = function (editor) {
        var _this = this;
        if (editor.o.useSearch) {
            var self_1 = this;
            editor.e
                .on('beforeSetMode.search', function () {
                _this.ui.close();
            })
                .on(this.ui, 'afterClose', function () {
                (0, helpers_2.clearSelectionWrappers)(editor.editor);
                _this.ui.currentIndex = 0;
                _this.ui.count = 0;
                _this.cache = {};
            })
                .on('click', function () {
                _this.ui.currentIndex = 0;
                (0, helpers_2.clearSelectionWrappers)(editor.editor);
            })
                .on('change.search', function () {
                _this.cache = {};
            })
                .on('keydown.search mousedown.search', editor.async.debounce(function () {
                if (_this.ui.selInfo) {
                    editor.s.removeMarkers();
                    _this.ui.selInfo = null;
                }
                if (_this.ui.isOpened) {
                    _this.updateCounters();
                }
            }, editor.defaultTimeout))
                .on('searchNext.search searchPrevious.search', function () {
                if (!_this.ui.isOpened) {
                    _this.ui.open();
                }
                return self_1
                    .findAndSelect(self_1.ui.query, editor.e.current === 'searchNext')
                    .catch(function (e) {
                      false && 0;
                });
            })
                .on('search.search', function (value, next) {
                if (next === void 0) { next = true; }
                _this.ui.currentIndex = 0;
                return self_1.findAndSelect(value || '', next).catch(function (e) {
                      false && 0;
                });
            });
            editor
                .registerCommand('search', {
                exec: function (command, value, next) {
                    if (next === void 0) { next = true; }
                    value &&
                        self_1.findAndSelect(value, next).catch(function (e) {
                              false && 0;
                        });
                    return false;
                }
            })
                .registerCommand('openSearchDialog', {
                exec: function (command, value) {
                    self_1.ui.open(value);
                    return false;
                },
                hotkeys: ['ctrl+f', 'cmd+f']
            })
                .registerCommand('openReplaceDialog', {
                exec: function (command, query, replace) {
                    if (!editor.o.readonly) {
                        self_1.ui.open(query, replace, true);
                    }
                    return false;
                },
                hotkeys: ['ctrl+h', 'cmd+h']
            });
        }
    };
    search.prototype.beforeDestruct = function (jodit) {
        this.ui.destruct();
        jodit.e.off('.search');
    };
    tslib_1.__decorate([
        decorators_1.cache
    ], search.prototype, "ui", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('ui:needUpdateCounters')
    ], search.prototype, "updateCounters", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('ui:pressReplaceButton')
    ], search.prototype, "onPressReplaceButton", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], search.prototype, "findQueryBounds", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], search.prototype, "findAndReplace", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], search.prototype, "findAndSelect", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], search.prototype, "find", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':afterGetValueFromEditor')
    ], search.prototype, "onAfterGetValueFromEditor", null);
    return search;
}(plugin_1.Plugin));
exports.search = search;
global_1.pluginSystem.add('search', search);


/***/ }),

/***/ 72235:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1391185__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UISearch = void 0;
var tslib_1 = __nested_webpack_require_1391185__(20255);
__nested_webpack_require_1391185__(88582);
var ui_1 = __nested_webpack_require_1391185__(2074);
var helpers_1 = __nested_webpack_require_1391185__(40332);
var constants_1 = __nested_webpack_require_1391185__(86893);
var consts = __nested_webpack_require_1391185__(86893);
var decorators_1 = __nested_webpack_require_1391185__(43441);
var dom_1 = __nested_webpack_require_1391185__(64968);
var UISearch = (function (_super) {
    tslib_1.__extends(UISearch, _super);
    function UISearch(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.selInfo = null;
        _this._currentIndex = 0;
        _this.isOpened = false;
        var _a = (0, helpers_1.refs)(_this.container), query = _a.query, replace = _a.replace, cancel = _a.cancel, next = _a.next, prev = _a.prev, replaceBtn = _a.replaceBtn, current = _a.current, count = _a.count;
        _this.queryInput = query;
        _this.replaceInput = replace;
        _this.closeButton = cancel;
        _this.replaceButton = replaceBtn;
        _this.currentBox = current;
        _this.countBox = count;
        jodit.e
            .on(_this.closeButton, 'pointerdown', function () {
            _this.close();
            return false;
        })
            .on(_this.queryInput, 'input', function () {
            _this.currentIndex = 0;
        })
            .on(_this.queryInput, 'pointerdown', function () {
            if (jodit.s.isFocused()) {
                jodit.s.removeMarkers();
                _this.selInfo = jodit.s.save();
            }
        })
            .on(_this.replaceButton, 'pointerdown', function () {
            jodit.e.fire(_this, 'pressReplaceButton');
            return false;
        })
            .on(next, 'pointerdown', function () {
            jodit.e.fire('searchNext');
            return false;
        })
            .on(prev, 'pointerdown', function () {
            jodit.e.fire('searchPrevious');
            return false;
        })
            .on(_this.queryInput, 'input', function () {
            _this.setMod('empty-query', !(0, helpers_1.trim)(_this.queryInput.value).length);
        })
            .on(_this.queryInput, 'keydown', _this.j.async.debounce(function (e) {
            switch (e.key) {
                case consts.KEY_ENTER:
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    if (jodit.e.fire('searchNext')) {
                        _this.close();
                    }
                    break;
                default:
                    jodit.e.fire(_this, 'needUpdateCounters');
                    break;
            }
        }, _this.j.defaultTimeout));
        return _this;
    }
    UISearch.prototype.className = function () {
        return 'UISearch';
    };
    UISearch.prototype.render = function () {
        return "<div>\n\t\t\t<div class=\"&__box\">\n\t\t\t\t<div class=\"&__inputs\">\n\t\t\t\t\t<input data-ref=\"query\" tabindex=\"0\" placeholder=\"~Search for~\" type=\"text\"/>\n\t\t\t\t\t<input data-ref=\"replace\" tabindex=\"0\" placeholder=\"~Replace with~\" type=\"text\"/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"&__counts\">\n\t\t\t\t\t<span data-ref=\"counter-box\">\n\t\t\t\t\t\t<span data-ref=\"current\">0</span><span>/</span><span data-ref=\"count\">0</span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"&__buttons\">\n\t\t\t\t\t<button data-ref=\"next\" tabindex=\"0\" type=\"button\">".concat(ui_1.Icon.get('angle-down'), "</button>\n\t\t\t\t\t<button data-ref=\"prev\" tabindex=\"0\" type=\"button\">").concat(ui_1.Icon.get('angle-up'), "</button>\n\t\t\t\t\t<button data-ref=\"cancel\" tabindex=\"0\" type=\"button\">").concat(ui_1.Icon.get('cancel'), "</button>\n\t\t\t\t\t<button data-ref=\"replace-btn\" tabindex=\"0\" type=\"button\" class=\"jodit-ui-button\">~Replace~</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>");
    };
    Object.defineProperty(UISearch.prototype, "currentIndex", {
        get: function () {
            return this._currentIndex;
        },
        set: function (value) {
            this._currentIndex = value;
            this.currentBox.innerText = value.toString();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(UISearch.prototype, "count", {
        set: function (value) {
            this.countBox.innerText = value.toString();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(UISearch.prototype, "query", {
        get: function () {
            return this.queryInput.value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(UISearch.prototype, "replace", {
        get: function () {
            return this.replaceInput.value;
        },
        enumerable: false,
        configurable: true
    });
    UISearch.prototype.onEditorKeyDown = function (e) {
        if (!this.isOpened) {
            return;
        }
        var j = this.j;
        if (j.getRealMode() !== constants_1.MODE_WYSIWYG) {
            return;
        }
        switch (e.key) {
            case consts.KEY_ESC:
                this.close();
                break;
            case consts.KEY_F3:
                if (this.queryInput.value) {
                    j.e.fire(!e.shiftKey ? 'searchNext' : 'searchPrevious');
                    e.preventDefault();
                }
                break;
        }
    };
    UISearch.prototype.open = function (query, replace, searchAndReplace) {
        if (searchAndReplace === void 0) { searchAndReplace = false; }
        if (!this.isOpened) {
            this.j.workplace.appendChild(this.container);
            this.isOpened = true;
        }
        this.calcSticky(this.j.e.fire('getStickyState.sticky') || false);
        this.j.e.fire('hidePopup');
        this.setMod('replace', searchAndReplace);
        var selStr = query !== null && query !== void 0 ? query : (this.j.s.sel || '').toString();
        if (selStr) {
            this.queryInput.value = selStr;
        }
        if (replace) {
            this.replaceInput.value = replace;
        }
        this.setMod('empty-query', !selStr.length);
        this.j.e.fire(this, 'needUpdateCounters');
        if (selStr) {
            this.queryInput.select();
        }
        else {
            this.queryInput.focus();
        }
    };
    UISearch.prototype.close = function () {
        if (!this.isOpened) {
            return;
        }
        this.j.s.restore();
        dom_1.Dom.safeRemove(this.container);
        this.isOpened = false;
        this.j.e.fire(this, 'afterClose');
    };
    UISearch.prototype.calcSticky = function (enabled) {
        if (this.isOpened) {
            this.setMod('sticky', enabled);
            if (enabled) {
                var pos = (0, helpers_1.position)(this.j.toolbarContainer);
                (0, helpers_1.css)(this.container, {
                    top: pos.top + pos.height,
                    left: pos.left + pos.width
                });
            }
            else {
                (0, helpers_1.css)(this.container, {
                    top: null,
                    left: null
                });
            }
        }
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)([':keydown', 'queryInput:keydown'])
    ], UISearch.prototype, "onEditorKeyDown", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], UISearch.prototype, "open", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], UISearch.prototype, "close", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':toggleSticky')
    ], UISearch.prototype, "calcSticky", null);
    UISearch = tslib_1.__decorate([
        decorators_1.component
    ], UISearch);
    return UISearch;
}(ui_1.UIElement));
exports.UISearch = UISearch;


/***/ }),

/***/ 14189:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1399416__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1399416__(93166);
config_1.Config.prototype.tableAllowCellSelection = true;


/***/ }),

/***/ 37458:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1399918__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.selectCells = void 0;
var tslib_1 = __nested_webpack_require_1399918__(20255);
var plugin_1 = __nested_webpack_require_1399918__(57549);
var modules_1 = __nested_webpack_require_1399918__(87837);
var dom_1 = __nested_webpack_require_1399918__(24263);
var helpers_1 = __nested_webpack_require_1399918__(40332);
var constants_1 = __nested_webpack_require_1399918__(86893);
var decorators_1 = __nested_webpack_require_1399918__(43441);
var global_1 = __nested_webpack_require_1399918__(17332);
__nested_webpack_require_1399918__(14189);
var key = 'table_processor_observer';
var MOUSE_MOVE_LABEL = 'onMoveTableSelectCell';
var selectCells = (function (_super) {
    tslib_1.__extends(selectCells, _super);
    function selectCells() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.requires = ['select'];
        _this.selectedCell = null;
        _this.isSelectionMode = false;
        return _this;
    }
    Object.defineProperty(selectCells.prototype, "module", {
        get: function () {
            return this.j.getInstance('Table', this.j.o);
        },
        enumerable: false,
        configurable: true
    });
    selectCells.prototype.afterInit = function (jodit) {
        var _this = this;
        if (!jodit.o.tableAllowCellSelection) {
            return;
        }
        jodit.e
            .on('keydown.select-cells', function (event) {
            if (event.key === constants_1.KEY_TAB) {
                _this.unselectCells();
            }
        })
            .on('beforeCommand.select-cells', this.onExecCommand)
            .on('afterCommand.select-cells', this.onAfterCommand)
            .on([
            'clickEditor',
            'mousedownTd',
            'mousedownTh',
            'touchstartTd',
            'touchstartTh'
        ]
            .map(function (e) { return e + '.select-cells'; })
            .join(' '), this.onStartSelection)
            .on('clickTr clickTbody', function () {
            var _a;
            var cellsCount = _this.module.getAllSelectedCells().length;
            if (cellsCount) {
                if (cellsCount > 1) {
                    (_a = _this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
                }
                return false;
            }
        });
    };
    selectCells.prototype.onStartSelection = function (cell) {
        if (this.j.o.readonly) {
            return;
        }
        this.unselectCells();
        if (cell === this.j.editor) {
            return;
        }
        var table = dom_1.Dom.closest(cell, 'table', this.j.editor);
        if (!cell || !table) {
            return;
        }
        if (!cell.firstChild) {
            cell.appendChild(this.j.createInside.element('br'));
        }
        this.isSelectionMode = true;
        this.selectedCell = cell;
        this.module.addSelection(cell);
        this.j.e
            .on(table, 'mousemove.select-cells touchmove.select-cells', this.j.async.throttle(this.onMove.bind(this, table), {
            label: MOUSE_MOVE_LABEL,
            timeout: this.j.defaultTimeout / 2
        }))
            .on(table, 'mouseup.select-cells touchend.select-cells', this.onStopSelection.bind(this, table));
        return false;
    };
    selectCells.prototype.onOutsideClick = function () {
        this.selectedCell = null;
        this.onRemoveSelection();
    };
    selectCells.prototype.onChange = function () {
        if (!this.j.isLocked && !this.isSelectionMode) {
            this.onRemoveSelection();
        }
    };
    selectCells.prototype.onMove = function (table, e) {
        var _this = this;
        var _a;
        if (this.j.o.readonly && !this.j.isLocked) {
            return;
        }
        if (this.j.isLockedNotBy(key)) {
            return;
        }
        var node = this.j.ed.elementFromPoint(e.clientX, e.clientY);
        if (!node) {
            return;
        }
        var cell = dom_1.Dom.closest(node, ['td', 'th'], table);
        if (!cell || !this.selectedCell) {
            return;
        }
        if (cell !== this.selectedCell) {
            this.j.lock(key);
        }
        this.unselectCells();
        var bound = modules_1.Table.getSelectedBound(table, [cell, this.selectedCell]), box = modules_1.Table.formalMatrix(table);
        for (var i = bound[0][0]; i <= bound[1][0]; i += 1) {
            for (var j = bound[0][1]; j <= bound[1][1]; j += 1) {
                this.module.addSelection(box[i][j]);
            }
        }
        var cellsCount = this.module.getAllSelectedCells().length;
        if (cellsCount > 1) {
            (_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
        }
        this.j.e.fire('hidePopup');
        e.stopPropagation();
        (function () {
            var n = _this.j.createInside.fromHTML('<div style="color:rgba(0,0,0,0.01);width:0;height:0">&nbsp;</div>');
            cell.appendChild(n);
            _this.j.async.setTimeout(function () {
                var _a;
                (_a = n.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(n);
            }, _this.j.defaultTimeout / 5);
        })();
    };
    selectCells.prototype.onRemoveSelection = function (e) {
        var _a;
        if (!((_a = e === null || e === void 0 ? void 0 : e.buffer) === null || _a === void 0 ? void 0 : _a.actionTrigger) &&
            !this.selectedCell &&
            this.module.getAllSelectedCells().length) {
            this.j.unlock();
            this.unselectCells();
            this.j.e.fire('hidePopup', 'cells');
            return;
        }
        this.isSelectionMode = false;
        this.selectedCell = null;
    };
    selectCells.prototype.onStopSelection = function (table, e) {
        var _this = this;
        if (!this.selectedCell) {
            return;
        }
        this.isSelectionMode = false;
        this.j.unlock();
        var node = this.j.ed.elementFromPoint(e.clientX, e.clientY);
        if (!node) {
            return;
        }
        var cell = dom_1.Dom.closest(node, ['td', 'th'], table);
        if (!cell) {
            return;
        }
        var ownTable = dom_1.Dom.closest(cell, 'table', table);
        if (ownTable && ownTable !== table) {
            return;
        }
        var bound = modules_1.Table.getSelectedBound(table, [cell, this.selectedCell]), box = modules_1.Table.formalMatrix(table);
        var max = box[bound[1][0]][bound[1][1]], min = box[bound[0][0]][bound[0][1]];
        this.j.e.fire('showPopup', table, function () {
            var minOffset = (0, helpers_1.position)(min, _this.j), maxOffset = (0, helpers_1.position)(max, _this.j);
            return {
                left: minOffset.left,
                top: minOffset.top,
                width: maxOffset.left - minOffset.left + maxOffset.width,
                height: maxOffset.top - minOffset.top + maxOffset.height
            };
        }, 'cells');
        (0, helpers_1.$$)('table', this.j.editor).forEach(function (table) {
            _this.j.e.off(table, 'mousemove.select-cells touchmove.select-cells mouseup.select-cells touchend.select-cells');
        });
        this.j.async.clearTimeout(MOUSE_MOVE_LABEL);
    };
    selectCells.prototype.unselectCells = function (currentCell) {
        var module = this.module;
        var cells = module.getAllSelectedCells();
        if (cells.length) {
            cells.forEach(function (cell) {
                if (!currentCell || currentCell !== cell) {
                    module.removeSelection(cell);
                }
            });
        }
    };
    selectCells.prototype.onExecCommand = function (command) {
        if (/table(splitv|splitg|merge|empty|bin|binrow|bincolumn|addcolumn|addrow)/.test(command)) {
            command = command.replace('table', '');
            var cells = this.module.getAllSelectedCells();
            if (cells.length) {
                var _a = tslib_1.__read(cells, 1), cell = _a[0];
                if (!cell) {
                    return;
                }
                var table_1 = dom_1.Dom.closest(cell, 'table', this.j.editor);
                if (!table_1) {
                    return;
                }
                switch (command) {
                    case 'splitv':
                        modules_1.Table.splitVertical(table_1, this.j);
                        break;
                    case 'splitg':
                        modules_1.Table.splitHorizontal(table_1, this.j);
                        break;
                    case 'merge':
                        modules_1.Table.mergeSelected(table_1, this.j);
                        break;
                    case 'empty':
                        cells.forEach(function (td) { return dom_1.Dom.detach(td); });
                        break;
                    case 'bin':
                        dom_1.Dom.safeRemove(table_1);
                        break;
                    case 'binrow':
                        new Set(cells.map(function (td) { return td.parentNode; })).forEach(function (row) {
                            modules_1.Table.removeRow(table_1, row.rowIndex);
                        });
                        break;
                    case 'bincolumn':
                        {
                            var columnsSet_1 = new Set(), columns = cells.reduce(function (acc, td) {
                                if (!columnsSet_1.has(td.cellIndex)) {
                                    acc.push(td);
                                    columnsSet_1.add(td.cellIndex);
                                }
                                return acc;
                            }, []);
                            columns.forEach(function (td) {
                                modules_1.Table.removeColumn(table_1, td.cellIndex);
                            });
                        }
                        break;
                    case 'addcolumnafter':
                    case 'addcolumnbefore':
                        modules_1.Table.appendColumn(table_1, cell.cellIndex, command === 'addcolumnafter', this.j.createInside);
                        break;
                    case 'addrowafter':
                    case 'addrowbefore':
                        modules_1.Table.appendRow(table_1, cell.parentNode, command === 'addrowafter', this.j.createInside);
                        break;
                }
            }
            return false;
        }
    };
    selectCells.prototype.onAfterCommand = function (command) {
        if (/^justify/.test(command)) {
            this.module
                .getAllSelectedCells()
                .forEach(function (elm) { return (0, helpers_1.alignElement)(command, elm); });
        }
    };
    selectCells.prototype.beforeDestruct = function (jodit) {
        this.onRemoveSelection();
        jodit.e.off('.select-cells');
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], selectCells.prototype, "onStartSelection", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':outsideClick')
    ], selectCells.prototype, "onOutsideClick", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':change')
    ], selectCells.prototype, "onChange", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], selectCells.prototype, "onRemoveSelection", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], selectCells.prototype, "onStopSelection", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], selectCells.prototype, "onExecCommand", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], selectCells.prototype, "onAfterCommand", null);
    return selectCells;
}(plugin_1.Plugin));
exports.selectCells = selectCells;
global_1.pluginSystem.add('selectCells', selectCells);


/***/ }),

/***/ 33100:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1412051__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1412051__(93166);
config_1.Config.prototype.select = {
    normalizeSelectionBeforeCutAndCopy: false
};


/***/ }),

/***/ 95323:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1412581__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.select = void 0;
var tslib_1 = __nested_webpack_require_1412581__(20255);
var plugin_1 = __nested_webpack_require_1412581__(57549);
var decorators_1 = __nested_webpack_require_1412581__(43441);
var camel_case_1 = __nested_webpack_require_1412581__(26596);
var dom_1 = __nested_webpack_require_1412581__(24263);
var ui_1 = __nested_webpack_require_1412581__(2074);
var global_1 = __nested_webpack_require_1412581__(17332);
__nested_webpack_require_1412581__(33100);
var select = (function (_super) {
    tslib_1.__extends(select, _super);
    function select() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.proxyEventsList = [
            'click',
            'mousedown',
            'touchstart',
            'mouseup',
            'touchend'
        ];
        return _this;
    }
    select.prototype.afterInit = function (jodit) {
        var _this = this;
        this.proxyEventsList.forEach(function (eventName) {
            jodit.e.on(eventName + '.select', _this.onStartSelection);
        });
    };
    select.prototype.beforeDestruct = function (jodit) {
        var _this = this;
        this.proxyEventsList.forEach(function (eventName) {
            jodit.e.on(eventName + '.select', _this.onStartSelection);
        });
    };
    select.prototype.onStartSelection = function (e) {
        var j = this.j;
        var result, target = e.target;
        while (result === undefined && target && target !== j.editor) {
            result = j.e.fire((0, camel_case_1.camelCase)(e.type + '_' + target.nodeName.toLowerCase()), target, e);
            target = target.parentElement;
        }
        if (e.type === 'click' && result === undefined && target === j.editor) {
            j.e.fire(e.type + 'Editor', target, e);
        }
    };
    select.prototype.onOutsideClick = function (e) {
        var _this = this;
        var node = e.target;
        if (dom_1.Dom.up(node, function (elm) { return elm === _this.j.editor; })) {
            return;
        }
        var box = ui_1.UIElement.closestElement(node, ui_1.Popup);
        if (!box) {
            this.j.e.fire('outsideClick', e);
        }
    };
    select.prototype.beforeCommandCut = function (command) {
        var s = this.j.s;
        if (command === 'cut' && !s.isCollapsed()) {
            var current = s.current();
            if (current && dom_1.Dom.isOrContains(this.j.editor, current)) {
                this.onCopyNormalizeSelectionBound();
            }
        }
    };
    select.prototype.onCopyNormalizeSelectionBound = function (e) {
        var _a = this.j, s = _a.s, editor = _a.editor, o = _a.o;
        if (!o.select.normalizeSelectionBeforeCutAndCopy || s.isCollapsed()) {
            return;
        }
        if (e &&
            (!e.isTrusted ||
                !dom_1.Dom.isNode(e.target) ||
                !dom_1.Dom.isOrContains(editor, e.target))) {
            return;
        }
        this.jodit.s.expandSelection();
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], select.prototype, "onStartSelection", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)('ow:click')
    ], select.prototype, "onOutsideClick", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)([':beforeCommand'])
    ], select.prototype, "beforeCommandCut", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)([':copy', ':cut'])
    ], select.prototype, "onCopyNormalizeSelectionBound", null);
    return select;
}(plugin_1.Plugin));
exports.select = select;
global_1.pluginSystem.add('select', select);


/***/ }),

/***/ 53387:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1416466__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1416466__(93166);
config_1.Config.prototype.minWidth = 200;
config_1.Config.prototype.maxWidth = '100%';
config_1.Config.prototype.minHeight = 200;
config_1.Config.prototype.maxHeight = 'auto';
config_1.Config.prototype.saveHeightInStorage = false;


/***/ }),

/***/ 71003:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1417141__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.size = void 0;
var tslib_1 = __nested_webpack_require_1417141__(20255);
__nested_webpack_require_1417141__(30962);
var is_number_1 = __nested_webpack_require_1417141__(61817);
var css_1 = __nested_webpack_require_1417141__(26911);
var plugin_1 = __nested_webpack_require_1417141__(85605);
var decorators_1 = __nested_webpack_require_1417141__(43441);
var global_1 = __nested_webpack_require_1417141__(17332);
__nested_webpack_require_1417141__(53387);
var size = (function (_super) {
    tslib_1.__extends(size, _super);
    function size() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.__resizeWorkspaces = _this.j.async.debounce(_this.__resizeWorkspaceImd, _this.j.defaultTimeout, true);
        return _this;
    }
    size.prototype.afterInit = function (editor) {
        editor.e
            .on('setHeight.size', this.__setHeight)
            .on('setWidth.size', this.__setWidth)
            .on('afterInit.size changePlace.size', this.__initialize, {
            top: true
        })
            .on(editor.ow, 'load.size', this.__resizeWorkspaces)
            .on('afterInit.size resize.size afterUpdateToolbar.size ' +
            'scroll.size afterResize.size', this.__resizeWorkspaces)
            .on('toggleFullSize.size toggleToolbar.size', this.__resizeWorkspaceImd);
        this.__initialize();
    };
    size.prototype.__initialize = function () {
        var j = this.j;
        if (j.o.inline) {
            return;
        }
        var height = j.o.height;
        if (j.o.saveHeightInStorage && height !== 'auto') {
            var localHeight = j.storage.get('height');
            if (localHeight) {
                height = localHeight;
            }
        }
        (0, css_1.css)(j.editor, {
            minHeight: '100%'
        });
        (0, css_1.css)(j.container, {
            minHeight: j.o.minHeight,
            maxHeight: j.o.maxHeight,
            minWidth: j.o.minWidth,
            maxWidth: j.o.maxWidth
        });
        this.__setHeight(height);
        this.__setWidth(j.o.width);
    };
    size.prototype.__setHeight = function (height) {
        if ((0, is_number_1.isNumber)(height)) {
            var _a = this.j.o, minHeight = _a.minHeight, maxHeight = _a.maxHeight;
            if ((0, is_number_1.isNumber)(minHeight) && minHeight > height) {
                height = minHeight;
            }
            if ((0, is_number_1.isNumber)(maxHeight) && maxHeight < height) {
                height = maxHeight;
            }
        }
        (0, css_1.css)(this.j.container, 'height', height);
        if (this.j.o.saveHeightInStorage) {
            this.j.storage.set('height', height);
        }
        this.__resizeWorkspaceImd();
    };
    size.prototype.__setWidth = function (width) {
        if ((0, is_number_1.isNumber)(width)) {
            var _a = this.j.o, minWidth = _a.minWidth, maxWidth = _a.maxWidth;
            if ((0, is_number_1.isNumber)(minWidth) && minWidth > width) {
                width = minWidth;
            }
            if ((0, is_number_1.isNumber)(maxWidth) && maxWidth < width) {
                width = maxWidth;
            }
        }
        (0, css_1.css)(this.j.container, 'width', width);
        this.__resizeWorkspaceImd();
    };
    size.prototype.__getNotWorkHeight = function () {
        var _a, _b;
        return ((((_a = this.j.toolbarContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0) +
            (((_b = this.j.statusbar) === null || _b === void 0 ? void 0 : _b.getHeight()) || 0) +
            2);
    };
    size.prototype.__resizeWorkspaceImd = function () {
        if (!this.j || this.j.isDestructed || !this.j.o || this.j.o.inline) {
            return;
        }
        if (!this.j.container || !this.j.container.parentNode) {
            return;
        }
        var minHeight = ((0, css_1.css)(this.j.container, 'minHeight') || 0) -
            this.__getNotWorkHeight();
        if ((0, is_number_1.isNumber)(minHeight) && minHeight > 0) {
            [this.j.workplace, this.j.iframe, this.j.editor].map(function (elm) {
                elm && (0, css_1.css)(elm, 'minHeight', minHeight);
            });
            this.j.e.fire('setMinHeight', minHeight);
        }
        if ((0, is_number_1.isNumber)(this.j.o.maxHeight)) {
            var maxHeight_1 = this.j.o.maxHeight - this.__getNotWorkHeight();
            [this.j.workplace, this.j.iframe, this.j.editor].map(function (elm) {
                elm && (0, css_1.css)(elm, 'maxHeight', maxHeight_1);
            });
            this.j.e.fire('setMaxHeight', maxHeight_1);
        }
        if (this.j.container) {
            (0, css_1.css)(this.j.workplace, 'height', this.j.o.height !== 'auto' || this.j.isFullSize
                ? this.j.container.offsetHeight - this.__getNotWorkHeight()
                : 'auto');
        }
    };
    size.prototype.beforeDestruct = function (jodit) {
        jodit.e
            .off(jodit.ow, 'load.size', this.__resizeWorkspaces)
            .off('.size');
    };
    tslib_1.__decorate([
        (0, decorators_1.throttle)()
    ], size.prototype, "__initialize", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], size.prototype, "__resizeWorkspaceImd", null);
    size = tslib_1.__decorate([
        decorators_1.autobind
    ], size);
    return size;
}(plugin_1.Plugin));
exports.size = size;
global_1.pluginSystem.add('size', size);


/***/ }),

/***/ 13985:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1422888__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1422888__(93166);
var constants_1 = __nested_webpack_require_1422888__(86893);
var icon_1 = __nested_webpack_require_1422888__(77904);
config_1.Config.prototype.beautifyHTML = !constants_1.IS_IE;
config_1.Config.prototype.sourceEditor = 'ace';
config_1.Config.prototype.sourceEditorNativeOptions = {
    showGutter: true,
    theme: 'ace/theme/idle_fingers',
    mode: 'ace/mode/html',
    wrap: true,
    highlightActiveLine: true
};
config_1.Config.prototype.sourceEditorCDNUrlsJS = [
    'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ace.js'
];
config_1.Config.prototype.beautifyHTMLCDNUrlsJS = [
    'https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.4/beautify.min.js',
    'https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.4/beautify-html.min.js'
];
icon_1.Icon.set('source', __nested_webpack_require_1422888__(9342));
config_1.Config.prototype.controls.source = {
    mode: constants_1.MODE_SPLIT,
    exec: function (editor) {
        editor.toggleMode();
    },
    isActive: function (editor) {
        return editor.getRealMode() === constants_1.MODE_SOURCE;
    },
    tooltip: 'Change mode'
};


/***/ }),

/***/ 34186:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1424393__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.AceEditor = void 0;
var tslib_1 = __nested_webpack_require_1424393__(20255);
var constants = __nested_webpack_require_1424393__(86893);
var helpers_1 = __nested_webpack_require_1424393__(40332);
var sourceEditor_1 = __nested_webpack_require_1424393__(36729);
var AceEditor = (function (_super) {
    tslib_1.__extends(AceEditor, _super);
    function AceEditor() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.className = 'jodit_ace_editor';
        _this.proxyOnBlur = function (e) {
            _this.j.e.fire('blur', e);
        };
        _this.proxyOnFocus = function (e) {
            _this.j.e.fire('focus', e);
        };
        _this.proxyOnMouseDown = function (e) {
            _this.j.e.fire('mousedown', e);
        };
        return _this;
    }
    AceEditor.prototype.aceExists = function () {
        return this.j.ow.ace !== undefined;
    };
    AceEditor.prototype.getLastColumnIndex = function (row) {
        return this.instance.session.getLine(row).length;
    };
    AceEditor.prototype.getLastColumnIndices = function () {
        var rows = this.instance.session.getLength();
        var lastColumnIndices = [];
        var lastColIndex = 0;
        for (var i = 0; i < rows; i++) {
            lastColIndex += this.getLastColumnIndex(i);
            if (i > 0) {
                lastColIndex += 1;
            }
            lastColumnIndices[i] = lastColIndex;
        }
        return lastColumnIndices;
    };
    AceEditor.prototype.getRowColumnIndices = function (characterIndex) {
        var lastColumnIndices = this.getLastColumnIndices();
        if (characterIndex <= lastColumnIndices[0]) {
            return { row: 0, column: characterIndex };
        }
        var row = 1;
        for (var i = 1; i < lastColumnIndices.length; i++) {
            if (characterIndex > lastColumnIndices[i]) {
                row = i + 1;
            }
        }
        var column = characterIndex - lastColumnIndices[row - 1] - 1;
        return { row: row, column: column };
    };
    AceEditor.prototype.setSelectionRangeIndices = function (start, end) {
        var startRowColumn = this.getRowColumnIndices(start);
        var endRowColumn = this.getRowColumnIndices(end);
        this.instance.getSelection().setSelectionRange({
            start: startRowColumn,
            end: endRowColumn
        });
    };
    AceEditor.prototype.getIndexByRowColumn = function (row, column) {
        var lastColumnIndices = this.getLastColumnIndices();
        return lastColumnIndices[row] - this.getLastColumnIndex(row) + column;
    };
    AceEditor.prototype.init = function (editor) {
        var _this = this;
        var tryInitAceEditor = function () {
            if (_this.instance !== undefined || !_this.aceExists()) {
                return;
            }
            var fakeMirror = _this.j.c.div('jodit-source__mirror-fake');
            _this.container.appendChild(fakeMirror);
            var ace = editor.ow.ace;
            _this.instance = ace.edit(fakeMirror);
            _this.instance.setTheme(editor.o.sourceEditorNativeOptions.theme);
            _this.instance.renderer.setShowGutter(editor.o.sourceEditorNativeOptions.showGutter);
            _this.instance
                .getSession()
                .setMode(editor.o.sourceEditorNativeOptions.mode);
            _this.instance.setHighlightActiveLine(editor.o.sourceEditorNativeOptions.highlightActiveLine);
            _this.instance.getSession().setUseWrapMode(true);
            _this.instance.setOption('indentedSoftWrap', false);
            _this.instance.setOption('wrap', editor.o.sourceEditorNativeOptions.wrap);
            _this.instance.getSession().setUseWorker(false);
            _this.instance.$blockScrolling = Infinity;
            _this.instance.on('change', _this.toWYSIWYG);
            _this.instance.on('focus', _this.proxyOnFocus);
            _this.instance.on('mousedown', _this.proxyOnMouseDown);
            _this.instance.on('blur', _this.proxyOnBlur);
            if (editor.getRealMode() !== constants.MODE_WYSIWYG) {
                _this.setValue(_this.getValue());
            }
            var onResize = _this.j.async.debounce(function () {
                if (editor.isInDestruct) {
                    return;
                }
                if (editor.o.height !== 'auto') {
                    _this.instance.setOption('maxLines', editor.workplace.offsetHeight /
                        _this.instance.renderer.lineHeight);
                }
                else {
                    _this.instance.setOption('maxLines', Infinity);
                }
                _this.instance.resize();
            }, _this.j.defaultTimeout * 2);
            editor.e.on('afterResize afterSetMode', onResize);
            onResize();
            _this.onReady();
        };
        editor.e.on('afterSetMode', function () {
            if (editor.getRealMode() !== constants.MODE_SOURCE &&
                editor.getMode() !== constants.MODE_SPLIT) {
                return;
            }
            _this.fromWYSIWYG();
            tryInitAceEditor();
        });
        tryInitAceEditor();
        if (!this.aceExists()) {
            (0, helpers_1.loadNext)(editor, editor.o.sourceEditorCDNUrlsJS)
                .then(function () {
                if (!editor.isInDestruct) {
                    tryInitAceEditor();
                }
            })
                .catch(function () { return null; });
        }
    };
    AceEditor.prototype.destruct = function () {
        var _a, _b;
        this.instance.off('change', this.toWYSIWYG);
        this.instance.off('focus', this.proxyOnFocus);
        this.instance.off('mousedown', this.proxyOnMouseDown);
        this.instance.destroy();
        (_b = (_a = this.j) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.off('aceInited.source');
    };
    AceEditor.prototype.setValue = function (value) {
        if (!this.j.o.editHTMLDocumentMode && this.j.o.beautifyHTML) {
            var html = this.j.e.fire('beautifyHTML', value);
            if ((0, helpers_1.isString)(html)) {
                value = html;
            }
        }
        this.instance.setValue(value);
        this.instance.clearSelection();
    };
    AceEditor.prototype.getValue = function () {
        return this.instance.getValue();
    };
    AceEditor.prototype.setReadOnly = function (isReadOnly) {
        this.instance.setReadOnly(isReadOnly);
    };
    Object.defineProperty(AceEditor.prototype, "isFocused", {
        get: function () {
            return this.instance.isFocused();
        },
        enumerable: false,
        configurable: true
    });
    AceEditor.prototype.focus = function () {
        this.instance.focus();
    };
    AceEditor.prototype.blur = function () {
        this.instance.blur();
    };
    AceEditor.prototype.getSelectionStart = function () {
        var range = this.instance.selection.getRange();
        return this.getIndexByRowColumn(range.start.row, range.start.column);
    };
    AceEditor.prototype.getSelectionEnd = function () {
        var range = this.instance.selection.getRange();
        return this.getIndexByRowColumn(range.end.row, range.end.column);
    };
    AceEditor.prototype.selectAll = function () {
        this.instance.selection.selectAll();
    };
    AceEditor.prototype.insertRaw = function (html) {
        var start = this.instance.selection.getCursor(), end = this.instance.session.insert(start, html);
        this.instance.selection.setRange({
            start: start,
            end: end
        }, false);
    };
    AceEditor.prototype.setSelectionRange = function (start, end) {
        this.setSelectionRangeIndices(start, end);
    };
    AceEditor.prototype.setPlaceHolder = function (title) {
    };
    AceEditor.prototype.replaceUndoManager = function () {
        var history = this.jodit.history;
        this.instance.commands.addCommand({
            name: 'Undo',
            bindKey: { win: 'Ctrl-Z', mac: 'Command-Z' },
            exec: function () {
                history.undo();
            }
        });
        this.instance.commands.addCommand({
            name: 'Redo',
            bindKey: { win: 'Ctrl-Shift-Z', mac: 'Command-Shift-Z' },
            exec: function () {
                history.redo();
            }
        });
    };
    return AceEditor;
}(sourceEditor_1.SourceEditor));
exports.AceEditor = AceEditor;


/***/ }),

/***/ 58633:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1433242__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TextAreaEditor = void 0;
var tslib_1 = __nested_webpack_require_1433242__(20255);
var css_1 = __nested_webpack_require_1433242__(26911);
var dom_1 = __nested_webpack_require_1433242__(24263);
var sourceEditor_1 = __nested_webpack_require_1433242__(36729);
var TextAreaEditor = (function (_super) {
    tslib_1.__extends(TextAreaEditor, _super);
    function TextAreaEditor() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.autosize = _this.j.async.debounce(function () {
            _this.instance.style.height = 'auto';
            _this.instance.style.height = _this.instance.scrollHeight + 'px';
        }, _this.j.defaultTimeout);
        return _this;
    }
    TextAreaEditor.prototype.init = function (editor) {
        var _this = this;
        this.instance = editor.c.element('textarea', {
            class: 'jodit-source__mirror'
        });
        this.container.appendChild(this.instance);
        editor.e
            .on(this.instance, 'mousedown keydown touchstart input', editor.async.debounce(this.toWYSIWYG, editor.defaultTimeout))
            .on('setMinHeight.source', function (minHeightD) {
            (0, css_1.css)(_this.instance, 'minHeight', minHeightD);
        })
            .on(this.instance, 'change keydown mousedown touchstart input', this.autosize)
            .on('afterSetMode.source', this.autosize)
            .on(this.instance, 'mousedown focus', function (e) {
            editor.e.fire(e.type, e);
        });
        this.autosize();
        this.onReady();
    };
    TextAreaEditor.prototype.destruct = function () {
        dom_1.Dom.safeRemove(this.instance);
    };
    TextAreaEditor.prototype.getValue = function () {
        return this.instance.value;
    };
    TextAreaEditor.prototype.setValue = function (raw) {
        this.instance.value = raw;
    };
    TextAreaEditor.prototype.insertRaw = function (raw) {
        var value = this.getValue();
        if (this.getSelectionStart() >= 0) {
            var startPos = this.getSelectionStart(), endPos = this.getSelectionEnd();
            this.setValue(value.substring(0, startPos) +
                raw +
                value.substring(endPos, value.length));
        }
        else {
            this.setValue(value + raw);
        }
    };
    TextAreaEditor.prototype.getSelectionStart = function () {
        return this.instance.selectionStart;
    };
    TextAreaEditor.prototype.getSelectionEnd = function () {
        return this.instance.selectionEnd;
    };
    TextAreaEditor.prototype.setSelectionRange = function (start, end) {
        if (end === void 0) { end = start; }
        this.instance.setSelectionRange(start, end);
    };
    Object.defineProperty(TextAreaEditor.prototype, "isFocused", {
        get: function () {
            return this.instance === this.j.od.activeElement;
        },
        enumerable: false,
        configurable: true
    });
    TextAreaEditor.prototype.focus = function () {
        this.instance.focus();
    };
    TextAreaEditor.prototype.blur = function () {
        this.instance.blur();
    };
    TextAreaEditor.prototype.setPlaceHolder = function (title) {
        this.instance.setAttribute('placeholder', title);
    };
    TextAreaEditor.prototype.setReadOnly = function (isReadOnly) {
        if (isReadOnly) {
            this.instance.setAttribute('readonly', 'true');
        }
        else {
            this.instance.removeAttribute('readonly');
        }
    };
    TextAreaEditor.prototype.selectAll = function () {
        this.instance.select();
    };
    TextAreaEditor.prototype.replaceUndoManager = function () {
        var _this = this;
        var history = this.jodit.history;
        this.j.e.on(this.instance, 'keydown', function (e) {
            if ((e.ctrlKey || e.metaKey) && e.key === 'z') {
                if (e.shiftKey) {
                    history.redo();
                }
                else {
                    history.undo();
                }
                _this.setSelectionRange(_this.getValue().length);
                return false;
            }
        });
    };
    return TextAreaEditor;
}(sourceEditor_1.SourceEditor));
exports.TextAreaEditor = TextAreaEditor;


/***/ }),

/***/ 52834:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1437826__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1437826__(20255);
tslib_1.__exportStar(__nested_webpack_require_1437826__(58633), exports);
tslib_1.__exportStar(__nested_webpack_require_1437826__(34186), exports);


/***/ }),

/***/ 94785:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1438387__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.createSourceEditor = void 0;
var helpers_1 = __nested_webpack_require_1438387__(40332);
var engines_1 = __nested_webpack_require_1438387__(52834);
function createSourceEditor(type, editor, container, toWYSIWYG, fromWYSIWYG) {
    var sourceEditor;
    if ((0, helpers_1.isFunction)(type)) {
        sourceEditor = type(editor);
    }
    else {
        switch (type) {
            case 'ace':
                if (!editor.o.shadowRoot) {
                    sourceEditor = new engines_1.AceEditor(editor, container, toWYSIWYG, fromWYSIWYG);
                    break;
                }
            default:
                sourceEditor = new engines_1.TextAreaEditor(editor, container, toWYSIWYG, fromWYSIWYG);
        }
    }
    sourceEditor.init(editor);
    sourceEditor.onReadyAlways(function () {
        sourceEditor.setReadOnly(editor.o.readonly);
    });
    return sourceEditor;
}
exports.createSourceEditor = createSourceEditor;


/***/ }),

/***/ 36729:
/***/ (function(__unused_webpack_module, exports) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.SourceEditor = void 0;
var SourceEditor = (function () {
    function SourceEditor(jodit, container, toWYSIWYG, fromWYSIWYG) {
        this.jodit = jodit;
        this.container = container;
        this.toWYSIWYG = toWYSIWYG;
        this.fromWYSIWYG = fromWYSIWYG;
        this.className = '';
        this.isReady = false;
    }
    Object.defineProperty(SourceEditor.prototype, "j", {
        get: function () {
            return this.jodit;
        },
        enumerable: false,
        configurable: true
    });
    SourceEditor.prototype.onReady = function () {
        this.replaceUndoManager();
        this.isReady = true;
        this.j.e.fire(this, 'ready');
    };
    SourceEditor.prototype.onReadyAlways = function (onReady) {
        var _a;
        if (!this.isReady) {
            (_a = this.j.events) === null || _a === void 0 ? void 0 : _a.on(this, 'ready', onReady);
        }
        else {
            onReady();
        }
    };
    return SourceEditor;
}());
exports.SourceEditor = SourceEditor;


/***/ }),

/***/ 86030:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1441116__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.source = void 0;
var tslib_1 = __nested_webpack_require_1441116__(20255);
__nested_webpack_require_1441116__(68197);
var consts = __nested_webpack_require_1441116__(86893);
var constants_1 = __nested_webpack_require_1441116__(86893);
var plugin_1 = __nested_webpack_require_1441116__(57549);
var dom_1 = __nested_webpack_require_1441116__(24263);
var helpers_1 = __nested_webpack_require_1441116__(40332);
var decorators_1 = __nested_webpack_require_1441116__(43441);
var global_1 = __nested_webpack_require_1441116__(17332);
var factory_1 = __nested_webpack_require_1441116__(94785);
__nested_webpack_require_1441116__(13985);
var source = (function (_super) {
    tslib_1.__extends(source, _super);
    function source() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.buttons = [
            {
                name: 'source',
                group: 'source'
            }
        ];
        _this.__lock = false;
        _this.__oldMirrorValue = '';
        _this.tempMarkerStart = '{start-jodit-selection}';
        _this.tempMarkerStartReg = /{start-jodit-selection}/g;
        _this.tempMarkerEnd = '{end-jodit-selection}';
        _this.tempMarkerEndReg = /{end-jodit-selection}/g;
        _this.getSelectionStart = function () {
            var _a, _b;
            return (_b = (_a = _this.sourceEditor) === null || _a === void 0 ? void 0 : _a.getSelectionStart()) !== null && _b !== void 0 ? _b : 0;
        };
        _this.getSelectionEnd = function () {
            var _a, _b;
            return (_b = (_a = _this.sourceEditor) === null || _a === void 0 ? void 0 : _a.getSelectionEnd()) !== null && _b !== void 0 ? _b : 0;
        };
        return _this;
    }
    source.prototype.onInsertHTML = function (html) {
        var _a;
        if (!this.j.o.readonly && !this.j.isEditorMode()) {
            (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.insertRaw(html);
            this.toWYSIWYG();
            return false;
        }
    };
    source.prototype.fromWYSIWYG = function (force) {
        if (force === void 0) { force = false; }
        if (!this.__lock || force === true) {
            this.__lock = true;
            var new_value = this.j.getEditorValue(false, constants_1.SOURCE_CONSUMER);
            if (new_value !== this.getMirrorValue()) {
                this.setMirrorValue(new_value);
            }
            this.__lock = false;
        }
    };
    source.prototype.toWYSIWYG = function () {
        if (this.__lock) {
            return;
        }
        var value = this.getMirrorValue();
        if (value === this.__oldMirrorValue) {
            return;
        }
        this.__lock = true;
        this.j.value = value;
        this.__lock = false;
        this.__oldMirrorValue = value;
    };
    source.prototype.getNormalPosition = function (pos, str) {
        str = str.replace(/<(script|style|iframe)[^>]*>[^]*?<\/\1>/im, function (m) {
            var res = '';
            for (var i = 0; i < m.length; i += 1) {
                res += constants_1.INVISIBLE_SPACE;
            }
            return res;
        });
        while (pos > 0 && str[pos] === constants_1.INVISIBLE_SPACE) {
            pos--;
        }
        var start = pos;
        while (start > 0) {
            start--;
            if (str[start] === '<' &&
                str[start + 1] !== undefined &&
                str[start + 1].match(/[\w/]+/i)) {
                return start;
            }
            if (str[start] === '>') {
                return pos;
            }
        }
        return pos;
    };
    source.prototype.clnInv = function (str) {
        return str.replace(consts.INVISIBLE_SPACE_REG_EXP(), '');
    };
    source.prototype.onSelectAll = function (command) {
        var _a;
        if (command.toLowerCase() === 'selectall' &&
            this.j.getRealMode() === constants_1.MODE_SOURCE) {
            (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.selectAll();
            return false;
        }
    };
    source.prototype.getMirrorValue = function () {
        var _a;
        return ((_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.getValue()) || '';
    };
    source.prototype.setMirrorValue = function (value) {
        var _a;
        (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.setValue(value);
    };
    source.prototype.setFocusToMirror = function () {
        var _a;
        (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.focus();
    };
    source.prototype.saveSelection = function () {
        if (this.j.getRealMode() === consts.MODE_WYSIWYG) {
            this.j.s.save();
            this.j.synchronizeValues();
            this.fromWYSIWYG(true);
        }
        else {
            if (this.j.o.editHTMLDocumentMode) {
                return;
            }
            var value = this.getMirrorValue();
            if (this.getSelectionStart() === this.getSelectionEnd()) {
                var marker = this.j.s.marker(true);
                var selectionStart = this.getNormalPosition(this.getSelectionStart(), this.getMirrorValue());
                this.setMirrorValue(value.substring(0, selectionStart) +
                    this.clnInv(marker.outerHTML) +
                    value.substring(selectionStart));
            }
            else {
                var markerStart = this.j.s.marker(true);
                var markerEnd = this.j.s.marker(false);
                var selectionStart = this.getNormalPosition(this.getSelectionStart(), value);
                var selectionEnd = this.getNormalPosition(this.getSelectionEnd(), value);
                this.setMirrorValue(value.substring(0, selectionStart) +
                    this.clnInv(markerStart.outerHTML) +
                    value.substring(selectionStart, selectionEnd - selectionStart) +
                    this.clnInv(markerEnd.outerHTML) +
                    value.substring(selectionEnd));
            }
            this.toWYSIWYG();
        }
    };
    source.prototype.removeSelection = function () {
        if (this.j.getRealMode() === consts.MODE_WYSIWYG) {
            this.__lock = true;
            this.j.s.restore();
            this.__lock = false;
            return;
        }
        var value = this.getMirrorValue();
        var selectionStart = 0, selectionEnd = 0;
        try {
            value = value
                .replace(/<span[^>]+data-jodit-selection_marker=(["'])start\1[^>]*>[<>]*?<\/span>/gim, this.tempMarkerStart)
                .replace(/<span[^>]+data-jodit-selection_marker=(["'])end\1[^>]*>[<>]*?<\/span>/gim, this.tempMarkerEnd);
            if (!this.j.o.editHTMLDocumentMode && this.j.o.beautifyHTML) {
                var html = this.j.e.fire('beautifyHTML', value);
                if ((0, helpers_1.isString)(html)) {
                    value = html;
                }
            }
            selectionStart = value.indexOf(this.tempMarkerStart);
            selectionEnd = selectionStart;
            value = value.replace(this.tempMarkerStartReg, '');
            if (selectionStart !== -1) {
                var selectionEndCursor = value.indexOf(this.tempMarkerEnd);
                if (selectionEndCursor !== -1) {
                    selectionEnd = selectionEndCursor;
                }
            }
            value = value.replace(this.tempMarkerEndReg, '');
        }
        finally {
            value = value
                .replace(this.tempMarkerEndReg, '')
                .replace(this.tempMarkerStartReg, '');
        }
        this.setMirrorValue(value);
        this.setMirrorSelectionRange(selectionStart, selectionEnd);
        this.toWYSIWYG();
        this.setFocusToMirror();
    };
    source.prototype.setMirrorSelectionRange = function (start, end) {
        var _a;
        (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.setSelectionRange(start, end);
    };
    source.prototype.onReadonlyReact = function () {
        var _a;
        (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.setReadOnly(this.j.o.readonly);
    };
    source.prototype.afterInit = function (editor) {
        var _this = this;
        this.mirrorContainer = editor.c.div('jodit-source');
        editor.workplace.appendChild(this.mirrorContainer);
        editor.e.on('afterAddPlace changePlace afterInit', function () {
            editor.workplace.appendChild(_this.mirrorContainer);
        });
        this.sourceEditor = (0, factory_1.createSourceEditor)('area', editor, this.mirrorContainer, this.toWYSIWYG, this.fromWYSIWYG);
        editor.e.on(editor.ow, 'keydown', function (e) {
            var _a;
            if (e.key === constants_1.KEY_ESC && ((_a = _this.sourceEditor) === null || _a === void 0 ? void 0 : _a.isFocused)) {
                _this.sourceEditor.blur();
            }
        });
        this.onReadonlyReact();
        editor.e
            .on('placeholder.source', function (text) {
            var _a;
            (_a = _this.sourceEditor) === null || _a === void 0 ? void 0 : _a.setPlaceHolder(text);
        })
            .on('change.source', this.syncValueFromWYSIWYG)
            .on('beautifyHTML', function (html) { return html; });
        if (editor.o.beautifyHTML) {
            var addEventListener = function () {
                var _a;
                var html_beautify = editor.ow.html_beautify;
                if (html_beautify && !editor.isInDestruct) {
                    (_a = editor.events) === null || _a === void 0 ? void 0 : _a.off('beautifyHTML').on('beautifyHTML', function (html) { return html_beautify(html); });
                    return true;
                }
                return false;
            };
            if (!addEventListener()) {
                (0, helpers_1.loadNext)(editor, editor.o.beautifyHTMLCDNUrlsJS).then(addEventListener);
            }
        }
        this.syncValueFromWYSIWYG(true);
        this.initSourceEditor(editor);
    };
    source.prototype.syncValueFromWYSIWYG = function (force) {
        if (force === void 0) { force = false; }
        var editor = this.j;
        if (editor.getMode() === constants_1.MODE_SPLIT ||
            editor.getMode() === constants_1.MODE_SOURCE) {
            this.fromWYSIWYG(force);
        }
    };
    source.prototype.initSourceEditor = function (editor) {
        var _this = this;
        var _a;
        if (editor.o.sourceEditor !== 'area') {
            var sourceEditor_1 = (0, factory_1.createSourceEditor)(editor.o.sourceEditor, editor, this.mirrorContainer, this.toWYSIWYG, this.fromWYSIWYG);
            sourceEditor_1.onReadyAlways(function () {
                var _a, _b;
                (_a = _this.sourceEditor) === null || _a === void 0 ? void 0 : _a.destruct();
                _this.sourceEditor = sourceEditor_1;
                _this.syncValueFromWYSIWYG(true);
                (_b = editor.events) === null || _b === void 0 ? void 0 : _b.fire('sourceEditorReady', editor);
            });
        }
        else {
            (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.onReadyAlways(function () {
                var _a;
                _this.syncValueFromWYSIWYG(true);
                (_a = editor.events) === null || _a === void 0 ? void 0 : _a.fire('sourceEditorReady', editor);
            });
        }
    };
    source.prototype.beforeDestruct = function () {
        if (this.sourceEditor) {
            this.sourceEditor.destruct();
            delete this.sourceEditor;
        }
        dom_1.Dom.safeRemove(this.mirrorContainer);
    };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':insertHTML.source')
    ], source.prototype, "onInsertHTML", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], source.prototype, "fromWYSIWYG", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], source.prototype, "toWYSIWYG", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], source.prototype, "getNormalPosition", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeCommand.source')
    ], source.prototype, "onSelectAll", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeSetMode.source')
    ], source.prototype, "saveSelection", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':afterSetMode.source')
    ], source.prototype, "removeSelection", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], source.prototype, "setMirrorSelectionRange", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':readonly.source')
    ], source.prototype, "onReadonlyReact", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], source.prototype, "syncValueFromWYSIWYG", null);
    return source;
}(plugin_1.Plugin));
exports.source = source;
global_1.pluginSystem.add('source', source);


/***/ }),

/***/ 50876:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1454281__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1454281__(93166);
var icon_1 = __nested_webpack_require_1454281__(77904);
config_1.Config.prototype.spellcheck = false;
icon_1.Icon.set('spellcheck', __nested_webpack_require_1454281__(69546));
config_1.Config.prototype.controls.spellcheck = {
    isActive: function (e) {
        return e.o.spellcheck;
    },
    icon: __nested_webpack_require_1454281__(69546),
    name: 'spellcheck',
    command: 'toggleSpellcheck',
    tooltip: 'Spellcheck'
};


/***/ }),

/***/ 87882:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1455112__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.zh_tw = exports.zh_cn = exports.tr = exports.ru = exports.pt_br = exports.pl = exports.nl = exports.mn = exports.ko = exports.ja = exports.it = exports.id = exports.hu = exports.he = exports.fr = exports.fa = exports.es = exports.de = exports.cs_cz = exports.ar = void 0;
var ar = __nested_webpack_require_1455112__(5586);
exports.ar = ar;
var cs_cz = __nested_webpack_require_1455112__(66023);
exports.cs_cz = cs_cz;
var de = __nested_webpack_require_1455112__(65860);
exports.de = de;
var es = __nested_webpack_require_1455112__(86055);
exports.es = es;
var fa = __nested_webpack_require_1455112__(50037);
exports.fa = fa;
var fr = __nested_webpack_require_1455112__(7118);
exports.fr = fr;
var he = __nested_webpack_require_1455112__(30298);
exports.he = he;
var hu = __nested_webpack_require_1455112__(52107);
exports.hu = hu;
var id = __nested_webpack_require_1455112__(31240);
exports.id = id;
var it = __nested_webpack_require_1455112__(4101);
exports.it = it;
var ja = __nested_webpack_require_1455112__(69286);
exports.ja = ja;
var ko = __nested_webpack_require_1455112__(13402);
exports.ko = ko;
var mn = __nested_webpack_require_1455112__(1242);
exports.mn = mn;
var nl = __nested_webpack_require_1455112__(89574);
exports.nl = nl;
var pl = __nested_webpack_require_1455112__(63630);
exports.pl = pl;
var pt_br = __nested_webpack_require_1455112__(72212);
exports.pt_br = pt_br;
var ru = __nested_webpack_require_1455112__(82570);
exports.ru = ru;
var tr = __nested_webpack_require_1455112__(19323);
exports.tr = tr;
var zh_cn = __nested_webpack_require_1455112__(50279);
exports.zh_cn = zh_cn;
var zh_tw = __nested_webpack_require_1455112__(98364);
exports.zh_tw = zh_tw;


/***/ }),

/***/ 17002:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1456905__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.spellcheck = void 0;
var tslib_1 = __nested_webpack_require_1456905__(20255);
var plugin_1 = __nested_webpack_require_1456905__(57549);
var utils_1 = __nested_webpack_require_1456905__(67309);
var decorators_1 = __nested_webpack_require_1456905__(43441);
var global_1 = __nested_webpack_require_1456905__(17332);
__nested_webpack_require_1456905__(50876);
var spellcheck = (function (_super) {
    tslib_1.__extends(spellcheck, _super);
    function spellcheck(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.buttons = [
            {
                group: 'state',
                name: 'spellcheck'
            }
        ];
        (0, global_1.extendLang)(__nested_webpack_require_1456905__(87882));
        return _this;
    }
    spellcheck.prototype.afterInit = function (jodit) {
        var _this = this;
        jodit.e.on('afterInit afterAddPlace prepareWYSIWYGEditor', this.toggleSpellcheck);
        this.toggleSpellcheck();
        jodit.registerCommand('toggleSpellcheck', function () {
            _this.jodit.o.spellcheck = !_this.jodit.o.spellcheck;
            _this.toggleSpellcheck();
            _this.j.e.fire('updateToolbar');
        });
    };
    spellcheck.prototype.toggleSpellcheck = function () {
        (0, utils_1.attr)(this.jodit.editor, 'spellcheck', this.jodit.o.spellcheck);
    };
    spellcheck.prototype.beforeDestruct = function (jodit) { };
    tslib_1.__decorate([
        decorators_1.autobind
    ], spellcheck.prototype, "toggleSpellcheck", null);
    return spellcheck;
}(plugin_1.Plugin));
exports.spellcheck = spellcheck;
global_1.pluginSystem.add('spellcheck', spellcheck);


/***/ }),

/***/ 59818:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1458863__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1458863__(93166);
config_1.Config.prototype.showCharsCounter = true;
config_1.Config.prototype.countHTMLChars = false;
config_1.Config.prototype.showWordsCounter = true;


/***/ }),

/***/ 1557:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1459458__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.stat = void 0;
var tslib_1 = __nested_webpack_require_1459458__(20255);
var constants_1 = __nested_webpack_require_1459458__(86893);
var plugin_1 = __nested_webpack_require_1459458__(85605);
var dom_1 = __nested_webpack_require_1459458__(24263);
var global_1 = __nested_webpack_require_1459458__(17332);
__nested_webpack_require_1459458__(59818);
var stat = (function (_super) {
    tslib_1.__extends(stat, _super);
    function stat() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.charCounter = null;
        _this.wordCounter = null;
        _this.reInit = function () {
            if (_this.j.o.showCharsCounter && _this.charCounter) {
                _this.j.statusbar.append(_this.charCounter, true);
            }
            if (_this.j.o.showWordsCounter && _this.wordCounter) {
                _this.j.statusbar.append(_this.wordCounter, true);
            }
            _this.j.e.off('change keyup', _this.calc).on('change keyup', _this.calc);
            _this.calc();
        };
        _this.calc = _this.j.async.throttle(function () {
            var text = _this.j.text;
            if (_this.j.o.showCharsCounter && _this.charCounter) {
                var chars = _this.j.o.countHTMLChars
                    ? _this.j.value
                    : text.replace((0, constants_1.SPACE_REG_EXP)(), '');
                _this.charCounter.textContent = _this.j.i18n('Chars: %d', chars.length);
            }
            if (_this.j.o.showWordsCounter && _this.wordCounter) {
                _this.wordCounter.textContent = _this.j.i18n('Words: %d', text
                    .replace((0, constants_1.INVISIBLE_SPACE_REG_EXP)(), '')
                    .split((0, constants_1.SPACE_REG_EXP)())
                    .filter(function (e) { return e.length; }).length);
            }
        }, _this.j.defaultTimeout);
        return _this;
    }
    stat.prototype.afterInit = function () {
        this.charCounter = this.j.c.span();
        this.wordCounter = this.j.c.span();
        this.j.e.on('afterInit changePlace afterAddPlace', this.reInit);
        this.reInit();
    };
    stat.prototype.beforeDestruct = function () {
        dom_1.Dom.safeRemove(this.charCounter);
        dom_1.Dom.safeRemove(this.wordCounter);
        this.j.e.off('afterInit changePlace afterAddPlace', this.reInit);
        this.charCounter = null;
        this.wordCounter = null;
    };
    return stat;
}(plugin_1.Plugin));
exports.stat = stat;
global_1.pluginSystem.add('stat', stat);


/***/ }),

/***/ 40790:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1462308__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1462308__(93166);
config_1.Config.prototype.toolbarSticky = true;
config_1.Config.prototype.toolbarDisableStickyForMobile = true;
config_1.Config.prototype.toolbarStickyOffset = 0;


/***/ }),

/***/ 82808:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1462915__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.sticky = void 0;
var tslib_1 = __nested_webpack_require_1462915__(20255);
__nested_webpack_require_1462915__(60057);
var constants_1 = __nested_webpack_require_1462915__(86893);
var plugin_1 = __nested_webpack_require_1462915__(85605);
var dom_1 = __nested_webpack_require_1462915__(24263);
var helpers_1 = __nested_webpack_require_1462915__(40332);
var decorators_1 = __nested_webpack_require_1462915__(43441);
var global_1 = __nested_webpack_require_1462915__(17332);
__nested_webpack_require_1462915__(40790);
var sticky = (function (_super) {
    tslib_1.__extends(sticky, _super);
    function sticky() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isToolbarSticked = false;
        _this.createDummy = function (toolbar) {
            if (  true && constants_1.IS_IE && !_this.dummyBox) {
                _this.dummyBox = _this.j.c.div();
                _this.dummyBox.classList.add('jodit_sticky-dummy_toolbar');
                _this.j.container.insertBefore(_this.dummyBox, toolbar);
            }
        };
        _this.addSticky = function (toolbar) {
            if (!_this.isToolbarSticked) {
                _this.createDummy(toolbar);
                _this.j.container.classList.add('jodit_sticky');
                _this.isToolbarSticked = true;
            }
            (0, helpers_1.css)(toolbar, {
                top: _this.j.o.toolbarStickyOffset || null,
                width: _this.j.container.offsetWidth - 2
            });
            if (  true && constants_1.IS_IE && _this.dummyBox) {
                (0, helpers_1.css)(_this.dummyBox, {
                    height: toolbar.offsetHeight
                });
            }
        };
        _this.removeSticky = function (toolbar) {
            if (_this.isToolbarSticked) {
                (0, helpers_1.css)(toolbar, {
                    width: '',
                    top: ''
                });
                _this.j.container.classList.remove('jodit_sticky');
                _this.isToolbarSticked = false;
            }
        };
        return _this;
    }
    sticky.prototype.afterInit = function (jodit) {
        var _this = this;
        jodit.e
            .on(jodit.ow, 'scroll.sticky wheel.sticky mousewheel.sticky resize.sticky', this.onScroll)
            .on('getStickyState.sticky', function () { return _this.isToolbarSticked; });
    };
    sticky.prototype.onScroll = function () {
        var jodit = this.jodit;
        var scrollWindowTop = jodit.ow.pageYOffset ||
            (jodit.od.documentElement &&
                jodit.od.documentElement.scrollTop) ||
            0, offsetEditor = (0, helpers_1.offset)(jodit.container, jodit, jodit.od, true), doSticky = jodit.getMode() === constants_1.MODE_WYSIWYG &&
            scrollWindowTop + jodit.o.toolbarStickyOffset >
                offsetEditor.top &&
            scrollWindowTop + jodit.o.toolbarStickyOffset <
                offsetEditor.top + offsetEditor.height &&
            !(jodit.o.toolbarDisableStickyForMobile && this.isMobile());
        if (jodit.o.toolbarSticky &&
            jodit.o.toolbar === true &&
            this.isToolbarSticked !== doSticky) {
            var container = jodit.toolbarContainer;
            if (container) {
                doSticky
                    ? this.addSticky(container)
                    : this.removeSticky(container);
            }
            jodit.e.fire('toggleSticky', doSticky);
        }
    };
    sticky.prototype.isMobile = function () {
        return (this.j &&
            this.j.options &&
            this.j.container &&
            this.j.o.sizeSM >= this.j.container.offsetWidth);
    };
    sticky.prototype.beforeDestruct = function (jodit) {
        this.dummyBox && dom_1.Dom.safeRemove(this.dummyBox);
        jodit.e
            .off(jodit.ow, 'scroll.sticky wheel.sticky mousewheel.sticky resize.sticky', this.onScroll)
            .off('.sticky');
    };
    tslib_1.__decorate([
        (0, decorators_1.throttle)()
    ], sticky.prototype, "onScroll", null);
    return sticky;
}(plugin_1.Plugin));
exports.sticky = sticky;
global_1.pluginSystem.add('sticky', sticky);


/***/ }),

/***/ 31750:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1467358__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1467358__(93166);
var icon_1 = __nested_webpack_require_1467358__(77904);
config_1.Config.prototype.usePopupForSpecialCharacters = false;
config_1.Config.prototype.specialCharacters = [
    '!',
    '&quot;',
    '#',
    '$',
    '%',
    '&amp;',
    "'",
    '(',
    ')',
    '*',
    '+',
    '-',
    '.',
    '/',
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    ':',
    ';',
    '&lt;',
    '=',
    '&gt;',
    '?',
    '@',
    'A',
    'B',
    'C',
    'D',
    'E',
    'F',
    'G',
    'H',
    'I',
    'J',
    'K',
    'L',
    'M',
    'N',
    'O',
    'P',
    'Q',
    'R',
    'S',
    'T',
    'U',
    'V',
    'W',
    'X',
    'Y',
    'Z',
    '[',
    ']',
    '^',
    '_',
    '`',
    'a',
    'b',
    'c',
    'd',
    'e',
    'f',
    'g',
    'h',
    'i',
    'j',
    'k',
    'l',
    'm',
    'n',
    'o',
    'p',
    'q',
    'r',
    's',
    't',
    'u',
    'v',
    'w',
    'x',
    'y',
    'z',
    '{',
    '|',
    '}',
    '~',
    '&euro;',
    '&lsquo;',
    '&rsquo;',
    '&ldquo;',
    '&rdquo;',
    '&ndash;',
    '&mdash;',
    '&iexcl;',
    '&cent;',
    '&pound;',
    '&curren;',
    '&yen;',
    '&brvbar;',
    '&sect;',
    '&uml;',
    '&copy;',
    '&ordf;',
    '&laquo;',
    '&raquo;',
    '&not;',
    '&reg;',
    '&macr;',
    '&deg;',
    '&sup2;',
    '&sup3;',
    '&acute;',
    '&micro;',
    '&para;',
    '&middot;',
    '&cedil;',
    '&sup1;',
    '&ordm;',
    '&frac14;',
    '&frac12;',
    '&frac34;',
    '&iquest;',
    '&Agrave;',
    '&Aacute;',
    '&Acirc;',
    '&Atilde;',
    '&Auml;',
    '&Aring;',
    '&AElig;',
    '&Ccedil;',
    '&Egrave;',
    '&Eacute;',
    '&Ecirc;',
    '&Euml;',
    '&Igrave;',
    '&Iacute;',
    '&Icirc;',
    '&Iuml;',
    '&ETH;',
    '&Ntilde;',
    '&Ograve;',
    '&Oacute;',
    '&Ocirc;',
    '&Otilde;',
    '&Ouml;',
    '&times;',
    '&Oslash;',
    '&Ugrave;',
    '&Uacute;',
    '&Ucirc;',
    '&Uuml;',
    '&Yacute;',
    '&THORN;',
    '&szlig;',
    '&agrave;',
    '&aacute;',
    '&acirc;',
    '&atilde;',
    '&auml;',
    '&aring;',
    '&aelig;',
    '&ccedil;',
    '&egrave;',
    '&eacute;',
    '&ecirc;',
    '&euml;',
    '&igrave;',
    '&iacute;',
    '&icirc;',
    '&iuml;',
    '&eth;',
    '&ntilde;',
    '&ograve;',
    '&oacute;',
    '&ocirc;',
    '&otilde;',
    '&ouml;',
    '&divide;',
    '&oslash;',
    '&ugrave;',
    '&uacute;',
    '&ucirc;',
    '&uuml;',
    '&yacute;',
    '&thorn;',
    '&yuml;',
    '&OElig;',
    '&oelig;',
    '&#372;',
    '&#374',
    '&#373',
    '&#375;',
    '&sbquo;',
    '&#8219;',
    '&bdquo;',
    '&hellip;',
    '&trade;',
    '&#9658;',
    '&bull;',
    '&rarr;',
    '&rArr;',
    '&hArr;',
    '&diams;',
    '&asymp;'
];
icon_1.Icon.set('symbols', __nested_webpack_require_1467358__(43158));
config_1.Config.prototype.controls.symbols = {
    hotkeys: ['ctrl+shift+i', 'cmd+shift+i'],
    tooltip: 'Insert Special Character',
    popup: function (editor, current, control, close) {
        var container = editor.e.fire('generateSpecialCharactersTable.symbols');
        if (container) {
            if (editor.o.usePopupForSpecialCharacters) {
                var box = editor.c.div();
                box.classList.add('jodit-symbols');
                box.appendChild(container);
                editor.e.on(container, 'close_dialog', close);
                return box;
            }
            else {
                editor
                    .alert(container, 'Select Special Character', undefined, 'jodit-symbols')
                    .bindDestruct(editor);
                var a = container.querySelector('a');
                a && a.focus();
            }
        }
    }
};


/***/ }),

/***/ 21236:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1471515__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.zh_tw = exports.zh_cn = exports.tr = exports.ru = exports.pt_br = exports.pl = exports.nl = exports.mn = exports.ko = exports.ja = exports.it = exports.id = exports.hu = exports.he = exports.fr = exports.fa = exports.es = exports.de = exports.cs_cz = exports.ar = void 0;
var ar = __nested_webpack_require_1471515__(54261);
exports.ar = ar;
var cs_cz = __nested_webpack_require_1471515__(60425);
exports.cs_cz = cs_cz;
var de = __nested_webpack_require_1471515__(7057);
exports.de = de;
var es = __nested_webpack_require_1471515__(48356);
exports.es = es;
var fa = __nested_webpack_require_1471515__(11428);
exports.fa = fa;
var fr = __nested_webpack_require_1471515__(29084);
exports.fr = fr;
var he = __nested_webpack_require_1471515__(22876);
exports.he = he;
var hu = __nested_webpack_require_1471515__(20890);
exports.hu = hu;
var id = __nested_webpack_require_1471515__(75987);
exports.id = id;
var it = __nested_webpack_require_1471515__(60379);
exports.it = it;
var ja = __nested_webpack_require_1471515__(99950);
exports.ja = ja;
var ko = __nested_webpack_require_1471515__(60934);
exports.ko = ko;
var mn = __nested_webpack_require_1471515__(45913);
exports.mn = mn;
var nl = __nested_webpack_require_1471515__(21994);
exports.nl = nl;
var pl = __nested_webpack_require_1471515__(38128);
exports.pl = pl;
var pt_br = __nested_webpack_require_1471515__(71515);
exports.pt_br = pt_br;
var ru = __nested_webpack_require_1471515__(58194);
exports.ru = ru;
var tr = __nested_webpack_require_1471515__(65802);
exports.tr = tr;
var zh_cn = __nested_webpack_require_1471515__(86628);
exports.zh_cn = zh_cn;
var zh_tw = __nested_webpack_require_1471515__(32210);
exports.zh_tw = zh_tw;


/***/ }),

/***/ 48560:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1473311__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.symbols = void 0;
var tslib_1 = __nested_webpack_require_1473311__(20255);
__nested_webpack_require_1473311__(33393);
var constants_1 = __nested_webpack_require_1473311__(86893);
var plugin_1 = __nested_webpack_require_1473311__(85605);
var dom_1 = __nested_webpack_require_1473311__(24263);
var utils_1 = __nested_webpack_require_1473311__(76502);
var global_1 = __nested_webpack_require_1473311__(17332);
__nested_webpack_require_1473311__(31750);
var symbols = (function (_super) {
    tslib_1.__extends(symbols, _super);
    function symbols(jodit) {
        var _this = _super.call(this, jodit) || this;
        _this.buttons = [
            {
                name: 'symbols',
                group: 'insert'
            }
        ];
        _this.countInRow = 17;
        (0, global_1.extendLang)(__nested_webpack_require_1473311__(21236));
        return _this;
    }
    symbols.prototype.afterInit = function (jodit) {
        var _this = this;
        jodit.e.on('generateSpecialCharactersTable.symbols', function () {
            var container = jodit.c.fromHTML("<div class=\"jodit-symbols__container\">\n\t\t\t\t\t\t<div class=\"jodit-symbols__container_table\">\n\t\t\t\t\t\t\t<table class=\"jodit-symbols__table\"><tbody></tbody></table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"jodit-symbols__container_preview\">\n\t\t\t\t\t\t\t<div class=\"jodit-symbols__preview\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>"), preview = container.querySelector('.jodit-symbols__preview'), table = container.querySelector('table'), body = table.tBodies[0], chars = [];
            for (var i = 0; i < jodit.o.specialCharacters.length;) {
                var tr = jodit.c.element('tr');
                for (var j = 0; j < _this.countInRow && i < jodit.o.specialCharacters.length; j += 1, i += 1) {
                    var td = jodit.c.element('td'), a = jodit.c.fromHTML("<a\n\t\t\t\t\t\t\t\t\tdata-index=\"".concat(i, "\"\n\t\t\t\t\t\t\t\t\tdata-index-j=\"").concat(j, "\"\n\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t>").concat(jodit.o.specialCharacters[i], "</a>"));
                    chars.push(a);
                    td.appendChild(a);
                    tr.appendChild(td);
                }
                body.appendChild(tr);
            }
            var self = _this;
            jodit.e
                .on(chars, 'focus', function () {
                preview.innerHTML = this.innerHTML;
            })
                .on(chars, 'mousedown', function (e) {
                if (dom_1.Dom.isTag(this, 'a')) {
                    jodit.s.focus();
                    jodit.s.insertHTML(this.innerHTML);
                    jodit.e.fire(this, 'close_dialog');
                    e && e.preventDefault();
                    e && e.stopImmediatePropagation();
                }
            })
                .on(chars, 'mouseenter', function () {
                if (dom_1.Dom.isTag(this, 'a')) {
                    this.focus();
                }
            })
                .on(chars, 'keydown', function (e) {
                var target = e.target;
                if (dom_1.Dom.isTag(target, 'a')) {
                    var index = parseInt((0, utils_1.attr)(target, '-index') || '0', 10), jIndex = parseInt((0, utils_1.attr)(target, 'data-index-j') || '0', 10);
                    var newIndex = void 0;
                    switch (e.key) {
                        case constants_1.KEY_UP:
                        case constants_1.KEY_DOWN:
                            newIndex =
                                e.key === constants_1.KEY_UP
                                    ? index - self.countInRow
                                    : index + self.countInRow;
                            if (chars[newIndex] === undefined) {
                                newIndex =
                                    e.key === constants_1.KEY_UP
                                        ? Math.floor(chars.length /
                                            self.countInRow) *
                                            self.countInRow +
                                            jIndex
                                        : jIndex;
                                if (newIndex > chars.length - 1) {
                                    newIndex -= self.countInRow;
                                }
                            }
                            chars[newIndex] && chars[newIndex].focus();
                            break;
                        case constants_1.KEY_RIGHT:
                        case constants_1.KEY_LEFT:
                            newIndex =
                                e.key === constants_1.KEY_LEFT ? index - 1 : index + 1;
                            if (chars[newIndex] === undefined) {
                                newIndex =
                                    e.key === constants_1.KEY_LEFT
                                        ? chars.length - 1
                                        : 0;
                            }
                            chars[newIndex] && chars[newIndex].focus();
                            break;
                        case constants_1.KEY_ENTER:
                            jodit.e.fire(target, 'mousedown');
                            e.stopImmediatePropagation();
                            e.preventDefault();
                            break;
                    }
                }
            });
            return container;
        });
    };
    symbols.prototype.beforeDestruct = function (jodit) {
        jodit.e.off('generateSpecialCharactersTable.symbols');
    };
    return symbols;
}(plugin_1.Plugin));
exports.symbols = symbols;
global_1.pluginSystem.add('symbols', symbols);


/***/ }),

/***/ 15797:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1479345__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1479345__(20255);
tslib_1.__exportStar(__nested_webpack_require_1479345__(41170), exports);


/***/ }),

/***/ 41170:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1479847__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.onTabInsideLi = void 0;
var tslib_1 = __nested_webpack_require_1479847__(20255);
var dom_1 = __nested_webpack_require_1479847__(24263);
var assert_1 = __nested_webpack_require_1479847__(603);
function onTabInsideLi(jodit, shift) {
    if (shift === void 0) { shift = false; }
    if (!jodit.o.tab.tabInsideLiInsertNewList) {
        return false;
    }
    var _a = tslib_1.__read(fakeCursors(jodit), 2), fake = _a[0], fake2 = _a[1];
    try {
        var li = getParentLeaf(jodit, fake, shift);
        if (!li) {
            return false;
        }
        if (!isSameLeftCursorPosition(li, jodit, fake)) {
            return false;
        }
        var list = dom_1.Dom.closest(li, ['ol', 'ul'], jodit.editor);
        if (!list || (shift && !dom_1.Dom.closest(list, 'li', jodit.editor))) {
            return false;
        }
        if (!shift) {
            appendNestedList(jodit, list, li);
        }
        else {
            removeNestedList(jodit, list, li);
        }
        return true;
    }
    finally {
        var range = jodit.s.createRange();
        range.setStartAfter(fake);
        range.setEndBefore(fake2);
        jodit.s.selectRange(range);
        dom_1.Dom.safeRemove(fake);
        dom_1.Dom.safeRemove(fake2);
    }
    // removed by dead control flow
{}
}
exports.onTabInsideLi = onTabInsideLi;
function fakeCursors(jodit) {
    var fake = jodit.createInside.fake();
    var fake2 = jodit.createInside.fake();
    var r = jodit.s.range.cloneRange();
    r.collapse(true);
    r.insertNode(fake);
    var r2 = jodit.s.range.cloneRange();
    r2.collapse(false);
    r2.insertNode(fake2);
    return [fake, fake2];
}
function getParentLeaf(jodit, fake, shift) {
    var li = dom_1.Dom.closest(fake, 'li', jodit.editor);
    if (!li) {
        return false;
    }
    if (!shift && !dom_1.Dom.isTag(li.previousElementSibling, 'li')) {
        return false;
    }
    if (shift && !dom_1.Dom.closest(li, 'li', jodit.editor)) {
        return false;
    }
    return li;
}
function isSameLeftCursorPosition(li, jodit, fake) {
    var li2 = dom_1.Dom.closest(fake, 'li', jodit.editor);
    return !(!li2 || (li2 !== li && !li.contains(li2)));
}
function appendNestedList(jodit, list, li) {
    var previousLi = li.previousElementSibling;
    void 0;
    var lastElm = previousLi.lastElementChild;
    var newList = dom_1.Dom.isTag(lastElm, list.tagName)
        ? lastElm
        : jodit.createInside.element(list.tagName, Array.from(list.attributes).reduce(function (acc, attr) {
            acc[attr.name] = attr.value;
            return acc;
        }, {}));
    newList.appendChild(li);
    lastElm !== newList && previousLi.appendChild(newList);
}
function removeNestedList(jodit, list, li) {
    var parentLi = dom_1.Dom.closest(list, 'li', jodit.editor);
    void 0;
    var items = Array.from(list.children).filter(function (t) {
        return dom_1.Dom.isTag(t, 'li');
    });
    dom_1.Dom.after(parentLi, li);
    var index = items.indexOf(li);
    if (index === 0 || items.length === 1) {
        dom_1.Dom.safeRemove(list);
    }
    if (index !== items.length - 1) {
        var clone = list.cloneNode();
        dom_1.Dom.append(li, clone);
        for (var i = index + 1; i < items.length; i += 1) {
            dom_1.Dom.append(clone, items[i]);
        }
    }
}


/***/ }),

/***/ 56198:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1483503__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1483503__(93166);
config_1.Config.prototype.tab = {
    tabInsideLiInsertNewList: true
};


/***/ }),

/***/ 32246:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1484019__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1484019__(20255);
var plugin_1 = __nested_webpack_require_1484019__(57549);
var decorators_1 = __nested_webpack_require_1484019__(43441);
var constants_1 = __nested_webpack_require_1484019__(86893);
var global_1 = __nested_webpack_require_1484019__(17332);
var cases_1 = __nested_webpack_require_1484019__(15797);
__nested_webpack_require_1484019__(56198);
var tab = (function (_super) {
    tslib_1.__extends(tab, _super);
    function tab() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    tab.prototype.afterInit = function (jodit) { };
    tab.prototype.__onTab = function (event) {
        if (event.key === constants_1.KEY_TAB && this.__onShift(event.shiftKey)) {
            return false;
        }
    };
    tab.prototype.__onCommand = function (command) {
        if ((command === 'indent' || command === 'outdent') &&
            this.__onShift(command === 'outdent')) {
            return false;
        }
    };
    tab.prototype.__onShift = function (shift) {
        var res = (0, cases_1.onTabInsideLi)(this.j, shift);
        if (res) {
            this.j.e.fire('afterTab', shift);
        }
        return res;
    };
    tab.prototype.beforeDestruct = function (jodit) { };
    tslib_1.__decorate([
        (0, decorators_1.watch)(':keydown.tab')
    ], tab.prototype, "__onTab", null);
    tslib_1.__decorate([
        (0, decorators_1.watch)(':beforeCommand.tab')
    ], tab.prototype, "__onCommand", null);
    return tab;
}(plugin_1.Plugin));
global_1.pluginSystem.add('tab', tab);


/***/ }),

/***/ 23308:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1485896__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.tableKeyboardNavigation = void 0;
var consts = __nested_webpack_require_1485896__(86893);
var dom_1 = __nested_webpack_require_1485896__(24263);
var table_1 = __nested_webpack_require_1485896__(25120);
var global_1 = __nested_webpack_require_1485896__(17332);
function tableKeyboardNavigation(editor) {
    editor.e
        .off('.tableKeyboardNavigation')
        .on('keydown.tableKeyboardNavigation', function (event) {
        var current, block;
        if (event.key === consts.KEY_TAB ||
            event.key === consts.KEY_LEFT ||
            event.key === consts.KEY_RIGHT ||
            event.key === consts.KEY_UP ||
            event.key === consts.KEY_DOWN) {
            current = editor.s.current();
            block = dom_1.Dom.up(current, function (elm) {
                return elm &&
                    elm.nodeName &&
                    /^td|th$/i.test(elm.nodeName);
            }, editor.editor);
            if (!block) {
                return;
            }
            var range = editor.s.range;
            if (event.key !== consts.KEY_TAB && current !== block) {
                if (((event.key === consts.KEY_LEFT ||
                    event.key === consts.KEY_UP) &&
                    (dom_1.Dom.prev(current, function (elm) {
                        return event.key === consts.KEY_UP
                            ? dom_1.Dom.isTag(elm, 'br')
                            : Boolean(elm);
                    }, block) ||
                        (event.key !== consts.KEY_UP &&
                            dom_1.Dom.isText(current) &&
                            range.startOffset !== 0))) ||
                    ((event.key === consts.KEY_RIGHT ||
                        event.key === consts.KEY_DOWN) &&
                        (dom_1.Dom.next(current, function (elm) {
                            return event.key === consts.KEY_DOWN
                                ? dom_1.Dom.isTag(elm, 'br')
                                : Boolean(elm);
                        }, block) ||
                            (event.key !== consts.KEY_DOWN &&
                                dom_1.Dom.isText(current) &&
                                current.nodeValue &&
                                range.startOffset !==
                                    current.nodeValue.length)))) {
                    return;
                }
            }
        }
        else {
            return;
        }
        var table = dom_1.Dom.up(block, function (elm) { return elm && /^table$/i.test(elm.nodeName); }, editor.editor);
        var next = null;
        switch (event.key) {
            case consts.KEY_TAB:
            case consts.KEY_LEFT: {
                var sibling = event.key === consts.KEY_LEFT || event.shiftKey
                    ? 'prev'
                    : 'next';
                next = dom_1.Dom[sibling](block, function (elm) {
                    return elm &&
                        /^td|th$/i.test(elm.tagName);
                }, table);
                if (!next) {
                    table_1.Table.appendRow(table, sibling === 'next'
                        ? false
                        : table.querySelector('tr'), sibling === 'next', editor.createInside);
                    next = dom_1.Dom[sibling](block, dom_1.Dom.isCell, table);
                }
                break;
            }
            case consts.KEY_UP:
            case consts.KEY_DOWN:
                {
                    var i_1 = 0, j_1 = 0;
                    var matrix = table_1.Table.formalMatrix(table, function (elm, _i, _j) {
                        if (elm === block) {
                            i_1 = _i;
                            j_1 = _j;
                        }
                    });
                    if (event.key === consts.KEY_UP) {
                        if (matrix[i_1 - 1] !== undefined) {
                            next = matrix[i_1 - 1][j_1];
                        }
                    }
                    else {
                        if (matrix[i_1 + 1] !== undefined) {
                            next = matrix[i_1 + 1][j_1];
                        }
                    }
                }
                break;
        }
        if (next) {
            if (!next.firstChild) {
                var first = editor.createInside.element('br');
                next.appendChild(first);
                editor.s.setCursorBefore(first);
            }
            else {
                if (event.key === consts.KEY_TAB) {
                    editor.s.select(next, true);
                }
                else {
                    editor.s.setCursorIn(next, event.key === consts.KEY_RIGHT ||
                        event.key === consts.KEY_DOWN);
                }
            }
            return false;
        }
    });
}
exports.tableKeyboardNavigation = tableKeyboardNavigation;
global_1.pluginSystem.add('tableKeyboardNavigation', tableKeyboardNavigation);


/***/ }),

/***/ 30739:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1491190__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1491190__(93166);
var dom_1 = __nested_webpack_require_1491190__(64968);
var utils_1 = __nested_webpack_require_1491190__(76502);
var helpers_1 = __nested_webpack_require_1491190__(40332);
var icon_1 = __nested_webpack_require_1491190__(77904);
config_1.Config.prototype.table = {
    selectionCellStyle: 'border: 1px double #1e88e5 !important;',
    useExtraClassesOptions: false
};
icon_1.Icon.set('table', __nested_webpack_require_1491190__(51716));
config_1.Config.prototype.controls.table = {
    data: {
        cols: 10,
        rows: 10,
        classList: {
            'table table-bordered': 'Bootstrap Bordered',
            'table table-striped': 'Bootstrap Striped',
            'table table-dark': 'Bootstrap Dark'
        }
    },
    popup: function (editor, current, control, close, button) {
        var default_rows_count = control.data && control.data.rows ? control.data.rows : 10, default_cols_count = control.data && control.data.cols ? control.data.cols : 10;
        var generateExtraClasses = function () {
            if (!editor.o.table.useExtraClassesOptions) {
                return '';
            }
            var out = [];
            if (control.data) {
                var classList_1 = control.data.classList;
                Object.keys(classList_1).forEach(function (classes) {
                    out.push("<label class=\"jodit_vertical_middle\"><input class=\"jodit-checkbox\" value=\"".concat(classes, "\" type=\"checkbox\"/>").concat(classList_1[classes], "</label>"));
                });
            }
            return out.join('');
        };
        var form = editor.c.fromHTML('<form class="jodit-form jodit-form__inserter">' +
            '<div class="jodit-form__table-creator-box">' +
            '<div class="jodit-form__container"></div>' +
            '<div class="jodit-form__options">' +
            generateExtraClasses() +
            '</div>' +
            '</div>' +
            '<label class="jodit-form__center">' +
            '<span>1</span> &times; <span>1</span>' +
            '</label>' +
            '</form>'), rows = form.querySelectorAll('span')[0], cols = form.querySelectorAll('span')[1], blocksContainer = form.querySelector('.jodit-form__container'), options = form.querySelector('.jodit-form__options'), cells = [];
        var cnt = default_rows_count * default_cols_count;
        for (var i = 0; i < cnt; i += 1) {
            if (!cells[i]) {
                cells.push(editor.c.element('span', {
                    dataIndex: i
                }));
            }
        }
        var mouseenter = function (e, index) {
            var dv = e.target;
            if (!dom_1.Dom.isTag(dv, 'span')) {
                return;
            }
            var k = index === undefined || isNaN(index)
                ? parseInt((0, utils_1.attr)(dv, '-index') || '0', 10)
                : index || 0;
            var rows_count = Math.ceil((k + 1) / default_cols_count), cols_count = (k % default_cols_count) + 1;
            for (var i = 0; i < cells.length; i += 1) {
                if (cols_count >= (i % default_cols_count) + 1 &&
                    rows_count >= Math.ceil((i + 1) / default_cols_count)) {
                    cells[i].className = 'jodit_hovered';
                }
                else {
                    cells[i].className = '';
                }
            }
            cols.textContent = cols_count.toString();
            rows.textContent = rows_count.toString();
        };
        editor.e
            .on(blocksContainer, 'mousemove', mouseenter)
            .on(blocksContainer, 'touchstart mousedown', function (e) {
            var dv = e.target;
            e.preventDefault();
            e.stopImmediatePropagation();
            if (!dom_1.Dom.isTag(dv, 'span')) {
                return;
            }
            var k = parseInt((0, utils_1.attr)(dv, '-index') || '0', 10);
            var rows_count = Math.ceil((k + 1) / default_cols_count), cols_count = (k % default_cols_count) + 1;
            var crt = editor.createInside, tbody = crt.element('tbody'), table = crt.element('table');
            table.appendChild(tbody);
            var first_td = null, tr, td;
            for (var i = 1; i <= rows_count; i += 1) {
                tr = crt.element('tr');
                for (var j = 1; j <= cols_count; j += 1) {
                    td = crt.element('td');
                    if (!first_td) {
                        first_td = td;
                    }
                    (0, helpers_1.css)(td, 'width', (100 / cols_count).toFixed(4) + '%');
                    td.appendChild(crt.element('br'));
                    tr.appendChild(crt.text('\n'));
                    tr.appendChild(crt.text('\t'));
                    tr.appendChild(td);
                }
                tbody.appendChild(crt.text('\n'));
                tbody.appendChild(tr);
            }
            (0, helpers_1.$$)('input[type=checkbox]:checked', options).forEach(function (input) {
                input.value
                    .split(/[\s]+/)
                    .forEach(function (className) {
                    table.classList.add(className);
                });
            });
            if (editor.editor.firstChild) {
                editor.s.insertNode(crt.text('\n'), false, false);
            }
            editor.s.insertNode(table, false);
            if (first_td) {
                editor.s.setCursorIn(first_td);
                (0, helpers_1.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
            }
            close();
        });
        if (button && button.parentElement) {
            for (var i = 0; i < default_rows_count; i += 1) {
                var row = editor.c.div();
                for (var j = 0; j < default_cols_count; j += 1) {
                    row.appendChild(cells[i * default_cols_count + j]);
                }
                blocksContainer.appendChild(row);
            }
            if (cells[0]) {
                cells[0].className = 'hovered';
            }
        }
        return form;
    },
    tooltip: 'Insert table'
};


/***/ }),

/***/ 45842:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1497661__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.table = void 0;
__nested_webpack_require_1497661__(51057);
var global_1 = __nested_webpack_require_1497661__(17332);
__nested_webpack_require_1497661__(30739);
function table(editor) {
    editor.registerButton({
        name: 'table',
        group: 'insert'
    });
}
exports.table = table;
global_1.pluginSystem.add('table', table);


/***/ }),

/***/ 79114:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1498361__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1498361__(93166);
var widget_1 = __nested_webpack_require_1498361__(718);
var helpers_1 = __nested_webpack_require_1498361__(40332);
var form_1 = __nested_webpack_require_1498361__(95963);
var button_1 = __nested_webpack_require_1498361__(96516);
var icon_1 = __nested_webpack_require_1498361__(77904);
icon_1.Icon.set('video', __nested_webpack_require_1498361__(49222));
config_1.Config.prototype.controls.video = {
    popup: function (editor, current, control, close) {
        var formLink = new form_1.UIForm(editor, [
            new form_1.UIBlock(editor, [
                new form_1.UIInput(editor, {
                    name: 'url',
                    required: true,
                    label: 'URL',
                    placeholder: 'https://',
                    validators: ['url']
                })
            ]),
            new form_1.UIBlock(editor, [
                (0, button_1.Button)(editor, '', 'Insert', 'primary').onAction(function () {
                    return formLink.submit();
                })
            ])
        ]), formCode = new form_1.UIForm(editor, [
            new form_1.UIBlock(editor, [
                new form_1.UITextArea(editor, {
                    name: 'code',
                    required: true,
                    label: 'Embed code'
                })
            ]),
            new form_1.UIBlock(editor, [
                (0, button_1.Button)(editor, '', 'Insert', 'primary').onAction(function () {
                    return formCode.submit();
                })
            ])
        ]), tabs = [], insertCode = function (code) {
            editor.s.restore();
            editor.s.insertHTML(code);
            close();
        };
        editor.s.save();
        tabs.push({
            icon: 'link',
            name: 'Link',
            content: formLink.container
        }, {
            icon: 'source',
            name: 'Code',
            content: formCode.container
        });
        formLink.onSubmit(function (data) {
            insertCode((0, helpers_1.convertMediaUrlToVideoEmbed)(data.url));
        });
        formCode.onSubmit(function (data) {
            insertCode(data.code);
        });
        return (0, widget_1.TabsWidget)(editor, tabs);
    },
    tags: ['iframe'],
    tooltip: 'Insert youtube/vimeo video'
};


/***/ }),

/***/ 19889:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1501010__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var global_1 = __nested_webpack_require_1501010__(17332);
__nested_webpack_require_1501010__(79114);
function video(editor) {
    editor.registerButton({
        name: 'video',
        group: 'media'
    });
}
global_1.pluginSystem.add('video', video);


/***/ }),

/***/ 64401:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1501634__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1501634__(93166);
config_1.Config.prototype.wrapNodes = {
    exclude: ['hr', 'style', 'br'],
    emptyBlockAfterInit: true
};


/***/ }),

/***/ 20728:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1502187__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1502187__(20255);
var plugin_1 = __nested_webpack_require_1502187__(57549);
var dom_1 = __nested_webpack_require_1502187__(64968);
var is_string_1 = __nested_webpack_require_1502187__(24421);
var decorators_1 = __nested_webpack_require_1502187__(43441);
var global_1 = __nested_webpack_require_1502187__(17332);
__nested_webpack_require_1502187__(64401);
var wrapNodes = (function (_super) {
    tslib_1.__extends(wrapNodes, _super);
    function wrapNodes() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isSuitableStart = function (n) {
            return (dom_1.Dom.isText(n) && (0, is_string_1.isString)(n.nodeValue) && /[^\s]/.test(n.nodeValue)) ||
                (_this.isNotClosed(n) && !dom_1.Dom.isTemporary(n));
        };
        _this.isSuitable = function (n) {
            return dom_1.Dom.isText(n) || _this.isNotClosed(n);
        };
        _this.isNotClosed = function (n) {
            return dom_1.Dom.isElement(n) &&
                !(dom_1.Dom.isBlock(n) || dom_1.Dom.isTag(n, _this.j.o.wrapNodes.exclude));
        };
        return _this;
    }
    wrapNodes.prototype.afterInit = function (jodit) {
        if (jodit.o.enter.toLowerCase() === 'br') {
            return;
        }
        jodit.e
            .on('drop.wtn focus.wtn keydown.wtn mousedown.wtn afterInit.wtn', this.preprocessInput, {
            top: true
        })
            .on('afterInit.wtn postProcessSetEditorValue.wtn', this.postProcessSetEditorValue);
    };
    wrapNodes.prototype.beforeDestruct = function (jodit) {
        jodit.e.off('.wtn');
    };
    wrapNodes.prototype.postProcessSetEditorValue = function () {
        var jodit = this.jodit;
        if (!jodit.isEditorMode()) {
            return;
        }
        var child = jodit.editor.firstChild, isChanged = false;
        while (child) {
            child = this.checkAloneListLeaf(child, jodit);
            if (this.isSuitableStart(child)) {
                if (!isChanged) {
                    jodit.s.save();
                }
                isChanged = true;
                var box = jodit.createInside.element(jodit.o.enter);
                dom_1.Dom.before(child, box);
                while (child && this.isSuitable(child)) {
                    var next = child.nextSibling;
                    box.appendChild(child);
                    child = next;
                }
                box.normalize();
                child = box;
            }
            child = child && child.nextSibling;
        }
        if (isChanged) {
            jodit.s.restore();
            if (jodit.e.current === 'afterInit') {
                jodit.e.fire('internalChange');
            }
        }
    };
    wrapNodes.prototype.checkAloneListLeaf = function (child, jodit) {
        var result = child;
        var next = child;
        do {
            if (dom_1.Dom.isElement(next) &&
                dom_1.Dom.isTag(next, 'li') &&
                !dom_1.Dom.isTag(next.parentElement, ['ul', 'ol'])) {
                var nextChild = dom_1.Dom.findNotEmptySibling(next, false);
                if (dom_1.Dom.isTag(result, 'ul')) {
                    result.appendChild(next);
                }
                else {
                    result = dom_1.Dom.wrap(next, 'ul', jodit.createInside);
                }
                next = nextChild;
            }
            else {
                break;
            }
        } while (next);
        return result;
    };
    wrapNodes.prototype.preprocessInput = function () {
        var jodit = this.jodit, isAfterInitEvent = jodit.e.current === 'afterInit';
        if (!jodit.isEditorMode() ||
            jodit.editor.firstChild ||
            (!jodit.o.wrapNodes.emptyBlockAfterInit && isAfterInitEvent)) {
            return;
        }
        var box = jodit.createInside.element(jodit.o.enter);
        var br = jodit.createInside.element('br');
        dom_1.Dom.append(box, br);
        dom_1.Dom.append(jodit.editor, box);
        jodit.s.isFocused() && jodit.s.setCursorBefore(br);
        jodit.e.fire('internalChange');
    };
    tslib_1.__decorate([
        decorators_1.autobind
    ], wrapNodes.prototype, "postProcessSetEditorValue", null);
    tslib_1.__decorate([
        decorators_1.autobind
    ], wrapNodes.prototype, "preprocessInput", null);
    return wrapNodes;
}(plugin_1.Plugin));
global_1.pluginSystem.add('wrapNodes', wrapNodes);


/***/ }),

/***/ 71707:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1506958__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var config_1 = __nested_webpack_require_1506958__(93166);
config_1.Config.prototype.showXPathInStatusbar = true;


/***/ }),

/***/ 18238:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1507457__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
var tslib_1 = __nested_webpack_require_1507457__(20255);
__nested_webpack_require_1507457__(64618);
var constants_1 = __nested_webpack_require_1507457__(86893);
var context_menu_1 = __nested_webpack_require_1507457__(60403);
var dom_1 = __nested_webpack_require_1507457__(64968);
var helpers_1 = __nested_webpack_require_1507457__(40332);
var plugin_1 = __nested_webpack_require_1507457__(57549);
var factory_1 = __nested_webpack_require_1507457__(81438);
var global_1 = __nested_webpack_require_1507457__(17332);
__nested_webpack_require_1507457__(71707);
var xpath = (function (_super) {
    tslib_1.__extends(xpath, _super);
    function xpath() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.onContext = function (bindElement, event) {
            if (!_this.menu) {
                _this.menu = new context_menu_1.ContextMenu(_this.j);
            }
            _this.menu.show(event.clientX, event.clientY, [
                {
                    icon: 'bin',
                    title: bindElement === _this.j.editor ? 'Clear' : 'Remove',
                    exec: function () {
                        if (bindElement !== _this.j.editor) {
                            dom_1.Dom.safeRemove(bindElement);
                        }
                        else {
                            _this.j.value = '';
                        }
                        _this.j.synchronizeValues();
                    }
                },
                {
                    icon: 'select-all',
                    title: 'Select',
                    exec: function () {
                        _this.j.s.select(bindElement);
                    }
                }
            ]);
            return false;
        };
        _this.onSelectPath = function (bindElement, event) {
            _this.j.s.focus();
            var path = (0, helpers_1.attr)(event.target, '-path') || '/';
            if (path === '/') {
                _this.j.execCommand('selectall');
                return false;
            }
            try {
                var elm = _this.j.ed
                    .evaluate(path, _this.j.editor, null, XPathResult.ANY_TYPE, null)
                    .iterateNext();
                if (elm) {
                    _this.j.s.select(elm);
                    return false;
                }
            }
            catch (_a) { }
            _this.j.s.select(bindElement);
            return false;
        };
        _this.tpl = function (bindElement, path, name, title) {
            var item = _this.j.c.fromHTML("<span class=\"jodit-xpath__item\"><a role=\"button\" data-path=\"".concat(path, "\" title=\"").concat(title, "\" tabindex=\"-1\"'>").concat((0, helpers_1.trim)(name), "</a></span>"));
            var a = item.firstChild;
            _this.j.e
                .on(a, 'click', _this.onSelectPath.bind(_this, bindElement))
                .on(a, 'contextmenu', _this.onContext.bind(_this, bindElement));
            return item;
        };
        _this.removeSelectAll = function () {
            if (_this.selectAllButton) {
                _this.selectAllButton.destruct();
                delete _this.selectAllButton;
            }
        };
        _this.appendSelectAll = function () {
            _this.removeSelectAll();
            _this.selectAllButton = (0, factory_1.makeButton)(_this.j, tslib_1.__assign({ name: 'selectall' }, _this.j.o.controls.selectall));
            _this.selectAllButton.state.size = 'tiny';
            _this.container &&
                _this.container.insertBefore(_this.selectAllButton.container, _this.container.firstChild);
        };
        _this.calcPathImd = function () {
            if (_this.isDestructed) {
                return;
            }
            var current = _this.j.s.current();
            if (_this.container) {
                _this.container.innerHTML = constants_1.INVISIBLE_SPACE;
            }
            if (current) {
                var name_1, xpth_1, li_1;
                dom_1.Dom.up(current, function (elm) {
                    if (elm && _this.j.editor !== elm && !dom_1.Dom.isText(elm)) {
                        name_1 = elm.nodeName.toLowerCase();
                        xpth_1 = (0, helpers_1.getXPathByElement)(elm, _this.j.editor).replace(/^\//, '');
                        li_1 = _this.tpl(elm, xpth_1, name_1, _this.j.i18n('Select %s', name_1));
                        _this.container &&
                            _this.container.insertBefore(li_1, _this.container.firstChild);
                    }
                }, _this.j.editor);
            }
            _this.appendSelectAll();
        };
        _this.calcPath = _this.j.async.debounce(_this.calcPathImd, _this.j.defaultTimeout * 2);
        return _this;
    }
    xpath.prototype.afterInit = function () {
        var _this = this;
        if (this.j.o.showXPathInStatusbar) {
            this.container = this.j.c.div('jodit-xpath');
            this.j.e
                .off('.xpath')
                .on('mouseup.xpath change.xpath keydown.xpath changeSelection.xpath', this.calcPath)
                .on('afterSetMode.xpath afterInit.xpath changePlace.xpath', function () {
                if (!_this.j.o.showXPathInStatusbar || !_this.container) {
                    return;
                }
                _this.j.statusbar.append(_this.container);
                if (_this.j.getRealMode() === constants_1.MODE_WYSIWYG) {
                    _this.calcPath();
                }
                else {
                    if (_this.container) {
                        _this.container.innerHTML = constants_1.INVISIBLE_SPACE;
                    }
                    _this.appendSelectAll();
                }
            });
            this.calcPath();
        }
    };
    xpath.prototype.beforeDestruct = function () {
        if (this.j && this.j.events) {
            this.j.e.off('.xpath');
        }
        this.removeSelectAll();
        this.menu && this.menu.destruct();
        dom_1.Dom.safeRemove(this.container);
        delete this.menu;
        delete this.container;
    };
    return xpath;
}(plugin_1.Plugin));
global_1.pluginSystem.add('xpath', xpath);


/***/ }),

/***/ 89019:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1513932__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
__nested_webpack_require_1513932__(61227);
__nested_webpack_require_1513932__(690);
__nested_webpack_require_1513932__(66622);
__nested_webpack_require_1513932__(69220);
__nested_webpack_require_1513932__(10444);
if (!Array.prototype.includes) {
    Array.prototype.includes = function (value) {
        return this.indexOf(value) > -1;
    };
}
if (typeof Object.assign !== 'function') {
    Object.defineProperty(Object, 'assign', {
        value: function assign(target, varArgs) {
            if (target == null) {
                throw new TypeError('Cannot convert undefined or null to object');
            }
            var to = Object(target);
            for (var index = 1; index < arguments.length; index++) {
                var nextSource = arguments[index];
                if (nextSource != null) {
                    for (var nextKey in nextSource) {
                        if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
                            to[nextKey] = nextSource[nextKey];
                        }
                    }
                }
            }
            return to;
        },
        writable: true,
        configurable: true
    });
}
if (!Array.prototype.find) {
    Array.prototype.find = function (value) {
        return this.indexOf(value) > -1 ? value : undefined;
    };
}
if (!String.prototype.endsWith) {
    String.prototype.endsWith = function (value) {
        return this[this.length - 1] === value;
    };
}


/***/ }),

/***/ 15261:
/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1515741__) {

"use strict";

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.valign = exports.upload = exports.update = exports.unlock = exports.settings = exports.save = exports.right = exports.resize_handler = exports.plus = exports.pencil = exports.ok = exports.lock = exports.left = exports.info_circle = exports.folder = exports.file = exports.eye = exports.dots = exports.chevron = exports.check = exports.center = exports.cancel = exports.bin = exports.angle_up = exports.angle_right = exports.angle_left = exports.angle_down = void 0;
var angle_down = __nested_webpack_require_1515741__(1755);
exports.angle_down = angle_down;
var angle_left = __nested_webpack_require_1515741__(74911);
exports.angle_left = angle_left;
var angle_right = __nested_webpack_require_1515741__(8805);
exports.angle_right = angle_right;
var angle_up = __nested_webpack_require_1515741__(16547);
exports.angle_up = angle_up;
var bin = __nested_webpack_require_1515741__(10856);
exports.bin = bin;
var cancel = __nested_webpack_require_1515741__(98441);
exports.cancel = cancel;
var center = __nested_webpack_require_1515741__(52488);
exports.center = center;
var check = __nested_webpack_require_1515741__(9370);
exports.check = check;
var chevron = __nested_webpack_require_1515741__(66543);
exports.chevron = chevron;
var dots = __nested_webpack_require_1515741__(608);
exports.dots = dots;
var eye = __nested_webpack_require_1515741__(42840);
exports.eye = eye;
var file = __nested_webpack_require_1515741__(79096);
exports.file = file;
var folder = __nested_webpack_require_1515741__(33014);
exports.folder = folder;
var info_circle = __nested_webpack_require_1515741__(91677);
exports.info_circle = info_circle;
var left = __nested_webpack_require_1515741__(8259);
exports.left = left;
var lock = __nested_webpack_require_1515741__(64467);
exports.lock = lock;
var ok = __nested_webpack_require_1515741__(86934);
exports.ok = ok;
var pencil = __nested_webpack_require_1515741__(76133);
exports.pencil = pencil;
var plus = __nested_webpack_require_1515741__(45519);
exports.plus = plus;
var resize_handler = __nested_webpack_require_1515741__(90265);
exports.resize_handler = resize_handler;
var right = __nested_webpack_require_1515741__(81279);
exports.right = right;
var save = __nested_webpack_require_1515741__(68899);
exports.save = save;
var settings = __nested_webpack_require_1515741__(70744);
exports.settings = settings;
var unlock = __nested_webpack_require_1515741__(19201);
exports.unlock = unlock;
var update = __nested_webpack_require_1515741__(84930);
exports.update = update;
var upload = __nested_webpack_require_1515741__(99704);
exports.upload = upload;
var valign = __nested_webpack_require_1515741__(2304);
exports.valign = valign;


/***/ }),

/***/ 80078:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'نسخ التنسيق'
};


/***/ }),

/***/ 16986:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Kopírovat formát'
};


/***/ }),

/***/ 59347:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Format kopierenт'
};


/***/ }),

/***/ 63640:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Copiar formato'
};


/***/ }),

/***/ 53434:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'کپی کردن قالب'
};


/***/ }),

/***/ 85638:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Format de copie'
};


/***/ }),

/***/ 31743:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'העתק עיצוב'
};


/***/ }),

/***/ 66219:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Formátum másolás'
};


/***/ }),

/***/ 50331:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'salin format'
};


/***/ }),

/***/ 25582:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Copia il formato'
};


/***/ }),

/***/ 82066:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'copyformat'
};


/***/ }),

/***/ 71925:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': '복사 형식'
};


/***/ }),

/***/ 12689:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Формат хуулах'
};


/***/ }),

/***/ 65274:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'opmaak kopiëren'
};


/***/ }),

/***/ 58548:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'format kopii'
};


/***/ }),

/***/ 82958:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Copiar formato'
};


/***/ }),

/***/ 52315:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Копировать формат'
};


/***/ }),

/***/ 87727:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': 'Kopyalama Biçimi'
};


/***/ }),

/***/ 9396:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': '复制格式'
};


/***/ }),

/***/ 28765:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'copy-format': '複製格式'
};


/***/ }),

/***/ 47762:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'ارتفاع الخط'
};


/***/ }),

/***/ 97495:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Výška čáry'
};


/***/ }),

/***/ 80131:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Zeilenhöhe'
};


/***/ }),

/***/ 1201:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Altura de la línea'
};


/***/ }),

/***/ 89912:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'ارتفاع خط'
};


/***/ }),

/***/ 3405:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Hauteur de ligne'
};


/***/ }),

/***/ 14129:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'גובה שורה'
};


/***/ }),

/***/ 93729:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Vonal magassága'
};


/***/ }),

/***/ 16106:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Tinggi baris'
};


/***/ }),

/***/ 89690:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Altezza linea'
};


/***/ }),

/***/ 33216:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'ラインの高さ'
};


/***/ }),

/***/ 17282:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': '선 높이'
};


/***/ }),

/***/ 52841:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Зураасны өндөр'
};


/***/ }),

/***/ 91761:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Lijnhoogte'
};


/***/ }),

/***/ 61675:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Wysokość linii'
};


/***/ }),

/***/ 69709:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Altura da linha'
};


/***/ }),

/***/ 82591:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Высота линии'
};


/***/ }),

/***/ 87649:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'Çizgi yüksekliği'
};


/***/ }),

/***/ 60268:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': '线高'
};


/***/ }),

/***/ 58214:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	'Line height': 'ความสูงเส้น'
};


/***/ }),

/***/ 5586:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'التدقيق الإملائي'
};


/***/ }),

/***/ 66023:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Kontrola pravopisu'
};


/***/ }),

/***/ 65860:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Rechtschreibprüfung'
};


/***/ }),

/***/ 86055:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Corrección ortográfica'
};


/***/ }),

/***/ 50037:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'غلطیابی املایی'
};


/***/ }),

/***/ 7118:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Vérification Orthographique'
};


/***/ }),

/***/ 30298:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'בדיקת איות'
};


/***/ }),

/***/ 52107:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Helyesírás-ellenőrzés'
};


/***/ }),

/***/ 31240:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Spellchecking'
};


/***/ }),

/***/ 4101:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Controllo ortografico'
};


/***/ }),

/***/ 69286:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'スペルチェック'
};


/***/ }),

/***/ 13402:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: '맞춤법 검사'
};


/***/ }),

/***/ 1242:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Дүрмийн алдаа шалгах'
};


/***/ }),

/***/ 89574:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Spellingcontrole'
};


/***/ }),

/***/ 63630:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Sprawdzanie pisowni'
};


/***/ }),

/***/ 72212:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Verificação ortográfica'
};


/***/ }),

/***/ 82570:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Проверка орфографии'
};


/***/ }),

/***/ 19323:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'Yazım denetimi'
};


/***/ }),

/***/ 50279:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: '拼写检查'
};


/***/ }),

/***/ 98364:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	Spellcheck: 'สะกดคำ'
};


/***/ }),

/***/ 54261:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'رمز'
};


/***/ }),

/***/ 60425:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'symbol'
};


/***/ }),

/***/ 7057:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Symbol'
};


/***/ }),

/***/ 48356:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Símbolo'
};


/***/ }),

/***/ 11428:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'سمبل'
};


/***/ }),

/***/ 29084:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'caractère'
};


/***/ }),

/***/ 22876:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'תו מיוחד'
};


/***/ }),

/***/ 20890:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Szimbólum'
};


/***/ }),

/***/ 75987:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'simbol'
};


/***/ }),

/***/ 60379:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Simbolo'
};


/***/ }),

/***/ 99950:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'symbol'
};


/***/ }),

/***/ 60934:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: '기호'
};


/***/ }),

/***/ 45913:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'тэмдэгт'
};


/***/ }),

/***/ 21994:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'symbool'
};


/***/ }),

/***/ 38128:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'symbol'
};


/***/ }),

/***/ 71515:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Símbolo'
};


/***/ }),

/***/ 58194:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'символ'
};


/***/ }),

/***/ 65802:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: 'Sembol'
};


/***/ }),

/***/ 86628:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: '符号'
};


/***/ }),

/***/ 32210:
/***/ (function(module) {

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */

module.exports = {
	symbols: '符號'
};


/***/ }),

/***/ 52378:
/***/ (function(module) {

"use strict";
module.exports = {assert(){}};;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __nested_webpack_require_1544664__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_1544664__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__nested_webpack_require_1544664__.m = __webpack_modules__;
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/chunk loaded */
/******/ 	!function() {
/******/ 		var deferred = [];
/******/ 		__nested_webpack_require_1544664__.O = function(result, chunkIds, fn, priority) {
/******/ 			if(chunkIds) {
/******/ 				priority = priority || 0;
/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/ 				deferred[i] = [chunkIds, fn, priority];
/******/ 				return;
/******/ 			}
/******/ 			var notFulfilled = Infinity;
/******/ 			for (var i = 0; i < deferred.length; i++) {
/******/ 				var chunkIds = deferred[i][0];
/******/ 				var fn = deferred[i][1];
/******/ 				var priority = deferred[i][2];
/******/ 				var fulfilled = true;
/******/ 				for (var j = 0; j < chunkIds.length; j++) {
/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__nested_webpack_require_1544664__.O).every(function(key) { return __nested_webpack_require_1544664__.O[key](chunkIds[j]); })) {
/******/ 						chunkIds.splice(j--, 1);
/******/ 					} else {
/******/ 						fulfilled = false;
/******/ 						if(priority < notFulfilled) notFulfilled = priority;
/******/ 					}
/******/ 				}
/******/ 				if(fulfilled) {
/******/ 					deferred.splice(i--, 1)
/******/ 					var r = fn();
/******/ 					if (r !== undefined) result = r;
/******/ 				}
/******/ 			}
/******/ 			return result;
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	!function() {
/******/ 		__nested_webpack_require_1544664__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__nested_webpack_require_1544664__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__nested_webpack_require_1544664__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/jsonp chunk loading */
/******/ 	!function() {
/******/ 		// no baseURI
/******/ 		
/******/ 		// object to store loaded and loading chunks
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ 		var installedChunks = {
/******/ 			670: 0
/******/ 		};
/******/ 		
/******/ 		// no chunk on demand loading
/******/ 		
/******/ 		// no prefetching
/******/ 		
/******/ 		// no preloaded
/******/ 		
/******/ 		// no HMR
/******/ 		
/******/ 		// no HMR manifest
/******/ 		
/******/ 		__nested_webpack_require_1544664__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };
/******/ 		
/******/ 		// install a JSONP callback for chunk loading
/******/ 		var webpackJsonpCallback = function(parentChunkLoadingFunction, data) {
/******/ 			var chunkIds = data[0];
/******/ 			var moreModules = data[1];
/******/ 			var runtime = data[2];
/******/ 			// add "moreModules" to the modules object,
/******/ 			// then flag all "chunkIds" as loaded and fire callback
/******/ 			var moduleId, chunkId, i = 0;
/******/ 			if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {
/******/ 				for(moduleId in moreModules) {
/******/ 					if(__nested_webpack_require_1544664__.o(moreModules, moduleId)) {
/******/ 						__nested_webpack_require_1544664__.m[moduleId] = moreModules[moduleId];
/******/ 					}
/******/ 				}
/******/ 				if(runtime) var result = runtime(__nested_webpack_require_1544664__);
/******/ 			}
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ 			for(;i < chunkIds.length; i++) {
/******/ 				chunkId = chunkIds[i];
/******/ 				if(__nested_webpack_require_1544664__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ 					installedChunks[chunkId][0]();
/******/ 				}
/******/ 				installedChunks[chunkId] = 0;
/******/ 			}
/******/ 			return __nested_webpack_require_1544664__.O(result);
/******/ 		}
/******/ 		
/******/ 		var chunkLoadingGlobal = self["webpackChunkjodit"] = self["webpackChunkjodit"] || [];
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ 	}();
/******/ 	
/************************************************************************/
var __nested_webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
!function() {
"use strict";
var exports = __nested_webpack_exports__;

/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2023 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
 */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CommitMode = exports.Jodit = void 0;
__nested_webpack_require_1544664__(90176);
if (  true && typeof window !== 'undefined') {
    __nested_webpack_require_1544664__(89019);
}
var jodit_1 = __nested_webpack_require_1544664__(37920);
Object.defineProperty(exports, "Jodit", ({ enumerable: true, get: function () { return jodit_1.Jodit; } }));
var langs_1 = __nested_webpack_require_1544664__(26435);
var decorators = __nested_webpack_require_1544664__(43441);
var constants = __nested_webpack_require_1544664__(86893);
var Modules = __nested_webpack_require_1544664__(87837);
var Icons = __nested_webpack_require_1544664__(15261);
__nested_webpack_require_1544664__(70022);
__nested_webpack_require_1544664__(91147);
Object.keys(constants).forEach(function (key) {
    jodit_1.Jodit[key] = constants[key];
});
var esFilter = function (key) { return key !== '__esModule'; };
Object.keys(Icons)
    .filter(esFilter)
    .forEach(function (key) {
    Modules.Icon.set(key.replace('_', '-'), Icons[key]);
});
Object.keys(Modules)
    .filter(esFilter)
    .forEach(function (key) {
    jodit_1.Jodit.modules[key] = Modules[key];
});
Object.keys(decorators)
    .filter(esFilter)
    .forEach(function (key) {
    jodit_1.Jodit.decorators[key] = decorators[key];
});
['Confirm', 'Alert', 'Prompt'].forEach(function (key) {
    jodit_1.Jodit[key] = Modules[key];
});
Object.keys(langs_1.default)
    .filter(esFilter)
    .forEach(function (key) {
    jodit_1.Jodit.lang[key] = langs_1.default[key];
});
var CommitMode = (function () {
    function CommitMode() {
    }
    return CommitMode;
}());
exports.CommitMode = CommitMode;

}();
__nested_webpack_exports__ = __nested_webpack_require_1544664__.O(__nested_webpack_exports__);
/******/ 	return __nested_webpack_exports__;
/******/ })()
;
});

/***/ }),

/***/ "../../../Common/assets/node_modules/jquery/dist/jquery.js":
/*!*****************************************************************!*\
  !*** ../../../Common/assets/node_modules/jquery/dist/jquery.js ***!
  \*****************************************************************/
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 * jQuery JavaScript Library v3.7.1
 * https://jquery.com/
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license
 * https://jquery.org/license
 *
 * Date: 2023-08-28T13:37Z
 */
( function( global, factory ) {

	"use strict";

	if (  true && typeof module.exports === "object" ) {

		// For CommonJS and CommonJS-like environments where a proper `window`
		// is present, execute the factory and get jQuery.
		// For environments that do not have a `window` with a `document`
		// (such as Node.js), expose a factory as module.exports.
		// This accentuates the need for the creation of a real `window`.
		// e.g. var jQuery = require("jquery")(window);
		// See ticket trac-14549 for more info.
		module.exports = global.document ?
			factory( global, true ) :
			function( w ) {
				if ( !w.document ) {
					throw new Error( "jQuery requires a window with a document" );
				}
				return factory( w );
			};
	} else {
		factory( global );
	}

// Pass this if window is not defined yet
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {

// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
// enough that all such attempts are guarded in a try block.
"use strict";

var arr = [];

var getProto = Object.getPrototypeOf;

var slice = arr.slice;

var flat = arr.flat ? function( array ) {
	return arr.flat.call( array );
} : function( array ) {
	return arr.concat.apply( [], array );
};


var push = arr.push;

var indexOf = arr.indexOf;

var class2type = {};

var toString = class2type.toString;

var hasOwn = class2type.hasOwnProperty;

var fnToString = hasOwn.toString;

var ObjectFunctionString = fnToString.call( Object );

var support = {};

var isFunction = function isFunction( obj ) {

		// Support: Chrome <=57, Firefox <=52
		// In some browsers, typeof returns "function" for HTML <object> elements
		// (i.e., `typeof document.createElement( "object" ) === "function"`).
		// We don't want to classify *any* DOM node as a function.
		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
		// Plus for old WebKit, typeof returns "function" for HTML collections
		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
			typeof obj.item !== "function";
	};


var isWindow = function isWindow( obj ) {
		return obj != null && obj === obj.window;
	};


var document = window.document;



	var preservedScriptAttributes = {
		type: true,
		src: true,
		nonce: true,
		noModule: true
	};

	function DOMEval( code, node, doc ) {
		doc = doc || document;

		var i, val,
			script = doc.createElement( "script" );

		script.text = code;
		if ( node ) {
			for ( i in preservedScriptAttributes ) {

				// Support: Firefox 64+, Edge 18+
				// Some browsers don't support the "nonce" property on scripts.
				// On the other hand, just using `getAttribute` is not enough as
				// the `nonce` attribute is reset to an empty string whenever it
				// becomes browsing-context connected.
				// See https://github.com/whatwg/html/issues/2369
				// See https://html.spec.whatwg.org/#nonce-attributes
				// The `node.getAttribute` check was added for the sake of
				// `jQuery.globalEval` so that it can fake a nonce-containing node
				// via an object.
				val = node[ i ] || node.getAttribute && node.getAttribute( i );
				if ( val ) {
					script.setAttribute( i, val );
				}
			}
		}
		doc.head.appendChild( script ).parentNode.removeChild( script );
	}


function toType( obj ) {
	if ( obj == null ) {
		return obj + "";
	}

	// Support: Android <=2.3 only (functionish RegExp)
	return typeof obj === "object" || typeof obj === "function" ?
		class2type[ toString.call( obj ) ] || "object" :
		typeof obj;
}
/* global Symbol */
// Defining this global in .eslintrc.json would create a danger of using the global
// unguarded in another place, it seems safer to define global only for this module



var version = "3.7.1",

	rhtmlSuffix = /HTML$/i,

	// Define a local copy of jQuery
	jQuery = function( selector, context ) {

		// The jQuery object is actually just the init constructor 'enhanced'
		// Need init if jQuery is called (just allow error to be thrown if not included)
		return new jQuery.fn.init( selector, context );
	};

jQuery.fn = jQuery.prototype = {

	// The current version of jQuery being used
	jquery: version,

	constructor: jQuery,

	// The default length of a jQuery object is 0
	length: 0,

	toArray: function() {
		return slice.call( this );
	},

	// Get the Nth element in the matched element set OR
	// Get the whole matched element set as a clean array
	get: function( num ) {

		// Return all the elements in a clean array
		if ( num == null ) {
			return slice.call( this );
		}

		// Return just the one element from the set
		return num < 0 ? this[ num + this.length ] : this[ num ];
	},

	// Take an array of elements and push it onto the stack
	// (returning the new matched element set)
	pushStack: function( elems ) {

		// Build a new jQuery matched element set
		var ret = jQuery.merge( this.constructor(), elems );

		// Add the old object onto the stack (as a reference)
		ret.prevObject = this;

		// Return the newly-formed element set
		return ret;
	},

	// Execute a callback for every element in the matched set.
	each: function( callback ) {
		return jQuery.each( this, callback );
	},

	map: function( callback ) {
		return this.pushStack( jQuery.map( this, function( elem, i ) {
			return callback.call( elem, i, elem );
		} ) );
	},

	slice: function() {
		return this.pushStack( slice.apply( this, arguments ) );
	},

	first: function() {
		return this.eq( 0 );
	},

	last: function() {
		return this.eq( -1 );
	},

	even: function() {
		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
			return ( i + 1 ) % 2;
		} ) );
	},

	odd: function() {
		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
			return i % 2;
		} ) );
	},

	eq: function( i ) {
		var len = this.length,
			j = +i + ( i < 0 ? len : 0 );
		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
	},

	end: function() {
		return this.prevObject || this.constructor();
	},

	// For internal use only.
	// Behaves like an Array's method, not like a jQuery method.
	push: push,
	sort: arr.sort,
	splice: arr.splice
};

jQuery.extend = jQuery.fn.extend = function() {
	var options, name, src, copy, copyIsArray, clone,
		target = arguments[ 0 ] || {},
		i = 1,
		length = arguments.length,
		deep = false;

	// Handle a deep copy situation
	if ( typeof target === "boolean" ) {
		deep = target;

		// Skip the boolean and the target
		target = arguments[ i ] || {};
		i++;
	}

	// Handle case when target is a string or something (possible in deep copy)
	if ( typeof target !== "object" && !isFunction( target ) ) {
		target = {};
	}

	// Extend jQuery itself if only one argument is passed
	if ( i === length ) {
		target = this;
		i--;
	}

	for ( ; i < length; i++ ) {

		// Only deal with non-null/undefined values
		if ( ( options = arguments[ i ] ) != null ) {

			// Extend the base object
			for ( name in options ) {
				copy = options[ name ];

				// Prevent Object.prototype pollution
				// Prevent never-ending loop
				if ( name === "__proto__" || target === copy ) {
					continue;
				}

				// Recurse if we're merging plain objects or arrays
				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
					( copyIsArray = Array.isArray( copy ) ) ) ) {
					src = target[ name ];

					// Ensure proper type for the source value
					if ( copyIsArray && !Array.isArray( src ) ) {
						clone = [];
					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
						clone = {};
					} else {
						clone = src;
					}
					copyIsArray = false;

					// Never move original objects, clone them
					target[ name ] = jQuery.extend( deep, clone, copy );

				// Don't bring in undefined values
				} else if ( copy !== undefined ) {
					target[ name ] = copy;
				}
			}
		}
	}

	// Return the modified object
	return target;
};

jQuery.extend( {

	// Unique for each copy of jQuery on the page
	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),

	// Assume jQuery is ready without the ready module
	isReady: true,

	error: function( msg ) {
		throw new Error( msg );
	},

	noop: function() {},

	isPlainObject: function( obj ) {
		var proto, Ctor;

		// Detect obvious negatives
		// Use toString instead of jQuery.type to catch host objects
		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
			return false;
		}

		proto = getProto( obj );

		// Objects with no prototype (e.g., `Object.create( null )`) are plain
		if ( !proto ) {
			return true;
		}

		// Objects with prototype are plain iff they were constructed by a global Object function
		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
	},

	isEmptyObject: function( obj ) {
		var name;

		for ( name in obj ) {
			return false;
		}
		return true;
	},

	// Evaluates a script in a provided context; falls back to the global one
	// if not specified.
	globalEval: function( code, options, doc ) {
		DOMEval( code, { nonce: options && options.nonce }, doc );
	},

	each: function( obj, callback ) {
		var length, i = 0;

		if ( isArrayLike( obj ) ) {
			length = obj.length;
			for ( ; i < length; i++ ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		} else {
			for ( i in obj ) {
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
					break;
				}
			}
		}

		return obj;
	},


	// Retrieve the text value of an array of DOM nodes
	text: function( elem ) {
		var node,
			ret = "",
			i = 0,
			nodeType = elem.nodeType;

		if ( !nodeType ) {

			// If no nodeType, this is expected to be an array
			while ( ( node = elem[ i++ ] ) ) {

				// Do not traverse comment nodes
				ret += jQuery.text( node );
			}
		}
		if ( nodeType === 1 || nodeType === 11 ) {
			return elem.textContent;
		}
		if ( nodeType === 9 ) {
			return elem.documentElement.textContent;
		}
		if ( nodeType === 3 || nodeType === 4 ) {
			return elem.nodeValue;
		}

		// Do not include comment or processing instruction nodes

		return ret;
	},

	// results is for internal usage only
	makeArray: function( arr, results ) {
		var ret = results || [];

		if ( arr != null ) {
			if ( isArrayLike( Object( arr ) ) ) {
				jQuery.merge( ret,
					typeof arr === "string" ?
						[ arr ] : arr
				);
			} else {
				push.call( ret, arr );
			}
		}

		return ret;
	},

	inArray: function( elem, arr, i ) {
		return arr == null ? -1 : indexOf.call( arr, elem, i );
	},

	isXMLDoc: function( elem ) {
		var namespace = elem && elem.namespaceURI,
			docElem = elem && ( elem.ownerDocument || elem ).documentElement;

		// Assume HTML when documentElement doesn't yet exist, such as inside
		// document fragments.
		return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
	},

	// Support: Android <=4.0 only, PhantomJS 1 only
	// push.apply(_, arraylike) throws on ancient WebKit
	merge: function( first, second ) {
		var len = +second.length,
			j = 0,
			i = first.length;

		for ( ; j < len; j++ ) {
			first[ i++ ] = second[ j ];
		}

		first.length = i;

		return first;
	},

	grep: function( elems, callback, invert ) {
		var callbackInverse,
			matches = [],
			i = 0,
			length = elems.length,
			callbackExpect = !invert;

		// Go through the array, only saving the items
		// that pass the validator function
		for ( ; i < length; i++ ) {
			callbackInverse = !callback( elems[ i ], i );
			if ( callbackInverse !== callbackExpect ) {
				matches.push( elems[ i ] );
			}
		}

		return matches;
	},

	// arg is for internal usage only
	map: function( elems, callback, arg ) {
		var length, value,
			i = 0,
			ret = [];

		// Go through the array, translating each of the items to their new values
		if ( isArrayLike( elems ) ) {
			length = elems.length;
			for ( ; i < length; i++ ) {
				value = callback( elems[ i ], i, arg );

				if ( value != null ) {
					ret.push( value );
				}
			}

		// Go through every key on the object,
		} else {
			for ( i in elems ) {
				value = callback( elems[ i ], i, arg );

				if ( value != null ) {
					ret.push( value );
				}
			}
		}

		// Flatten any nested arrays
		return flat( ret );
	},

	// A global GUID counter for objects
	guid: 1,

	// jQuery.support is not used in Core but other projects attach their
	// properties to it so it needs to exist.
	support: support
} );

if ( typeof Symbol === "function" ) {
	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
}

// Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
	function( _i, name ) {
		class2type[ "[object " + name + "]" ] = name.toLowerCase();
	} );

function isArrayLike( obj ) {

	// Support: real iOS 8.2 only (not reproducible in simulator)
	// `in` check used to prevent JIT error (gh-2145)
	// hasOwn isn't used here due to false negatives
	// regarding Nodelist length in IE
	var length = !!obj && "length" in obj && obj.length,
		type = toType( obj );

	if ( isFunction( obj ) || isWindow( obj ) ) {
		return false;
	}

	return type === "array" || length === 0 ||
		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}


function nodeName( elem, name ) {

	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();

}
var pop = arr.pop;


var sort = arr.sort;


var splice = arr.splice;


var whitespace = "[\\x20\\t\\r\\n\\f]";


var rtrimCSS = new RegExp(
	"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
	"g"
);




// Note: an element does not contain itself
jQuery.contains = function( a, b ) {
	var bup = b && b.parentNode;

	return a === bup || !!( bup && bup.nodeType === 1 && (

		// Support: IE 9 - 11+
		// IE doesn't have `contains` on SVG.
		a.contains ?
			a.contains( bup ) :
			a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
	) );
};




// CSS string/identifier serialization
// https://drafts.csswg.org/cssom/#common-serializing-idioms
var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;

function fcssescape( ch, asCodePoint ) {
	if ( asCodePoint ) {

		// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
		if ( ch === "\0" ) {
			return "\uFFFD";
		}

		// Control characters and (dependent upon position) numbers get escaped as code points
		return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
	}

	// Other potentially-special ASCII characters get backslash-escaped
	return "\\" + ch;
}

jQuery.escapeSelector = function( sel ) {
	return ( sel + "" ).replace( rcssescape, fcssescape );
};




var preferredDoc = document,
	pushNative = push;

( function() {

var i,
	Expr,
	outermostContext,
	sortInput,
	hasDuplicate,
	push = pushNative,

	// Local document vars
	document,
	documentElement,
	documentIsHTML,
	rbuggyQSA,
	matches,

	// Instance-specific data
	expando = jQuery.expando,
	dirruns = 0,
	done = 0,
	classCache = createCache(),
	tokenCache = createCache(),
	compilerCache = createCache(),
	nonnativeSelectorCache = createCache(),
	sortOrder = function( a, b ) {
		if ( a === b ) {
			hasDuplicate = true;
		}
		return 0;
	},

	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" +
		"loop|multiple|open|readonly|required|scoped",

	// Regular expressions

	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",

	// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors
	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +

		// Operator (capture 2)
		"*([*^$|!~]?=)" + whitespace +

		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
		whitespace + "*\\]",

	pseudos = ":(" + identifier + ")(?:\\((" +

		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
		// 1. quoted (capture 3; capture 4 or capture 5)
		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +

		// 2. simple (capture 6)
		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +

		// 3. anything else (capture 2)
		".*" +
		")\\)|)",

	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
	rwhitespace = new RegExp( whitespace + "+", "g" ),

	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
	rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" +
		whitespace + "*" ),
	rdescend = new RegExp( whitespace + "|>" ),

	rpseudo = new RegExp( pseudos ),
	ridentifier = new RegExp( "^" + identifier + "$" ),

	matchExpr = {
		ID: new RegExp( "^#(" + identifier + ")" ),
		CLASS: new RegExp( "^\\.(" + identifier + ")" ),
		TAG: new RegExp( "^(" + identifier + "|[*])" ),
		ATTR: new RegExp( "^" + attributes ),
		PSEUDO: new RegExp( "^" + pseudos ),
		CHILD: new RegExp(
			"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
				whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
				whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
		bool: new RegExp( "^(?:" + booleans + ")$", "i" ),

		// For use in libraries implementing .is()
		// We use this for POS matching in `select`
		needsContext: new RegExp( "^" + whitespace +
			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
	},

	rinputs = /^(?:input|select|textarea|button)$/i,
	rheader = /^h\d$/i,

	// Easily-parseable/retrievable ID or TAG or CLASS selectors
	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,

	rsibling = /[+~]/,

	// CSS escapes
	// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
		"?|\\\\([^\\r\\n\\f])", "g" ),
	funescape = function( escape, nonHex ) {
		var high = "0x" + escape.slice( 1 ) - 0x10000;

		if ( nonHex ) {

			// Strip the backslash prefix from a non-hex escape sequence
			return nonHex;
		}

		// Replace a hexadecimal escape sequence with the encoded Unicode code point
		// Support: IE <=11+
		// For values outside the Basic Multilingual Plane (BMP), manually construct a
		// surrogate pair
		return high < 0 ?
			String.fromCharCode( high + 0x10000 ) :
			String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
	},

	// Used for iframes; see `setDocument`.
	// Support: IE 9 - 11+, Edge 12 - 18+
	// Removing the function wrapper causes a "Permission Denied"
	// error in IE/Edge.
	unloadHandler = function() {
		setDocument();
	},

	inDisabledFieldset = addCombinator(
		function( elem ) {
			return elem.disabled === true && nodeName( elem, "fieldset" );
		},
		{ dir: "parentNode", next: "legend" }
	);

// Support: IE <=9 only
// Accessing document.activeElement can throw unexpectedly
// https://bugs.jquery.com/ticket/13393
function safeActiveElement() {
	try {
		return document.activeElement;
	} catch ( err ) { }
}

// Optimize for push.apply( _, NodeList )
try {
	push.apply(
		( arr = slice.call( preferredDoc.childNodes ) ),
		preferredDoc.childNodes
	);

	// Support: Android <=4.0
	// Detect silently failing push.apply
	// eslint-disable-next-line no-unused-expressions
	arr[ preferredDoc.childNodes.length ].nodeType;
} catch ( e ) {
	push = {
		apply: function( target, els ) {
			pushNative.apply( target, slice.call( els ) );
		},
		call: function( target ) {
			pushNative.apply( target, slice.call( arguments, 1 ) );
		}
	};
}

function find( selector, context, results, seed ) {
	var m, i, elem, nid, match, groups, newSelector,
		newContext = context && context.ownerDocument,

		// nodeType defaults to 9, since context defaults to document
		nodeType = context ? context.nodeType : 9;

	results = results || [];

	// Return early from calls with invalid selector or context
	if ( typeof selector !== "string" || !selector ||
		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {

		return results;
	}

	// Try to shortcut find operations (as opposed to filters) in HTML documents
	if ( !seed ) {
		setDocument( context );
		context = context || document;

		if ( documentIsHTML ) {

			// If the selector is sufficiently simple, try using a "get*By*" DOM method
			// (excepting DocumentFragment context, where the methods don't exist)
			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {

				// ID selector
				if ( ( m = match[ 1 ] ) ) {

					// Document context
					if ( nodeType === 9 ) {
						if ( ( elem = context.getElementById( m ) ) ) {

							// Support: IE 9 only
							// getElementById can match elements by name instead of ID
							if ( elem.id === m ) {
								push.call( results, elem );
								return results;
							}
						} else {
							return results;
						}

					// Element context
					} else {

						// Support: IE 9 only
						// getElementById can match elements by name instead of ID
						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
							find.contains( context, elem ) &&
							elem.id === m ) {

							push.call( results, elem );
							return results;
						}
					}

				// Type selector
				} else if ( match[ 2 ] ) {
					push.apply( results, context.getElementsByTagName( selector ) );
					return results;

				// Class selector
				} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {
					push.apply( results, context.getElementsByClassName( m ) );
					return results;
				}
			}

			// Take advantage of querySelectorAll
			if ( !nonnativeSelectorCache[ selector + " " ] &&
				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {

				newSelector = selector;
				newContext = context;

				// qSA considers elements outside a scoping root when evaluating child or
				// descendant combinators, which is not what we want.
				// In such cases, we work around the behavior by prefixing every selector in the
				// list with an ID selector referencing the scope context.
				// The technique has to be used as well when a leading combinator is used
				// as such selectors are not recognized by querySelectorAll.
				// Thanks to Andrew Dupont for this technique.
				if ( nodeType === 1 &&
					( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {

					// Expand context for sibling selectors
					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
						context;

					// We can use :scope instead of the ID hack if the browser
					// supports it & if we're not changing the context.
					// Support: IE 11+, Edge 17 - 18+
					// IE/Edge sometimes throw a "Permission denied" error when
					// strict-comparing two documents; shallow comparisons work.
					// eslint-disable-next-line eqeqeq
					if ( newContext != context || !support.scope ) {

						// Capture the context ID, setting it first if necessary
						if ( ( nid = context.getAttribute( "id" ) ) ) {
							nid = jQuery.escapeSelector( nid );
						} else {
							context.setAttribute( "id", ( nid = expando ) );
						}
					}

					// Prefix every selector in the list
					groups = tokenize( selector );
					i = groups.length;
					while ( i-- ) {
						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
							toSelector( groups[ i ] );
					}
					newSelector = groups.join( "," );
				}

				try {
					push.apply( results,
						newContext.querySelectorAll( newSelector )
					);
					return results;
				} catch ( qsaError ) {
					nonnativeSelectorCache( selector, true );
				} finally {
					if ( nid === expando ) {
						context.removeAttribute( "id" );
					}
				}
			}
		}
	}

	// All others
	return select( selector.replace( rtrimCSS, "$1" ), context, results, seed );
}

/**
 * Create key-value caches of limited size
 * @returns {function(string, object)} Returns the Object data after storing it on itself with
 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
 *	deleting the oldest entry
 */
function createCache() {
	var keys = [];

	function cache( key, value ) {

		// Use (key + " ") to avoid collision with native prototype properties
		// (see https://github.com/jquery/sizzle/issues/157)
		if ( keys.push( key + " " ) > Expr.cacheLength ) {

			// Only keep the most recent entries
			delete cache[ keys.shift() ];
		}
		return ( cache[ key + " " ] = value );
	}
	return cache;
}

/**
 * Mark a function for special use by jQuery selector module
 * @param {Function} fn The function to mark
 */
function markFunction( fn ) {
	fn[ expando ] = true;
	return fn;
}

/**
 * Support testing using an element
 * @param {Function} fn Passed the created element and returns a boolean result
 */
function assert( fn ) {
	var el = document.createElement( "fieldset" );

	try {
		return !!fn( el );
	} catch ( e ) {
		return false;
	} finally {

		// Remove from its parent by default
		if ( el.parentNode ) {
			el.parentNode.removeChild( el );
		}

		// release memory in IE
		el = null;
	}
}

/**
 * Returns a function to use in pseudos for input types
 * @param {String} type
 */
function createInputPseudo( type ) {
	return function( elem ) {
		return nodeName( elem, "input" ) && elem.type === type;
	};
}

/**
 * Returns a function to use in pseudos for buttons
 * @param {String} type
 */
function createButtonPseudo( type ) {
	return function( elem ) {
		return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) &&
			elem.type === type;
	};
}

/**
 * Returns a function to use in pseudos for :enabled/:disabled
 * @param {Boolean} disabled true for :disabled; false for :enabled
 */
function createDisabledPseudo( disabled ) {

	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
	return function( elem ) {

		// Only certain elements can match :enabled or :disabled
		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
		if ( "form" in elem ) {

			// Check for inherited disabledness on relevant non-disabled elements:
			// * listed form-associated elements in a disabled fieldset
			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
			// * option elements in a disabled optgroup
			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
			// All such elements have a "form" property.
			if ( elem.parentNode && elem.disabled === false ) {

				// Option elements defer to a parent optgroup if present
				if ( "label" in elem ) {
					if ( "label" in elem.parentNode ) {
						return elem.parentNode.disabled === disabled;
					} else {
						return elem.disabled === disabled;
					}
				}

				// Support: IE 6 - 11+
				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
				return elem.isDisabled === disabled ||

					// Where there is no isDisabled, check manually
					elem.isDisabled !== !disabled &&
						inDisabledFieldset( elem ) === disabled;
			}

			return elem.disabled === disabled;

		// Try to winnow out elements that can't be disabled before trusting the disabled property.
		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
		// even exist on them, let alone have a boolean value.
		} else if ( "label" in elem ) {
			return elem.disabled === disabled;
		}

		// Remaining elements are neither :enabled nor :disabled
		return false;
	};
}

/**
 * Returns a function to use in pseudos for positionals
 * @param {Function} fn
 */
function createPositionalPseudo( fn ) {
	return markFunction( function( argument ) {
		argument = +argument;
		return markFunction( function( seed, matches ) {
			var j,
				matchIndexes = fn( [], seed.length, argument ),
				i = matchIndexes.length;

			// Match elements found at the specified indexes
			while ( i-- ) {
				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
					seed[ j ] = !( matches[ j ] = seed[ j ] );
				}
			}
		} );
	} );
}

/**
 * Checks a node for validity as a jQuery selector context
 * @param {Element|Object=} context
 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
 */
function testContext( context ) {
	return context && typeof context.getElementsByTagName !== "undefined" && context;
}

/**
 * Sets document-related variables once based on the current document
 * @param {Element|Object} [node] An element or document object to use to set the document
 * @returns {Object} Returns the current document
 */
function setDocument( node ) {
	var subWindow,
		doc = node ? node.ownerDocument || node : preferredDoc;

	// Return early if doc is invalid or already selected
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
		return document;
	}

	// Update global variables
	document = doc;
	documentElement = document.documentElement;
	documentIsHTML = !jQuery.isXMLDoc( document );

	// Support: iOS 7 only, IE 9 - 11+
	// Older browsers didn't support unprefixed `matches`.
	matches = documentElement.matches ||
		documentElement.webkitMatchesSelector ||
		documentElement.msMatchesSelector;

	// Support: IE 9 - 11+, Edge 12 - 18+
	// Accessing iframe documents after unload throws "permission denied" errors
	// (see trac-13936).
	// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,
	// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.
	if ( documentElement.msMatchesSelector &&

		// Support: IE 11+, Edge 17 - 18+
		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
		// two documents; shallow comparisons work.
		// eslint-disable-next-line eqeqeq
		preferredDoc != document &&
		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {

		// Support: IE 9 - 11+, Edge 12 - 18+
		subWindow.addEventListener( "unload", unloadHandler );
	}

	// Support: IE <10
	// Check if getElementById returns elements by name
	// The broken getElementById methods don't pick up programmatically-set names,
	// so use a roundabout getElementsByName test
	support.getById = assert( function( el ) {
		documentElement.appendChild( el ).id = jQuery.expando;
		return !document.getElementsByName ||
			!document.getElementsByName( jQuery.expando ).length;
	} );

	// Support: IE 9 only
	// Check to see if it's possible to do matchesSelector
	// on a disconnected node.
	support.disconnectedMatch = assert( function( el ) {
		return matches.call( el, "*" );
	} );

	// Support: IE 9 - 11+, Edge 12 - 18+
	// IE/Edge don't support the :scope pseudo-class.
	support.scope = assert( function() {
		return document.querySelectorAll( ":scope" );
	} );

	// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
	// Make sure the `:has()` argument is parsed unforgivingly.
	// We include `*` in the test to detect buggy implementations that are
	// _selectively_ forgiving (specifically when the list includes at least
	// one valid selector).
	// Note that we treat complete lack of support for `:has()` as if it were
	// spec-compliant support, which is fine because use of `:has()` in such
	// environments will fail in the qSA path and fall back to jQuery traversal
	// anyway.
	support.cssHas = assert( function() {
		try {
			document.querySelector( ":has(*,:jqfake)" );
			return false;
		} catch ( e ) {
			return true;
		}
	} );

	// ID filter and find
	if ( support.getById ) {
		Expr.filter.ID = function( id ) {
			var attrId = id.replace( runescape, funescape );
			return function( elem ) {
				return elem.getAttribute( "id" ) === attrId;
			};
		};
		Expr.find.ID = function( id, context ) {
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
				var elem = context.getElementById( id );
				return elem ? [ elem ] : [];
			}
		};
	} else {
		Expr.filter.ID =  function( id ) {
			var attrId = id.replace( runescape, funescape );
			return function( elem ) {
				var node = typeof elem.getAttributeNode !== "undefined" &&
					elem.getAttributeNode( "id" );
				return node && node.value === attrId;
			};
		};

		// Support: IE 6 - 7 only
		// getElementById is not reliable as a find shortcut
		Expr.find.ID = function( id, context ) {
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
				var node, i, elems,
					elem = context.getElementById( id );

				if ( elem ) {

					// Verify the id attribute
					node = elem.getAttributeNode( "id" );
					if ( node && node.value === id ) {
						return [ elem ];
					}

					// Fall back on getElementsByName
					elems = context.getElementsByName( id );
					i = 0;
					while ( ( elem = elems[ i++ ] ) ) {
						node = elem.getAttributeNode( "id" );
						if ( node && node.value === id ) {
							return [ elem ];
						}
					}
				}

				return [];
			}
		};
	}

	// Tag
	Expr.find.TAG = function( tag, context ) {
		if ( typeof context.getElementsByTagName !== "undefined" ) {
			return context.getElementsByTagName( tag );

		// DocumentFragment nodes don't have gEBTN
		} else {
			return context.querySelectorAll( tag );
		}
	};

	// Class
	Expr.find.CLASS = function( className, context ) {
		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
			return context.getElementsByClassName( className );
		}
	};

	/* QSA/matchesSelector
	---------------------------------------------------------------------- */

	// QSA and matchesSelector support

	rbuggyQSA = [];

	// Build QSA regex
	// Regex strategy adopted from Diego Perini
	assert( function( el ) {

		var input;

		documentElement.appendChild( el ).innerHTML =
			"<a id='" + expando + "' href='' disabled='disabled'></a>" +
			"<select id='" + expando + "-\r\\' disabled='disabled'>" +
			"<option selected=''></option></select>";

		// Support: iOS <=7 - 8 only
		// Boolean attributes and "value" are not treated correctly in some XML documents
		if ( !el.querySelectorAll( "[selected]" ).length ) {
			rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
		}

		// Support: iOS <=7 - 8 only
		if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
			rbuggyQSA.push( "~=" );
		}

		// Support: iOS 8 only
		// https://bugs.webkit.org/show_bug.cgi?id=136851
		// In-page `selector#id sibling-combinator selector` fails
		if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
			rbuggyQSA.push( ".#.+[+~]" );
		}

		// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
		// In some of the document kinds, these selectors wouldn't work natively.
		// This is probably OK but for backwards compatibility we want to maintain
		// handling them through jQuery traversal in jQuery 3.x.
		if ( !el.querySelectorAll( ":checked" ).length ) {
			rbuggyQSA.push( ":checked" );
		}

		// Support: Windows 8 Native Apps
		// The type and name attributes are restricted during .innerHTML assignment
		input = document.createElement( "input" );
		input.setAttribute( "type", "hidden" );
		el.appendChild( input ).setAttribute( "name", "D" );

		// Support: IE 9 - 11+
		// IE's :disabled selector does not pick up the children of disabled fieldsets
		// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
		// In some of the document kinds, these selectors wouldn't work natively.
		// This is probably OK but for backwards compatibility we want to maintain
		// handling them through jQuery traversal in jQuery 3.x.
		documentElement.appendChild( el ).disabled = true;
		if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
			rbuggyQSA.push( ":enabled", ":disabled" );
		}

		// Support: IE 11+, Edge 15 - 18+
		// IE 11/Edge don't find elements on a `[name='']` query in some cases.
		// Adding a temporary attribute to the document before the selection works
		// around the issue.
		// Interestingly, IE 10 & older don't seem to have the issue.
		input = document.createElement( "input" );
		input.setAttribute( "name", "" );
		el.appendChild( input );
		if ( !el.querySelectorAll( "[name='']" ).length ) {
			rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
				whitespace + "*(?:''|\"\")" );
		}
	} );

	if ( !support.cssHas ) {

		// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
		// Our regular `try-catch` mechanism fails to detect natively-unsupported
		// pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`)
		// in browsers that parse the `:has()` argument as a forgiving selector list.
		// https://drafts.csswg.org/selectors/#relational now requires the argument
		// to be parsed unforgivingly, but browsers have not yet fully adjusted.
		rbuggyQSA.push( ":has" );
	}

	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );

	/* Sorting
	---------------------------------------------------------------------- */

	// Document order sorting
	sortOrder = function( a, b ) {

		// Flag for duplicate removal
		if ( a === b ) {
			hasDuplicate = true;
			return 0;
		}

		// Sort on method existence if only one input has compareDocumentPosition
		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
		if ( compare ) {
			return compare;
		}

		// Calculate position if both inputs belong to the same document
		// Support: IE 11+, Edge 17 - 18+
		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
		// two documents; shallow comparisons work.
		// eslint-disable-next-line eqeqeq
		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
			a.compareDocumentPosition( b ) :

			// Otherwise we know they are disconnected
			1;

		// Disconnected nodes
		if ( compare & 1 ||
			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {

			// Choose the first element that is related to our preferred document
			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			// eslint-disable-next-line eqeqeq
			if ( a === document || a.ownerDocument == preferredDoc &&
				find.contains( preferredDoc, a ) ) {
				return -1;
			}

			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			// eslint-disable-next-line eqeqeq
			if ( b === document || b.ownerDocument == preferredDoc &&
				find.contains( preferredDoc, b ) ) {
				return 1;
			}

			// Maintain original order
			return sortInput ?
				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
				0;
		}

		return compare & 4 ? -1 : 1;
	};

	return document;
}

find.matches = function( expr, elements ) {
	return find( expr, null, null, elements );
};

find.matchesSelector = function( elem, expr ) {
	setDocument( elem );

	if ( documentIsHTML &&
		!nonnativeSelectorCache[ expr + " " ] &&
		( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {

		try {
			var ret = matches.call( elem, expr );

			// IE 9's matchesSelector returns false on disconnected nodes
			if ( ret || support.disconnectedMatch ||

					// As well, disconnected nodes are said to be in a document
					// fragment in IE 9
					elem.document && elem.document.nodeType !== 11 ) {
				return ret;
			}
		} catch ( e ) {
			nonnativeSelectorCache( expr, true );
		}
	}

	return find( expr, document, null, [ elem ] ).length > 0;
};

find.contains = function( context, elem ) {

	// Set document vars if needed
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( ( context.ownerDocument || context ) != document ) {
		setDocument( context );
	}
	return jQuery.contains( context, elem );
};


find.attr = function( elem, name ) {

	// Set document vars if needed
	// Support: IE 11+, Edge 17 - 18+
	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
	// two documents; shallow comparisons work.
	// eslint-disable-next-line eqeqeq
	if ( ( elem.ownerDocument || elem ) != document ) {
		setDocument( elem );
	}

	var fn = Expr.attrHandle[ name.toLowerCase() ],

		// Don't get fooled by Object.prototype properties (see trac-13807)
		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
			fn( elem, name, !documentIsHTML ) :
			undefined;

	if ( val !== undefined ) {
		return val;
	}

	return elem.getAttribute( name );
};

find.error = function( msg ) {
	throw new Error( "Syntax error, unrecognized expression: " + msg );
};

/**
 * Document sorting and removing duplicates
 * @param {ArrayLike} results
 */
jQuery.uniqueSort = function( results ) {
	var elem,
		duplicates = [],
		j = 0,
		i = 0;

	// Unless we *know* we can detect duplicates, assume their presence
	//
	// Support: Android <=4.0+
	// Testing for detecting duplicates is unpredictable so instead assume we can't
	// depend on duplicate detection in all browsers without a stable sort.
	hasDuplicate = !support.sortStable;
	sortInput = !support.sortStable && slice.call( results, 0 );
	sort.call( results, sortOrder );

	if ( hasDuplicate ) {
		while ( ( elem = results[ i++ ] ) ) {
			if ( elem === results[ i ] ) {
				j = duplicates.push( i );
			}
		}
		while ( j-- ) {
			splice.call( results, duplicates[ j ], 1 );
		}
	}

	// Clear input after sorting to release objects
	// See https://github.com/jquery/sizzle/pull/225
	sortInput = null;

	return results;
};

jQuery.fn.uniqueSort = function() {
	return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );
};

Expr = jQuery.expr = {

	// Can be adjusted by the user
	cacheLength: 50,

	createPseudo: markFunction,

	match: matchExpr,

	attrHandle: {},

	find: {},

	relative: {
		">": { dir: "parentNode", first: true },
		" ": { dir: "parentNode" },
		"+": { dir: "previousSibling", first: true },
		"~": { dir: "previousSibling" }
	},

	preFilter: {
		ATTR: function( match ) {
			match[ 1 ] = match[ 1 ].replace( runescape, funescape );

			// Move the given value to match[3] whether quoted or unquoted
			match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" )
				.replace( runescape, funescape );

			if ( match[ 2 ] === "~=" ) {
				match[ 3 ] = " " + match[ 3 ] + " ";
			}

			return match.slice( 0, 4 );
		},

		CHILD: function( match ) {

			/* matches from matchExpr["CHILD"]
				1 type (only|nth|...)
				2 what (child|of-type)
				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
				4 xn-component of xn+y argument ([+-]?\d*n|)
				5 sign of xn-component
				6 x of xn-component
				7 sign of y-component
				8 y of y-component
			*/
			match[ 1 ] = match[ 1 ].toLowerCase();

			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {

				// nth-* requires argument
				if ( !match[ 3 ] ) {
					find.error( match[ 0 ] );
				}

				// numeric x and y parameters for Expr.filter.CHILD
				// remember that false/true cast respectively to 0/1
				match[ 4 ] = +( match[ 4 ] ?
					match[ 5 ] + ( match[ 6 ] || 1 ) :
					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
				);
				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );

			// other types prohibit arguments
			} else if ( match[ 3 ] ) {
				find.error( match[ 0 ] );
			}

			return match;
		},

		PSEUDO: function( match ) {
			var excess,
				unquoted = !match[ 6 ] && match[ 2 ];

			if ( matchExpr.CHILD.test( match[ 0 ] ) ) {
				return null;
			}

			// Accept quoted arguments as-is
			if ( match[ 3 ] ) {
				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";

			// Strip excess characters from unquoted arguments
			} else if ( unquoted && rpseudo.test( unquoted ) &&

				// Get excess from tokenize (recursively)
				( excess = tokenize( unquoted, true ) ) &&

				// advance to the next closing parenthesis
				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {

				// excess is a negative index
				match[ 0 ] = match[ 0 ].slice( 0, excess );
				match[ 2 ] = unquoted.slice( 0, excess );
			}

			// Return only captures needed by the pseudo filter method (type and argument)
			return match.slice( 0, 3 );
		}
	},

	filter: {

		TAG: function( nodeNameSelector ) {
			var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
			return nodeNameSelector === "*" ?
				function() {
					return true;
				} :
				function( elem ) {
					return nodeName( elem, expectedNodeName );
				};
		},

		CLASS: function( className ) {
			var pattern = classCache[ className + " " ];

			return pattern ||
				( pattern = new RegExp( "(^|" + whitespace + ")" + className +
					"(" + whitespace + "|$)" ) ) &&
				classCache( className, function( elem ) {
					return pattern.test(
						typeof elem.className === "string" && elem.className ||
							typeof elem.getAttribute !== "undefined" &&
								elem.getAttribute( "class" ) ||
							""
					);
				} );
		},

		ATTR: function( name, operator, check ) {
			return function( elem ) {
				var result = find.attr( elem, name );

				if ( result == null ) {
					return operator === "!=";
				}
				if ( !operator ) {
					return true;
				}

				result += "";

				if ( operator === "=" ) {
					return result === check;
				}
				if ( operator === "!=" ) {
					return result !== check;
				}
				if ( operator === "^=" ) {
					return check && result.indexOf( check ) === 0;
				}
				if ( operator === "*=" ) {
					return check && result.indexOf( check ) > -1;
				}
				if ( operator === "$=" ) {
					return check && result.slice( -check.length ) === check;
				}
				if ( operator === "~=" ) {
					return ( " " + result.replace( rwhitespace, " " ) + " " )
						.indexOf( check ) > -1;
				}
				if ( operator === "|=" ) {
					return result === check || result.slice( 0, check.length + 1 ) === check + "-";
				}

				return false;
			};
		},

		CHILD: function( type, what, _argument, first, last ) {
			var simple = type.slice( 0, 3 ) !== "nth",
				forward = type.slice( -4 ) !== "last",
				ofType = what === "of-type";

			return first === 1 && last === 0 ?

				// Shortcut for :nth-*(n)
				function( elem ) {
					return !!elem.parentNode;
				} :

				function( elem, _context, xml ) {
					var cache, outerCache, node, nodeIndex, start,
						dir = simple !== forward ? "nextSibling" : "previousSibling",
						parent = elem.parentNode,
						name = ofType && elem.nodeName.toLowerCase(),
						useCache = !xml && !ofType,
						diff = false;

					if ( parent ) {

						// :(first|last|only)-(child|of-type)
						if ( simple ) {
							while ( dir ) {
								node = elem;
								while ( ( node = node[ dir ] ) ) {
									if ( ofType ?
										nodeName( node, name ) :
										node.nodeType === 1 ) {

										return false;
									}
								}

								// Reverse direction for :only-* (if we haven't yet done so)
								start = dir = type === "only" && !start && "nextSibling";
							}
							return true;
						}

						start = [ forward ? parent.firstChild : parent.lastChild ];

						// non-xml :nth-child(...) stores cache data on `parent`
						if ( forward && useCache ) {

							// Seek `elem` from a previously-cached index
							outerCache = parent[ expando ] || ( parent[ expando ] = {} );
							cache = outerCache[ type ] || [];
							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
							diff = nodeIndex && cache[ 2 ];
							node = nodeIndex && parent.childNodes[ nodeIndex ];

							while ( ( node = ++nodeIndex && node && node[ dir ] ||

								// Fallback to seeking `elem` from the start
								( diff = nodeIndex = 0 ) || start.pop() ) ) {

								// When found, cache indexes on `parent` and break
								if ( node.nodeType === 1 && ++diff && node === elem ) {
									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
									break;
								}
							}

						} else {

							// Use previously-cached element index if available
							if ( useCache ) {
								outerCache = elem[ expando ] || ( elem[ expando ] = {} );
								cache = outerCache[ type ] || [];
								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
								diff = nodeIndex;
							}

							// xml :nth-child(...)
							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
							if ( diff === false ) {

								// Use the same loop as above to seek `elem` from the start
								while ( ( node = ++nodeIndex && node && node[ dir ] ||
									( diff = nodeIndex = 0 ) || start.pop() ) ) {

									if ( ( ofType ?
										nodeName( node, name ) :
										node.nodeType === 1 ) &&
										++diff ) {

										// Cache the index of each encountered element
										if ( useCache ) {
											outerCache = node[ expando ] ||
												( node[ expando ] = {} );
											outerCache[ type ] = [ dirruns, diff ];
										}

										if ( node === elem ) {
											break;
										}
									}
								}
							}
						}

						// Incorporate the offset, then check against cycle size
						diff -= last;
						return diff === first || ( diff % first === 0 && diff / first >= 0 );
					}
				};
		},

		PSEUDO: function( pseudo, argument ) {

			// pseudo-class names are case-insensitive
			// https://www.w3.org/TR/selectors/#pseudo-classes
			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
			// Remember that setFilters inherits from pseudos
			var args,
				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
					find.error( "unsupported pseudo: " + pseudo );

			// The user may use createPseudo to indicate that
			// arguments are needed to create the filter function
			// just as jQuery does
			if ( fn[ expando ] ) {
				return fn( argument );
			}

			// But maintain support for old signatures
			if ( fn.length > 1 ) {
				args = [ pseudo, pseudo, "", argument ];
				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
					markFunction( function( seed, matches ) {
						var idx,
							matched = fn( seed, argument ),
							i = matched.length;
						while ( i-- ) {
							idx = indexOf.call( seed, matched[ i ] );
							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
						}
					} ) :
					function( elem ) {
						return fn( elem, 0, args );
					};
			}

			return fn;
		}
	},

	pseudos: {

		// Potentially complex pseudos
		not: markFunction( function( selector ) {

			// Trim the selector passed to compile
			// to avoid treating leading and trailing
			// spaces as combinators
			var input = [],
				results = [],
				matcher = compile( selector.replace( rtrimCSS, "$1" ) );

			return matcher[ expando ] ?
				markFunction( function( seed, matches, _context, xml ) {
					var elem,
						unmatched = matcher( seed, null, xml, [] ),
						i = seed.length;

					// Match elements unmatched by `matcher`
					while ( i-- ) {
						if ( ( elem = unmatched[ i ] ) ) {
							seed[ i ] = !( matches[ i ] = elem );
						}
					}
				} ) :
				function( elem, _context, xml ) {
					input[ 0 ] = elem;
					matcher( input, null, xml, results );

					// Don't keep the element
					// (see https://github.com/jquery/sizzle/issues/299)
					input[ 0 ] = null;
					return !results.pop();
				};
		} ),

		has: markFunction( function( selector ) {
			return function( elem ) {
				return find( selector, elem ).length > 0;
			};
		} ),

		contains: markFunction( function( text ) {
			text = text.replace( runescape, funescape );
			return function( elem ) {
				return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;
			};
		} ),

		// "Whether an element is represented by a :lang() selector
		// is based solely on the element's language value
		// being equal to the identifier C,
		// or beginning with the identifier C immediately followed by "-".
		// The matching of C against the element's language value is performed case-insensitively.
		// The identifier C does not have to be a valid language name."
		// https://www.w3.org/TR/selectors/#lang-pseudo
		lang: markFunction( function( lang ) {

			// lang value must be a valid identifier
			if ( !ridentifier.test( lang || "" ) ) {
				find.error( "unsupported lang: " + lang );
			}
			lang = lang.replace( runescape, funescape ).toLowerCase();
			return function( elem ) {
				var elemLang;
				do {
					if ( ( elemLang = documentIsHTML ?
						elem.lang :
						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {

						elemLang = elemLang.toLowerCase();
						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
					}
				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
				return false;
			};
		} ),

		// Miscellaneous
		target: function( elem ) {
			var hash = window.location && window.location.hash;
			return hash && hash.slice( 1 ) === elem.id;
		},

		root: function( elem ) {
			return elem === documentElement;
		},

		focus: function( elem ) {
			return elem === safeActiveElement() &&
				document.hasFocus() &&
				!!( elem.type || elem.href || ~elem.tabIndex );
		},

		// Boolean properties
		enabled: createDisabledPseudo( false ),
		disabled: createDisabledPseudo( true ),

		checked: function( elem ) {

			// In CSS3, :checked should return both checked and selected elements
			// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
			return ( nodeName( elem, "input" ) && !!elem.checked ) ||
				( nodeName( elem, "option" ) && !!elem.selected );
		},

		selected: function( elem ) {

			// Support: IE <=11+
			// Accessing the selectedIndex property
			// forces the browser to treat the default option as
			// selected when in an optgroup.
			if ( elem.parentNode ) {
				// eslint-disable-next-line no-unused-expressions
				elem.parentNode.selectedIndex;
			}

			return elem.selected === true;
		},

		// Contents
		empty: function( elem ) {

			// https://www.w3.org/TR/selectors/#empty-pseudo
			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
			//   but not by others (comment: 8; processing instruction: 7; etc.)
			// nodeType < 6 works because attributes (2) do not appear as children
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
				if ( elem.nodeType < 6 ) {
					return false;
				}
			}
			return true;
		},

		parent: function( elem ) {
			return !Expr.pseudos.empty( elem );
		},

		// Element/input types
		header: function( elem ) {
			return rheader.test( elem.nodeName );
		},

		input: function( elem ) {
			return rinputs.test( elem.nodeName );
		},

		button: function( elem ) {
			return nodeName( elem, "input" ) && elem.type === "button" ||
				nodeName( elem, "button" );
		},

		text: function( elem ) {
			var attr;
			return nodeName( elem, "input" ) && elem.type === "text" &&

				// Support: IE <10 only
				// New HTML5 attribute values (e.g., "search") appear
				// with elem.type === "text"
				( ( attr = elem.getAttribute( "type" ) ) == null ||
					attr.toLowerCase() === "text" );
		},

		// Position-in-collection
		first: createPositionalPseudo( function() {
			return [ 0 ];
		} ),

		last: createPositionalPseudo( function( _matchIndexes, length ) {
			return [ length - 1 ];
		} ),

		eq: createPositionalPseudo( function( _matchIndexes, length, argument ) {
			return [ argument < 0 ? argument + length : argument ];
		} ),

		even: createPositionalPseudo( function( matchIndexes, length ) {
			var i = 0;
			for ( ; i < length; i += 2 ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		odd: createPositionalPseudo( function( matchIndexes, length ) {
			var i = 1;
			for ( ; i < length; i += 2 ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		lt: createPositionalPseudo( function( matchIndexes, length, argument ) {
			var i;

			if ( argument < 0 ) {
				i = argument + length;
			} else if ( argument > length ) {
				i = length;
			} else {
				i = argument;
			}

			for ( ; --i >= 0; ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} ),

		gt: createPositionalPseudo( function( matchIndexes, length, argument ) {
			var i = argument < 0 ? argument + length : argument;
			for ( ; ++i < length; ) {
				matchIndexes.push( i );
			}
			return matchIndexes;
		} )
	}
};

Expr.pseudos.nth = Expr.pseudos.eq;

// Add button/input type pseudos
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
	Expr.pseudos[ i ] = createInputPseudo( i );
}
for ( i in { submit: true, reset: true } ) {
	Expr.pseudos[ i ] = createButtonPseudo( i );
}

// Easy API for creating new setFilters
function setFilters() {}
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();

function tokenize( selector, parseOnly ) {
	var matched, match, tokens, type,
		soFar, groups, preFilters,
		cached = tokenCache[ selector + " " ];

	if ( cached ) {
		return parseOnly ? 0 : cached.slice( 0 );
	}

	soFar = selector;
	groups = [];
	preFilters = Expr.preFilter;

	while ( soFar ) {

		// Comma and first run
		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
			if ( match ) {

				// Don't consume trailing commas as valid
				soFar = soFar.slice( match[ 0 ].length ) || soFar;
			}
			groups.push( ( tokens = [] ) );
		}

		matched = false;

		// Combinators
		if ( ( match = rleadingCombinator.exec( soFar ) ) ) {
			matched = match.shift();
			tokens.push( {
				value: matched,

				// Cast descendant combinators to space
				type: match[ 0 ].replace( rtrimCSS, " " )
			} );
			soFar = soFar.slice( matched.length );
		}

		// Filters
		for ( type in Expr.filter ) {
			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
				( match = preFilters[ type ]( match ) ) ) ) {
				matched = match.shift();
				tokens.push( {
					value: matched,
					type: type,
					matches: match
				} );
				soFar = soFar.slice( matched.length );
			}
		}

		if ( !matched ) {
			break;
		}
	}

	// Return the length of the invalid excess
	// if we're just parsing
	// Otherwise, throw an error or return tokens
	if ( parseOnly ) {
		return soFar.length;
	}

	return soFar ?
		find.error( selector ) :

		// Cache the tokens
		tokenCache( selector, groups ).slice( 0 );
}

function toSelector( tokens ) {
	var i = 0,
		len = tokens.length,
		selector = "";
	for ( ; i < len; i++ ) {
		selector += tokens[ i ].value;
	}
	return selector;
}

function addCombinator( matcher, combinator, base ) {
	var dir = combinator.dir,
		skip = combinator.next,
		key = skip || dir,
		checkNonElements = base && key === "parentNode",
		doneName = done++;

	return combinator.first ?

		// Check against closest ancestor/preceding element
		function( elem, context, xml ) {
			while ( ( elem = elem[ dir ] ) ) {
				if ( elem.nodeType === 1 || checkNonElements ) {
					return matcher( elem, context, xml );
				}
			}
			return false;
		} :

		// Check against all ancestor/preceding elements
		function( elem, context, xml ) {
			var oldCache, outerCache,
				newCache = [ dirruns, doneName ];

			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
			if ( xml ) {
				while ( ( elem = elem[ dir ] ) ) {
					if ( elem.nodeType === 1 || checkNonElements ) {
						if ( matcher( elem, context, xml ) ) {
							return true;
						}
					}
				}
			} else {
				while ( ( elem = elem[ dir ] ) ) {
					if ( elem.nodeType === 1 || checkNonElements ) {
						outerCache = elem[ expando ] || ( elem[ expando ] = {} );

						if ( skip && nodeName( elem, skip ) ) {
							elem = elem[ dir ] || elem;
						} else if ( ( oldCache = outerCache[ key ] ) &&
							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {

							// Assign to newCache so results back-propagate to previous elements
							return ( newCache[ 2 ] = oldCache[ 2 ] );
						} else {

							// Reuse newcache so results back-propagate to previous elements
							outerCache[ key ] = newCache;

							// A match means we're done; a fail means we have to keep checking
							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
								return true;
							}
						}
					}
				}
			}
			return false;
		};
}

function elementMatcher( matchers ) {
	return matchers.length > 1 ?
		function( elem, context, xml ) {
			var i = matchers.length;
			while ( i-- ) {
				if ( !matchers[ i ]( elem, context, xml ) ) {
					return false;
				}
			}
			return true;
		} :
		matchers[ 0 ];
}

function multipleContexts( selector, contexts, results ) {
	var i = 0,
		len = contexts.length;
	for ( ; i < len; i++ ) {
		find( selector, contexts[ i ], results );
	}
	return results;
}

function condense( unmatched, map, filter, context, xml ) {
	var elem,
		newUnmatched = [],
		i = 0,
		len = unmatched.length,
		mapped = map != null;

	for ( ; i < len; i++ ) {
		if ( ( elem = unmatched[ i ] ) ) {
			if ( !filter || filter( elem, context, xml ) ) {
				newUnmatched.push( elem );
				if ( mapped ) {
					map.push( i );
				}
			}
		}
	}

	return newUnmatched;
}

function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
	if ( postFilter && !postFilter[ expando ] ) {
		postFilter = setMatcher( postFilter );
	}
	if ( postFinder && !postFinder[ expando ] ) {
		postFinder = setMatcher( postFinder, postSelector );
	}
	return markFunction( function( seed, results, context, xml ) {
		var temp, i, elem, matcherOut,
			preMap = [],
			postMap = [],
			preexisting = results.length,

			// Get initial elements from seed or context
			elems = seed ||
				multipleContexts( selector || "*",
					context.nodeType ? [ context ] : context, [] ),

			// Prefilter to get matcher input, preserving a map for seed-results synchronization
			matcherIn = preFilter && ( seed || !selector ) ?
				condense( elems, preMap, preFilter, context, xml ) :
				elems;

		if ( matcher ) {

			// If we have a postFinder, or filtered seed, or non-seed postFilter
			// or preexisting results,
			matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?

				// ...intermediate processing is necessary
				[] :

				// ...otherwise use results directly
				results;

			// Find primary matches
			matcher( matcherIn, matcherOut, context, xml );
		} else {
			matcherOut = matcherIn;
		}

		// Apply postFilter
		if ( postFilter ) {
			temp = condense( matcherOut, postMap );
			postFilter( temp, [], context, xml );

			// Un-match failing elements by moving them back to matcherIn
			i = temp.length;
			while ( i-- ) {
				if ( ( elem = temp[ i ] ) ) {
					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
				}
			}
		}

		if ( seed ) {
			if ( postFinder || preFilter ) {
				if ( postFinder ) {

					// Get the final matcherOut by condensing this intermediate into postFinder contexts
					temp = [];
					i = matcherOut.length;
					while ( i-- ) {
						if ( ( elem = matcherOut[ i ] ) ) {

							// Restore matcherIn since elem is not yet a final match
							temp.push( ( matcherIn[ i ] = elem ) );
						}
					}
					postFinder( null, ( matcherOut = [] ), temp, xml );
				}

				// Move matched elements from seed to results to keep them synchronized
				i = matcherOut.length;
				while ( i-- ) {
					if ( ( elem = matcherOut[ i ] ) &&
						( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {

						seed[ temp ] = !( results[ temp ] = elem );
					}
				}
			}

		// Add elements to results, through postFinder if defined
		} else {
			matcherOut = condense(
				matcherOut === results ?
					matcherOut.splice( preexisting, matcherOut.length ) :
					matcherOut
			);
			if ( postFinder ) {
				postFinder( null, results, matcherOut, xml );
			} else {
				push.apply( results, matcherOut );
			}
		}
	} );
}

function matcherFromTokens( tokens ) {
	var checkContext, matcher, j,
		len = tokens.length,
		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
		implicitRelative = leadingRelative || Expr.relative[ " " ],
		i = leadingRelative ? 1 : 0,

		// The foundational matcher ensures that elements are reachable from top-level context(s)
		matchContext = addCombinator( function( elem ) {
			return elem === checkContext;
		}, implicitRelative, true ),
		matchAnyContext = addCombinator( function( elem ) {
			return indexOf.call( checkContext, elem ) > -1;
		}, implicitRelative, true ),
		matchers = [ function( elem, context, xml ) {

			// Support: IE 11+, Edge 17 - 18+
			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
			// two documents; shallow comparisons work.
			// eslint-disable-next-line eqeqeq
			var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (
				( checkContext = context ).nodeType ?
					matchContext( elem, context, xml ) :
					matchAnyContext( elem, context, xml ) );

			// Avoid hanging onto element
			// (see https://github.com/jquery/sizzle/issues/299)
			checkContext = null;
			return ret;
		} ];

	for ( ; i < len; i++ ) {
		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
		} else {
			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );

			// Return special upon seeing a positional matcher
			if ( matcher[ expando ] ) {

				// Find the next relative operator (if any) for proper handling
				j = ++i;
				for ( ; j < len; j++ ) {
					if ( Expr.relative[ tokens[ j ].type ] ) {
						break;
					}
				}
				return setMatcher(
					i > 1 && elementMatcher( matchers ),
					i > 1 && toSelector(

						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
						tokens.slice( 0, i - 1 )
							.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
					).replace( rtrimCSS, "$1" ),
					matcher,
					i < j && matcherFromTokens( tokens.slice( i, j ) ),
					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
					j < len && toSelector( tokens )
				);
			}
			matchers.push( matcher );
		}
	}

	return elementMatcher( matchers );
}

function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
	var bySet = setMatchers.length > 0,
		byElement = elementMatchers.length > 0,
		superMatcher = function( seed, context, xml, results, outermost ) {
			var elem, j, matcher,
				matchedCount = 0,
				i = "0",
				unmatched = seed && [],
				setMatched = [],
				contextBackup = outermostContext,

				// We must always have either seed elements or outermost context
				elems = seed || byElement && Expr.find.TAG( "*", outermost ),

				// Use integer dirruns iff this is the outermost matcher
				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
				len = elems.length;

			if ( outermost ) {

				// Support: IE 11+, Edge 17 - 18+
				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
				// two documents; shallow comparisons work.
				// eslint-disable-next-line eqeqeq
				outermostContext = context == document || context || outermost;
			}

			// Add elements passing elementMatchers directly to results
			// Support: iOS <=7 - 9 only
			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching
			// elements by id. (see trac-14142)
			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
				if ( byElement && elem ) {
					j = 0;

					// Support: IE 11+, Edge 17 - 18+
					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
					// two documents; shallow comparisons work.
					// eslint-disable-next-line eqeqeq
					if ( !context && elem.ownerDocument != document ) {
						setDocument( elem );
						xml = !documentIsHTML;
					}
					while ( ( matcher = elementMatchers[ j++ ] ) ) {
						if ( matcher( elem, context || document, xml ) ) {
							push.call( results, elem );
							break;
						}
					}
					if ( outermost ) {
						dirruns = dirrunsUnique;
					}
				}

				// Track unmatched elements for set filters
				if ( bySet ) {

					// They will have gone through all possible matchers
					if ( ( elem = !matcher && elem ) ) {
						matchedCount--;
					}

					// Lengthen the array for every element, matched or not
					if ( seed ) {
						unmatched.push( elem );
					}
				}
			}

			// `i` is now the count of elements visited above, and adding it to `matchedCount`
			// makes the latter nonnegative.
			matchedCount += i;

			// Apply set filters to unmatched elements
			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
			// no element matchers and no seed.
			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
			// numerically zero.
			if ( bySet && i !== matchedCount ) {
				j = 0;
				while ( ( matcher = setMatchers[ j++ ] ) ) {
					matcher( unmatched, setMatched, context, xml );
				}

				if ( seed ) {

					// Reintegrate element matches to eliminate the need for sorting
					if ( matchedCount > 0 ) {
						while ( i-- ) {
							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
								setMatched[ i ] = pop.call( results );
							}
						}
					}

					// Discard index placeholder values to get only actual matches
					setMatched = condense( setMatched );
				}

				// Add matches to results
				push.apply( results, setMatched );

				// Seedless set matches succeeding multiple successful matchers stipulate sorting
				if ( outermost && !seed && setMatched.length > 0 &&
					( matchedCount + setMatchers.length ) > 1 ) {

					jQuery.uniqueSort( results );
				}
			}

			// Override manipulation of globals by nested matchers
			if ( outermost ) {
				dirruns = dirrunsUnique;
				outermostContext = contextBackup;
			}

			return unmatched;
		};

	return bySet ?
		markFunction( superMatcher ) :
		superMatcher;
}

function compile( selector, match /* Internal Use Only */ ) {
	var i,
		setMatchers = [],
		elementMatchers = [],
		cached = compilerCache[ selector + " " ];

	if ( !cached ) {

		// Generate a function of recursive functions that can be used to check each element
		if ( !match ) {
			match = tokenize( selector );
		}
		i = match.length;
		while ( i-- ) {
			cached = matcherFromTokens( match[ i ] );
			if ( cached[ expando ] ) {
				setMatchers.push( cached );
			} else {
				elementMatchers.push( cached );
			}
		}

		// Cache the compiled function
		cached = compilerCache( selector,
			matcherFromGroupMatchers( elementMatchers, setMatchers ) );

		// Save selector and tokenization
		cached.selector = selector;
	}
	return cached;
}

/**
 * A low-level selection function that works with jQuery's compiled
 *  selector functions
 * @param {String|Function} selector A selector or a pre-compiled
 *  selector function built with jQuery selector compile
 * @param {Element} context
 * @param {Array} [results]
 * @param {Array} [seed] A set of elements to match against
 */
function select( selector, context, results, seed ) {
	var i, tokens, token, type, find,
		compiled = typeof selector === "function" && selector,
		match = !seed && tokenize( ( selector = compiled.selector || selector ) );

	results = results || [];

	// Try to minimize operations if there is only one selector in the list and no seed
	// (the latter of which guarantees us context)
	if ( match.length === 1 ) {

		// Reduce context if the leading compound selector is an ID
		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {

			context = ( Expr.find.ID(
				token.matches[ 0 ].replace( runescape, funescape ),
				context
			) || [] )[ 0 ];
			if ( !context ) {
				return results;

			// Precompiled matchers will still verify ancestry, so step up a level
			} else if ( compiled ) {
				context = context.parentNode;
			}

			selector = selector.slice( tokens.shift().value.length );
		}

		// Fetch a seed set for right-to-left matching
		i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;
		while ( i-- ) {
			token = tokens[ i ];

			// Abort if we hit a combinator
			if ( Expr.relative[ ( type = token.type ) ] ) {
				break;
			}
			if ( ( find = Expr.find[ type ] ) ) {

				// Search, expanding context for leading sibling combinators
				if ( ( seed = find(
					token.matches[ 0 ].replace( runescape, funescape ),
					rsibling.test( tokens[ 0 ].type ) &&
						testContext( context.parentNode ) || context
				) ) ) {

					// If seed is empty or no tokens remain, we can return early
					tokens.splice( i, 1 );
					selector = seed.length && toSelector( tokens );
					if ( !selector ) {
						push.apply( results, seed );
						return results;
					}

					break;
				}
			}
		}
	}

	// Compile and execute a filtering function if one is not provided
	// Provide `match` to avoid retokenization if we modified the selector above
	( compiled || compile( selector, match ) )(
		seed,
		context,
		!documentIsHTML,
		results,
		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
	);
	return results;
}

// One-time assignments

// Support: Android <=4.0 - 4.1+
// Sort stability
support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;

// Initialize against the default document
setDocument();

// Support: Android <=4.0 - 4.1+
// Detached nodes confoundingly follow *each other*
support.sortDetached = assert( function( el ) {

	// Should return 1, but returns 4 (following)
	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
} );

jQuery.find = find;

// Deprecated
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
jQuery.unique = jQuery.uniqueSort;

// These have always been private, but they used to be documented as part of
// Sizzle so let's maintain them for now for backwards compatibility purposes.
find.compile = compile;
find.select = select;
find.setDocument = setDocument;
find.tokenize = tokenize;

find.escape = jQuery.escapeSelector;
find.getText = jQuery.text;
find.isXML = jQuery.isXMLDoc;
find.selectors = jQuery.expr;
find.support = jQuery.support;
find.uniqueSort = jQuery.uniqueSort;

	/* eslint-enable */

} )();


var dir = function( elem, dir, until ) {
	var matched = [],
		truncate = until !== undefined;

	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
		if ( elem.nodeType === 1 ) {
			if ( truncate && jQuery( elem ).is( until ) ) {
				break;
			}
			matched.push( elem );
		}
	}
	return matched;
};


var siblings = function( n, elem ) {
	var matched = [];

	for ( ; n; n = n.nextSibling ) {
		if ( n.nodeType === 1 && n !== elem ) {
			matched.push( n );
		}
	}

	return matched;
};


var rneedsContext = jQuery.expr.match.needsContext;

var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );



// Implement the identical functionality for filter and not
function winnow( elements, qualifier, not ) {
	if ( isFunction( qualifier ) ) {
		return jQuery.grep( elements, function( elem, i ) {
			return !!qualifier.call( elem, i, elem ) !== not;
		} );
	}

	// Single element
	if ( qualifier.nodeType ) {
		return jQuery.grep( elements, function( elem ) {
			return ( elem === qualifier ) !== not;
		} );
	}

	// Arraylike of elements (jQuery, arguments, Array)
	if ( typeof qualifier !== "string" ) {
		return jQuery.grep( elements, function( elem ) {
			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
		} );
	}

	// Filtered directly for both simple and complex selectors
	return jQuery.filter( qualifier, elements, not );
}

jQuery.filter = function( expr, elems, not ) {
	var elem = elems[ 0 ];

	if ( not ) {
		expr = ":not(" + expr + ")";
	}

	if ( elems.length === 1 && elem.nodeType === 1 ) {
		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
	}

	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
		return elem.nodeType === 1;
	} ) );
};

jQuery.fn.extend( {
	find: function( selector ) {
		var i, ret,
			len = this.length,
			self = this;

		if ( typeof selector !== "string" ) {
			return this.pushStack( jQuery( selector ).filter( function() {
				for ( i = 0; i < len; i++ ) {
					if ( jQuery.contains( self[ i ], this ) ) {
						return true;
					}
				}
			} ) );
		}

		ret = this.pushStack( [] );

		for ( i = 0; i < len; i++ ) {
			jQuery.find( selector, self[ i ], ret );
		}

		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
	},
	filter: function( selector ) {
		return this.pushStack( winnow( this, selector || [], false ) );
	},
	not: function( selector ) {
		return this.pushStack( winnow( this, selector || [], true ) );
	},
	is: function( selector ) {
		return !!winnow(
			this,

			// If this is a positional/relative selector, check membership in the returned set
			// so $("p:first").is("p:last") won't return true for a doc with two "p".
			typeof selector === "string" && rneedsContext.test( selector ) ?
				jQuery( selector ) :
				selector || [],
			false
		).length;
	}
} );


// Initialize a jQuery object


// A central reference to the root jQuery(document)
var rootjQuery,

	// A simple way to check for HTML strings
	// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
	// Strict HTML recognition (trac-11290: must start with <)
	// Shortcut simple #id case for speed
	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,

	init = jQuery.fn.init = function( selector, context, root ) {
		var match, elem;

		// HANDLE: $(""), $(null), $(undefined), $(false)
		if ( !selector ) {
			return this;
		}

		// Method init() accepts an alternate rootjQuery
		// so migrate can support jQuery.sub (gh-2101)
		root = root || rootjQuery;

		// Handle HTML strings
		if ( typeof selector === "string" ) {
			if ( selector[ 0 ] === "<" &&
				selector[ selector.length - 1 ] === ">" &&
				selector.length >= 3 ) {

				// Assume that strings that start and end with <> are HTML and skip the regex check
				match = [ null, selector, null ];

			} else {
				match = rquickExpr.exec( selector );
			}

			// Match html or make sure no context is specified for #id
			if ( match && ( match[ 1 ] || !context ) ) {

				// HANDLE: $(html) -> $(array)
				if ( match[ 1 ] ) {
					context = context instanceof jQuery ? context[ 0 ] : context;

					// Option to run scripts is true for back-compat
					// Intentionally let the error be thrown if parseHTML is not present
					jQuery.merge( this, jQuery.parseHTML(
						match[ 1 ],
						context && context.nodeType ? context.ownerDocument || context : document,
						true
					) );

					// HANDLE: $(html, props)
					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
						for ( match in context ) {

							// Properties of context are called as methods if possible
							if ( isFunction( this[ match ] ) ) {
								this[ match ]( context[ match ] );

							// ...and otherwise set as attributes
							} else {
								this.attr( match, context[ match ] );
							}
						}
					}

					return this;

				// HANDLE: $(#id)
				} else {
					elem = document.getElementById( match[ 2 ] );

					if ( elem ) {

						// Inject the element directly into the jQuery object
						this[ 0 ] = elem;
						this.length = 1;
					}
					return this;
				}

			// HANDLE: $(expr, $(...))
			} else if ( !context || context.jquery ) {
				return ( context || root ).find( selector );

			// HANDLE: $(expr, context)
			// (which is just equivalent to: $(context).find(expr)
			} else {
				return this.constructor( context ).find( selector );
			}

		// HANDLE: $(DOMElement)
		} else if ( selector.nodeType ) {
			this[ 0 ] = selector;
			this.length = 1;
			return this;

		// HANDLE: $(function)
		// Shortcut for document ready
		} else if ( isFunction( selector ) ) {
			return root.ready !== undefined ?
				root.ready( selector ) :

				// Execute immediately if ready is not present
				selector( jQuery );
		}

		return jQuery.makeArray( selector, this );
	};

// Give the init function the jQuery prototype for later instantiation
init.prototype = jQuery.fn;

// Initialize central reference
rootjQuery = jQuery( document );


var rparentsprev = /^(?:parents|prev(?:Until|All))/,

	// Methods guaranteed to produce a unique set when starting from a unique set
	guaranteedUnique = {
		children: true,
		contents: true,
		next: true,
		prev: true
	};

jQuery.fn.extend( {
	has: function( target ) {
		var targets = jQuery( target, this ),
			l = targets.length;

		return this.filter( function() {
			var i = 0;
			for ( ; i < l; i++ ) {
				if ( jQuery.contains( this, targets[ i ] ) ) {
					return true;
				}
			}
		} );
	},

	closest: function( selectors, context ) {
		var cur,
			i = 0,
			l = this.length,
			matched = [],
			targets = typeof selectors !== "string" && jQuery( selectors );

		// Positional selectors never match, since there's no _selection_ context
		if ( !rneedsContext.test( selectors ) ) {
			for ( ; i < l; i++ ) {
				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {

					// Always skip document fragments
					if ( cur.nodeType < 11 && ( targets ?
						targets.index( cur ) > -1 :

						// Don't pass non-elements to jQuery#find
						cur.nodeType === 1 &&
							jQuery.find.matchesSelector( cur, selectors ) ) ) {

						matched.push( cur );
						break;
					}
				}
			}
		}

		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
	},

	// Determine the position of an element within the set
	index: function( elem ) {

		// No argument, return index in parent
		if ( !elem ) {
			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
		}

		// Index in selector
		if ( typeof elem === "string" ) {
			return indexOf.call( jQuery( elem ), this[ 0 ] );
		}

		// Locate the position of the desired element
		return indexOf.call( this,

			// If it receives a jQuery object, the first element is used
			elem.jquery ? elem[ 0 ] : elem
		);
	},

	add: function( selector, context ) {
		return this.pushStack(
			jQuery.uniqueSort(
				jQuery.merge( this.get(), jQuery( selector, context ) )
			)
		);
	},

	addBack: function( selector ) {
		return this.add( selector == null ?
			this.prevObject : this.prevObject.filter( selector )
		);
	}
} );

function sibling( cur, dir ) {
	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
	return cur;
}

jQuery.each( {
	parent: function( elem ) {
		var parent = elem.parentNode;
		return parent && parent.nodeType !== 11 ? parent : null;
	},
	parents: function( elem ) {
		return dir( elem, "parentNode" );
	},
	parentsUntil: function( elem, _i, until ) {
		return dir( elem, "parentNode", until );
	},
	next: function( elem ) {
		return sibling( elem, "nextSibling" );
	},
	prev: function( elem ) {
		return sibling( elem, "previousSibling" );
	},
	nextAll: function( elem ) {
		return dir( elem, "nextSibling" );
	},
	prevAll: function( elem ) {
		return dir( elem, "previousSibling" );
	},
	nextUntil: function( elem, _i, until ) {
		return dir( elem, "nextSibling", until );
	},
	prevUntil: function( elem, _i, until ) {
		return dir( elem, "previousSibling", until );
	},
	siblings: function( elem ) {
		return siblings( ( elem.parentNode || {} ).firstChild, elem );
	},
	children: function( elem ) {
		return siblings( elem.firstChild );
	},
	contents: function( elem ) {
		if ( elem.contentDocument != null &&

			// Support: IE 11+
			// <object> elements with no `data` attribute has an object
			// `contentDocument` with a `null` prototype.
			getProto( elem.contentDocument ) ) {

			return elem.contentDocument;
		}

		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
		// Treat the template element as a regular one in browsers that
		// don't support it.
		if ( nodeName( elem, "template" ) ) {
			elem = elem.content || elem;
		}

		return jQuery.merge( [], elem.childNodes );
	}
}, function( name, fn ) {
	jQuery.fn[ name ] = function( until, selector ) {
		var matched = jQuery.map( this, fn, until );

		if ( name.slice( -5 ) !== "Until" ) {
			selector = until;
		}

		if ( selector && typeof selector === "string" ) {
			matched = jQuery.filter( selector, matched );
		}

		if ( this.length > 1 ) {

			// Remove duplicates
			if ( !guaranteedUnique[ name ] ) {
				jQuery.uniqueSort( matched );
			}

			// Reverse order for parents* and prev-derivatives
			if ( rparentsprev.test( name ) ) {
				matched.reverse();
			}
		}

		return this.pushStack( matched );
	};
} );
var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );



// Convert String-formatted options into Object-formatted ones
function createOptions( options ) {
	var object = {};
	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
		object[ flag ] = true;
	} );
	return object;
}

/*
 * Create a callback list using the following parameters:
 *
 *	options: an optional list of space-separated options that will change how
 *			the callback list behaves or a more traditional option object
 *
 * By default a callback list will act like an event callback list and can be
 * "fired" multiple times.
 *
 * Possible options:
 *
 *	once:			will ensure the callback list can only be fired once (like a Deferred)
 *
 *	memory:			will keep track of previous values and will call any callback added
 *					after the list has been fired right away with the latest "memorized"
 *					values (like a Deferred)
 *
 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
 *
 *	stopOnFalse:	interrupt callings when a callback returns false
 *
 */
jQuery.Callbacks = function( options ) {

	// Convert options from String-formatted to Object-formatted if needed
	// (we check in cache first)
	options = typeof options === "string" ?
		createOptions( options ) :
		jQuery.extend( {}, options );

	var // Flag to know if list is currently firing
		firing,

		// Last fire value for non-forgettable lists
		memory,

		// Flag to know if list was already fired
		fired,

		// Flag to prevent firing
		locked,

		// Actual callback list
		list = [],

		// Queue of execution data for repeatable lists
		queue = [],

		// Index of currently firing callback (modified by add/remove as needed)
		firingIndex = -1,

		// Fire callbacks
		fire = function() {

			// Enforce single-firing
			locked = locked || options.once;

			// Execute callbacks for all pending executions,
			// respecting firingIndex overrides and runtime changes
			fired = firing = true;
			for ( ; queue.length; firingIndex = -1 ) {
				memory = queue.shift();
				while ( ++firingIndex < list.length ) {

					// Run callback and check for early termination
					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
						options.stopOnFalse ) {

						// Jump to end and forget the data so .add doesn't re-fire
						firingIndex = list.length;
						memory = false;
					}
				}
			}

			// Forget the data if we're done with it
			if ( !options.memory ) {
				memory = false;
			}

			firing = false;

			// Clean up if we're done firing for good
			if ( locked ) {

				// Keep an empty list if we have data for future add calls
				if ( memory ) {
					list = [];

				// Otherwise, this object is spent
				} else {
					list = "";
				}
			}
		},

		// Actual Callbacks object
		self = {

			// Add a callback or a collection of callbacks to the list
			add: function() {
				if ( list ) {

					// If we have memory from a past run, we should fire after adding
					if ( memory && !firing ) {
						firingIndex = list.length - 1;
						queue.push( memory );
					}

					( function add( args ) {
						jQuery.each( args, function( _, arg ) {
							if ( isFunction( arg ) ) {
								if ( !options.unique || !self.has( arg ) ) {
									list.push( arg );
								}
							} else if ( arg && arg.length && toType( arg ) !== "string" ) {

								// Inspect recursively
								add( arg );
							}
						} );
					} )( arguments );

					if ( memory && !firing ) {
						fire();
					}
				}
				return this;
			},

			// Remove a callback from the list
			remove: function() {
				jQuery.each( arguments, function( _, arg ) {
					var index;
					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
						list.splice( index, 1 );

						// Handle firing indexes
						if ( index <= firingIndex ) {
							firingIndex--;
						}
					}
				} );
				return this;
			},

			// Check if a given callback is in the list.
			// If no argument is given, return whether or not list has callbacks attached.
			has: function( fn ) {
				return fn ?
					jQuery.inArray( fn, list ) > -1 :
					list.length > 0;
			},

			// Remove all callbacks from the list
			empty: function() {
				if ( list ) {
					list = [];
				}
				return this;
			},

			// Disable .fire and .add
			// Abort any current/pending executions
			// Clear all callbacks and values
			disable: function() {
				locked = queue = [];
				list = memory = "";
				return this;
			},
			disabled: function() {
				return !list;
			},

			// Disable .fire
			// Also disable .add unless we have memory (since it would have no effect)
			// Abort any pending executions
			lock: function() {
				locked = queue = [];
				if ( !memory && !firing ) {
					list = memory = "";
				}
				return this;
			},
			locked: function() {
				return !!locked;
			},

			// Call all callbacks with the given context and arguments
			fireWith: function( context, args ) {
				if ( !locked ) {
					args = args || [];
					args = [ context, args.slice ? args.slice() : args ];
					queue.push( args );
					if ( !firing ) {
						fire();
					}
				}
				return this;
			},

			// Call all the callbacks with the given arguments
			fire: function() {
				self.fireWith( this, arguments );
				return this;
			},

			// To know if the callbacks have already been called at least once
			fired: function() {
				return !!fired;
			}
		};

	return self;
};


function Identity( v ) {
	return v;
}
function Thrower( ex ) {
	throw ex;
}

function adoptValue( value, resolve, reject, noValue ) {
	var method;

	try {

		// Check for promise aspect first to privilege synchronous behavior
		if ( value && isFunction( ( method = value.promise ) ) ) {
			method.call( value ).done( resolve ).fail( reject );

		// Other thenables
		} else if ( value && isFunction( ( method = value.then ) ) ) {
			method.call( value, resolve, reject );

		// Other non-thenables
		} else {

			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
			// * false: [ value ].slice( 0 ) => resolve( value )
			// * true: [ value ].slice( 1 ) => resolve()
			resolve.apply( undefined, [ value ].slice( noValue ) );
		}

	// For Promises/A+, convert exceptions into rejections
	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
	// Deferred#then to conditionally suppress rejection.
	} catch ( value ) {

		// Support: Android 4.0 only
		// Strict mode functions invoked without .call/.apply get global-object context
		reject.apply( undefined, [ value ] );
	}
}

jQuery.extend( {

	Deferred: function( func ) {
		var tuples = [

				// action, add listener, callbacks,
				// ... .then handlers, argument index, [final state]
				[ "notify", "progress", jQuery.Callbacks( "memory" ),
					jQuery.Callbacks( "memory" ), 2 ],
				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
			],
			state = "pending",
			promise = {
				state: function() {
					return state;
				},
				always: function() {
					deferred.done( arguments ).fail( arguments );
					return this;
				},
				"catch": function( fn ) {
					return promise.then( null, fn );
				},

				// Keep pipe for back-compat
				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
					var fns = arguments;

					return jQuery.Deferred( function( newDefer ) {
						jQuery.each( tuples, function( _i, tuple ) {

							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];

							// deferred.progress(function() { bind to newDefer or newDefer.notify })
							// deferred.done(function() { bind to newDefer or newDefer.resolve })
							// deferred.fail(function() { bind to newDefer or newDefer.reject })
							deferred[ tuple[ 1 ] ]( function() {
								var returned = fn && fn.apply( this, arguments );
								if ( returned && isFunction( returned.promise ) ) {
									returned.promise()
										.progress( newDefer.notify )
										.done( newDefer.resolve )
										.fail( newDefer.reject );
								} else {
									newDefer[ tuple[ 0 ] + "With" ](
										this,
										fn ? [ returned ] : arguments
									);
								}
							} );
						} );
						fns = null;
					} ).promise();
				},
				then: function( onFulfilled, onRejected, onProgress ) {
					var maxDepth = 0;
					function resolve( depth, deferred, handler, special ) {
						return function() {
							var that = this,
								args = arguments,
								mightThrow = function() {
									var returned, then;

									// Support: Promises/A+ section 2.3.3.3.3
									// https://promisesaplus.com/#point-59
									// Ignore double-resolution attempts
									if ( depth < maxDepth ) {
										return;
									}

									returned = handler.apply( that, args );

									// Support: Promises/A+ section 2.3.1
									// https://promisesaplus.com/#point-48
									if ( returned === deferred.promise() ) {
										throw new TypeError( "Thenable self-resolution" );
									}

									// Support: Promises/A+ sections 2.3.3.1, 3.5
									// https://promisesaplus.com/#point-54
									// https://promisesaplus.com/#point-75
									// Retrieve `then` only once
									then = returned &&

										// Support: Promises/A+ section 2.3.4
										// https://promisesaplus.com/#point-64
										// Only check objects and functions for thenability
										( typeof returned === "object" ||
											typeof returned === "function" ) &&
										returned.then;

									// Handle a returned thenable
									if ( isFunction( then ) ) {

										// Special processors (notify) just wait for resolution
										if ( special ) {
											then.call(
												returned,
												resolve( maxDepth, deferred, Identity, special ),
												resolve( maxDepth, deferred, Thrower, special )
											);

										// Normal processors (resolve) also hook into progress
										} else {

											// ...and disregard older resolution values
											maxDepth++;

											then.call(
												returned,
												resolve( maxDepth, deferred, Identity, special ),
												resolve( maxDepth, deferred, Thrower, special ),
												resolve( maxDepth, deferred, Identity,
													deferred.notifyWith )
											);
										}

									// Handle all other returned values
									} else {

										// Only substitute handlers pass on context
										// and multiple values (non-spec behavior)
										if ( handler !== Identity ) {
											that = undefined;
											args = [ returned ];
										}

										// Process the value(s)
										// Default process is resolve
										( special || deferred.resolveWith )( that, args );
									}
								},

								// Only normal processors (resolve) catch and reject exceptions
								process = special ?
									mightThrow :
									function() {
										try {
											mightThrow();
										} catch ( e ) {

											if ( jQuery.Deferred.exceptionHook ) {
												jQuery.Deferred.exceptionHook( e,
													process.error );
											}

											// Support: Promises/A+ section 2.3.3.3.4.1
											// https://promisesaplus.com/#point-61
											// Ignore post-resolution exceptions
											if ( depth + 1 >= maxDepth ) {

												// Only substitute handlers pass on context
												// and multiple values (non-spec behavior)
												if ( handler !== Thrower ) {
													that = undefined;
													args = [ e ];
												}

												deferred.rejectWith( that, args );
											}
										}
									};

							// Support: Promises/A+ section 2.3.3.3.1
							// https://promisesaplus.com/#point-57
							// Re-resolve promises immediately to dodge false rejection from
							// subsequent errors
							if ( depth ) {
								process();
							} else {

								// Call an optional hook to record the error, in case of exception
								// since it's otherwise lost when execution goes async
								if ( jQuery.Deferred.getErrorHook ) {
									process.error = jQuery.Deferred.getErrorHook();

								// The deprecated alias of the above. While the name suggests
								// returning the stack, not an error instance, jQuery just passes
								// it directly to `console.warn` so both will work; an instance
								// just better cooperates with source maps.
								} else if ( jQuery.Deferred.getStackHook ) {
									process.error = jQuery.Deferred.getStackHook();
								}
								window.setTimeout( process );
							}
						};
					}

					return jQuery.Deferred( function( newDefer ) {

						// progress_handlers.add( ... )
						tuples[ 0 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onProgress ) ?
									onProgress :
									Identity,
								newDefer.notifyWith
							)
						);

						// fulfilled_handlers.add( ... )
						tuples[ 1 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onFulfilled ) ?
									onFulfilled :
									Identity
							)
						);

						// rejected_handlers.add( ... )
						tuples[ 2 ][ 3 ].add(
							resolve(
								0,
								newDefer,
								isFunction( onRejected ) ?
									onRejected :
									Thrower
							)
						);
					} ).promise();
				},

				// Get a promise for this deferred
				// If obj is provided, the promise aspect is added to the object
				promise: function( obj ) {
					return obj != null ? jQuery.extend( obj, promise ) : promise;
				}
			},
			deferred = {};

		// Add list-specific methods
		jQuery.each( tuples, function( i, tuple ) {
			var list = tuple[ 2 ],
				stateString = tuple[ 5 ];

			// promise.progress = list.add
			// promise.done = list.add
			// promise.fail = list.add
			promise[ tuple[ 1 ] ] = list.add;

			// Handle state
			if ( stateString ) {
				list.add(
					function() {

						// state = "resolved" (i.e., fulfilled)
						// state = "rejected"
						state = stateString;
					},

					// rejected_callbacks.disable
					// fulfilled_callbacks.disable
					tuples[ 3 - i ][ 2 ].disable,

					// rejected_handlers.disable
					// fulfilled_handlers.disable
					tuples[ 3 - i ][ 3 ].disable,

					// progress_callbacks.lock
					tuples[ 0 ][ 2 ].lock,

					// progress_handlers.lock
					tuples[ 0 ][ 3 ].lock
				);
			}

			// progress_handlers.fire
			// fulfilled_handlers.fire
			// rejected_handlers.fire
			list.add( tuple[ 3 ].fire );

			// deferred.notify = function() { deferred.notifyWith(...) }
			// deferred.resolve = function() { deferred.resolveWith(...) }
			// deferred.reject = function() { deferred.rejectWith(...) }
			deferred[ tuple[ 0 ] ] = function() {
				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
				return this;
			};

			// deferred.notifyWith = list.fireWith
			// deferred.resolveWith = list.fireWith
			// deferred.rejectWith = list.fireWith
			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
		} );

		// Make the deferred a promise
		promise.promise( deferred );

		// Call given func if any
		if ( func ) {
			func.call( deferred, deferred );
		}

		// All done!
		return deferred;
	},

	// Deferred helper
	when: function( singleValue ) {
		var

			// count of uncompleted subordinates
			remaining = arguments.length,

			// count of unprocessed arguments
			i = remaining,

			// subordinate fulfillment data
			resolveContexts = Array( i ),
			resolveValues = slice.call( arguments ),

			// the primary Deferred
			primary = jQuery.Deferred(),

			// subordinate callback factory
			updateFunc = function( i ) {
				return function( value ) {
					resolveContexts[ i ] = this;
					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
					if ( !( --remaining ) ) {
						primary.resolveWith( resolveContexts, resolveValues );
					}
				};
			};

		// Single- and empty arguments are adopted like Promise.resolve
		if ( remaining <= 1 ) {
			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
				!remaining );

			// Use .then() to unwrap secondary thenables (cf. gh-3000)
			if ( primary.state() === "pending" ||
				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {

				return primary.then();
			}
		}

		// Multiple arguments are aggregated like Promise.all array elements
		while ( i-- ) {
			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
		}

		return primary.promise();
	}
} );


// These usually indicate a programmer mistake during development,
// warn about them ASAP rather than swallowing them by default.
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;

// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
// captured before the async barrier to get the original error cause
// which may otherwise be hidden.
jQuery.Deferred.exceptionHook = function( error, asyncError ) {

	// Support: IE 8 - 9 only
	// Console exists when dev tools are open, which can happen at any time
	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
		window.console.warn( "jQuery.Deferred exception: " + error.message,
			error.stack, asyncError );
	}
};




jQuery.readyException = function( error ) {
	window.setTimeout( function() {
		throw error;
	} );
};




// The deferred used on DOM ready
var readyList = jQuery.Deferred();

jQuery.fn.ready = function( fn ) {

	readyList
		.then( fn )

		// Wrap jQuery.readyException in a function so that the lookup
		// happens at the time of error handling instead of callback
		// registration.
		.catch( function( error ) {
			jQuery.readyException( error );
		} );

	return this;
};

jQuery.extend( {

	// Is the DOM ready to be used? Set to true once it occurs.
	isReady: false,

	// A counter to track how many items to wait for before
	// the ready event fires. See trac-6781
	readyWait: 1,

	// Handle when the DOM is ready
	ready: function( wait ) {

		// Abort if there are pending holds or we're already ready
		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
			return;
		}

		// Remember that the DOM is ready
		jQuery.isReady = true;

		// If a normal DOM Ready event fired, decrement, and wait if need be
		if ( wait !== true && --jQuery.readyWait > 0 ) {
			return;
		}

		// If there are functions bound, to execute
		readyList.resolveWith( document, [ jQuery ] );
	}
} );

jQuery.ready.then = readyList.then;

// The ready event handler and self cleanup method
function completed() {
	document.removeEventListener( "DOMContentLoaded", completed );
	window.removeEventListener( "load", completed );
	jQuery.ready();
}

// Catch cases where $(document).ready() is called
// after the browser event has already occurred.
// Support: IE <=9 - 10 only
// Older IE sometimes signals "interactive" too soon
if ( document.readyState === "complete" ||
	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {

	// Handle it asynchronously to allow scripts the opportunity to delay ready
	window.setTimeout( jQuery.ready );

} else {

	// Use the handy event callback
	document.addEventListener( "DOMContentLoaded", completed );

	// A fallback to window.onload, that will always work
	window.addEventListener( "load", completed );
}




// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
	var i = 0,
		len = elems.length,
		bulk = key == null;

	// Sets many values
	if ( toType( key ) === "object" ) {
		chainable = true;
		for ( i in key ) {
			access( elems, fn, i, key[ i ], true, emptyGet, raw );
		}

	// Sets one value
	} else if ( value !== undefined ) {
		chainable = true;

		if ( !isFunction( value ) ) {
			raw = true;
		}

		if ( bulk ) {

			// Bulk operations run against the entire set
			if ( raw ) {
				fn.call( elems, value );
				fn = null;

			// ...except when executing function values
			} else {
				bulk = fn;
				fn = function( elem, _key, value ) {
					return bulk.call( jQuery( elem ), value );
				};
			}
		}

		if ( fn ) {
			for ( ; i < len; i++ ) {
				fn(
					elems[ i ], key, raw ?
						value :
						value.call( elems[ i ], i, fn( elems[ i ], key ) )
				);
			}
		}
	}

	if ( chainable ) {
		return elems;
	}

	// Gets
	if ( bulk ) {
		return fn.call( elems );
	}

	return len ? fn( elems[ 0 ], key ) : emptyGet;
};


// Matches dashed string for camelizing
var rmsPrefix = /^-ms-/,
	rdashAlpha = /-([a-z])/g;

// Used by camelCase as callback to replace()
function fcamelCase( _all, letter ) {
	return letter.toUpperCase();
}

// Convert dashed to camelCase; used by the css and data modules
// Support: IE <=9 - 11, Edge 12 - 15
// Microsoft forgot to hump their vendor prefix (trac-9572)
function camelCase( string ) {
	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}
var acceptData = function( owner ) {

	// Accepts only:
	//  - Node
	//    - Node.ELEMENT_NODE
	//    - Node.DOCUMENT_NODE
	//  - Object
	//    - Any
	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
};




function Data() {
	this.expando = jQuery.expando + Data.uid++;
}

Data.uid = 1;

Data.prototype = {

	cache: function( owner ) {

		// Check if the owner object already has a cache
		var value = owner[ this.expando ];

		// If not, create one
		if ( !value ) {
			value = {};

			// We can accept data for non-element nodes in modern browsers,
			// but we should not, see trac-8335.
			// Always return an empty object.
			if ( acceptData( owner ) ) {

				// If it is a node unlikely to be stringify-ed or looped over
				// use plain assignment
				if ( owner.nodeType ) {
					owner[ this.expando ] = value;

				// Otherwise secure it in a non-enumerable property
				// configurable must be true to allow the property to be
				// deleted when data is removed
				} else {
					Object.defineProperty( owner, this.expando, {
						value: value,
						configurable: true
					} );
				}
			}
		}

		return value;
	},
	set: function( owner, data, value ) {
		var prop,
			cache = this.cache( owner );

		// Handle: [ owner, key, value ] args
		// Always use camelCase key (gh-2257)
		if ( typeof data === "string" ) {
			cache[ camelCase( data ) ] = value;

		// Handle: [ owner, { properties } ] args
		} else {

			// Copy the properties one-by-one to the cache object
			for ( prop in data ) {
				cache[ camelCase( prop ) ] = data[ prop ];
			}
		}
		return cache;
	},
	get: function( owner, key ) {
		return key === undefined ?
			this.cache( owner ) :

			// Always use camelCase key (gh-2257)
			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
	},
	access: function( owner, key, value ) {

		// In cases where either:
		//
		//   1. No key was specified
		//   2. A string key was specified, but no value provided
		//
		// Take the "read" path and allow the get method to determine
		// which value to return, respectively either:
		//
		//   1. The entire cache object
		//   2. The data stored at the key
		//
		if ( key === undefined ||
				( ( key && typeof key === "string" ) && value === undefined ) ) {

			return this.get( owner, key );
		}

		// When the key is not a string, or both a key and value
		// are specified, set or extend (existing objects) with either:
		//
		//   1. An object of properties
		//   2. A key and value
		//
		this.set( owner, key, value );

		// Since the "set" path can have two possible entry points
		// return the expected data based on which path was taken[*]
		return value !== undefined ? value : key;
	},
	remove: function( owner, key ) {
		var i,
			cache = owner[ this.expando ];

		if ( cache === undefined ) {
			return;
		}

		if ( key !== undefined ) {

			// Support array or space separated string of keys
			if ( Array.isArray( key ) ) {

				// If key is an array of keys...
				// We always set camelCase keys, so remove that.
				key = key.map( camelCase );
			} else {
				key = camelCase( key );

				// If a key with the spaces exists, use it.
				// Otherwise, create an array by matching non-whitespace
				key = key in cache ?
					[ key ] :
					( key.match( rnothtmlwhite ) || [] );
			}

			i = key.length;

			while ( i-- ) {
				delete cache[ key[ i ] ];
			}
		}

		// Remove the expando if there's no more data
		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {

			// Support: Chrome <=35 - 45
			// Webkit & Blink performance suffers when deleting properties
			// from DOM nodes, so set to undefined instead
			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
			if ( owner.nodeType ) {
				owner[ this.expando ] = undefined;
			} else {
				delete owner[ this.expando ];
			}
		}
	},
	hasData: function( owner ) {
		var cache = owner[ this.expando ];
		return cache !== undefined && !jQuery.isEmptyObject( cache );
	}
};
var dataPriv = new Data();

var dataUser = new Data();



//	Implementation Summary
//
//	1. Enforce API surface and semantic compatibility with 1.9.x branch
//	2. Improve the module's maintainability by reducing the storage
//		paths to a single mechanism.
//	3. Use the same single mechanism to support "private" and "user" data.
//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
//	5. Avoid exposing implementation details on user objects (eg. expando properties)
//	6. Provide a clear path for implementation upgrade to WeakMap in 2014

var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
	rmultiDash = /[A-Z]/g;

function getData( data ) {
	if ( data === "true" ) {
		return true;
	}

	if ( data === "false" ) {
		return false;
	}

	if ( data === "null" ) {
		return null;
	}

	// Only convert to a number if it doesn't change the string
	if ( data === +data + "" ) {
		return +data;
	}

	if ( rbrace.test( data ) ) {
		return JSON.parse( data );
	}

	return data;
}

function dataAttr( elem, key, data ) {
	var name;

	// If nothing was found internally, try to fetch any
	// data from the HTML5 data-* attribute
	if ( data === undefined && elem.nodeType === 1 ) {
		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
		data = elem.getAttribute( name );

		if ( typeof data === "string" ) {
			try {
				data = getData( data );
			} catch ( e ) {}

			// Make sure we set the data so it isn't changed later
			dataUser.set( elem, key, data );
		} else {
			data = undefined;
		}
	}
	return data;
}

jQuery.extend( {
	hasData: function( elem ) {
		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
	},

	data: function( elem, name, data ) {
		return dataUser.access( elem, name, data );
	},

	removeData: function( elem, name ) {
		dataUser.remove( elem, name );
	},

	// TODO: Now that all calls to _data and _removeData have been replaced
	// with direct calls to dataPriv methods, these can be deprecated.
	_data: function( elem, name, data ) {
		return dataPriv.access( elem, name, data );
	},

	_removeData: function( elem, name ) {
		dataPriv.remove( elem, name );
	}
} );

jQuery.fn.extend( {
	data: function( key, value ) {
		var i, name, data,
			elem = this[ 0 ],
			attrs = elem && elem.attributes;

		// Gets all values
		if ( key === undefined ) {
			if ( this.length ) {
				data = dataUser.get( elem );

				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
					i = attrs.length;
					while ( i-- ) {

						// Support: IE 11 only
						// The attrs elements can be null (trac-14894)
						if ( attrs[ i ] ) {
							name = attrs[ i ].name;
							if ( name.indexOf( "data-" ) === 0 ) {
								name = camelCase( name.slice( 5 ) );
								dataAttr( elem, name, data[ name ] );
							}
						}
					}
					dataPriv.set( elem, "hasDataAttrs", true );
				}
			}

			return data;
		}

		// Sets multiple values
		if ( typeof key === "object" ) {
			return this.each( function() {
				dataUser.set( this, key );
			} );
		}

		return access( this, function( value ) {
			var data;

			// The calling jQuery object (element matches) is not empty
			// (and therefore has an element appears at this[ 0 ]) and the
			// `value` parameter was not undefined. An empty jQuery object
			// will result in `undefined` for elem = this[ 0 ] which will
			// throw an exception if an attempt to read a data cache is made.
			if ( elem && value === undefined ) {

				// Attempt to get data from the cache
				// The key will always be camelCased in Data
				data = dataUser.get( elem, key );
				if ( data !== undefined ) {
					return data;
				}

				// Attempt to "discover" the data in
				// HTML5 custom data-* attrs
				data = dataAttr( elem, key );
				if ( data !== undefined ) {
					return data;
				}

				// We tried really hard, but the data doesn't exist.
				return;
			}

			// Set the data...
			this.each( function() {

				// We always store the camelCased key
				dataUser.set( this, key, value );
			} );
		}, null, value, arguments.length > 1, null, true );
	},

	removeData: function( key ) {
		return this.each( function() {
			dataUser.remove( this, key );
		} );
	}
} );


jQuery.extend( {
	queue: function( elem, type, data ) {
		var queue;

		if ( elem ) {
			type = ( type || "fx" ) + "queue";
			queue = dataPriv.get( elem, type );

			// Speed up dequeue by getting out quickly if this is just a lookup
			if ( data ) {
				if ( !queue || Array.isArray( data ) ) {
					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
				} else {
					queue.push( data );
				}
			}
			return queue || [];
		}
	},

	dequeue: function( elem, type ) {
		type = type || "fx";

		var queue = jQuery.queue( elem, type ),
			startLength = queue.length,
			fn = queue.shift(),
			hooks = jQuery._queueHooks( elem, type ),
			next = function() {
				jQuery.dequeue( elem, type );
			};

		// If the fx queue is dequeued, always remove the progress sentinel
		if ( fn === "inprogress" ) {
			fn = queue.shift();
			startLength--;
		}

		if ( fn ) {

			// Add a progress sentinel to prevent the fx queue from being
			// automatically dequeued
			if ( type === "fx" ) {
				queue.unshift( "inprogress" );
			}

			// Clear up the last queue stop function
			delete hooks.stop;
			fn.call( elem, next, hooks );
		}

		if ( !startLength && hooks ) {
			hooks.empty.fire();
		}
	},

	// Not public - generate a queueHooks object, or return the current one
	_queueHooks: function( elem, type ) {
		var key = type + "queueHooks";
		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
			empty: jQuery.Callbacks( "once memory" ).add( function() {
				dataPriv.remove( elem, [ type + "queue", key ] );
			} )
		} );
	}
} );

jQuery.fn.extend( {
	queue: function( type, data ) {
		var setter = 2;

		if ( typeof type !== "string" ) {
			data = type;
			type = "fx";
			setter--;
		}

		if ( arguments.length < setter ) {
			return jQuery.queue( this[ 0 ], type );
		}

		return data === undefined ?
			this :
			this.each( function() {
				var queue = jQuery.queue( this, type, data );

				// Ensure a hooks for this queue
				jQuery._queueHooks( this, type );

				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
					jQuery.dequeue( this, type );
				}
			} );
	},
	dequeue: function( type ) {
		return this.each( function() {
			jQuery.dequeue( this, type );
		} );
	},
	clearQueue: function( type ) {
		return this.queue( type || "fx", [] );
	},

	// Get a promise resolved when queues of a certain type
	// are emptied (fx is the type by default)
	promise: function( type, obj ) {
		var tmp,
			count = 1,
			defer = jQuery.Deferred(),
			elements = this,
			i = this.length,
			resolve = function() {
				if ( !( --count ) ) {
					defer.resolveWith( elements, [ elements ] );
				}
			};

		if ( typeof type !== "string" ) {
			obj = type;
			type = undefined;
		}
		type = type || "fx";

		while ( i-- ) {
			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
			if ( tmp && tmp.empty ) {
				count++;
				tmp.empty.add( resolve );
			}
		}
		resolve();
		return defer.promise( obj );
	}
} );
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;

var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );


var cssExpand = [ "Top", "Right", "Bottom", "Left" ];

var documentElement = document.documentElement;



	var isAttached = function( elem ) {
			return jQuery.contains( elem.ownerDocument, elem );
		},
		composed = { composed: true };

	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
	// Check attachment across shadow DOM boundaries when possible (gh-3504)
	// Support: iOS 10.0-10.2 only
	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
	// leading to errors. We need to check for `getRootNode`.
	if ( documentElement.getRootNode ) {
		isAttached = function( elem ) {
			return jQuery.contains( elem.ownerDocument, elem ) ||
				elem.getRootNode( composed ) === elem.ownerDocument;
		};
	}
var isHiddenWithinTree = function( elem, el ) {

		// isHiddenWithinTree might be called from jQuery#filter function;
		// in that case, element will be second argument
		elem = el || elem;

		// Inline style trumps all
		return elem.style.display === "none" ||
			elem.style.display === "" &&

			// Otherwise, check computed style
			// Support: Firefox <=43 - 45
			// Disconnected elements can have computed display: none, so first confirm that elem is
			// in the document.
			isAttached( elem ) &&

			jQuery.css( elem, "display" ) === "none";
	};



function adjustCSS( elem, prop, valueParts, tween ) {
	var adjusted, scale,
		maxIterations = 20,
		currentValue = tween ?
			function() {
				return tween.cur();
			} :
			function() {
				return jQuery.css( elem, prop, "" );
			},
		initial = currentValue(),
		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),

		// Starting value computation is required for potential unit mismatches
		initialInUnit = elem.nodeType &&
			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
			rcssNum.exec( jQuery.css( elem, prop ) );

	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {

		// Support: Firefox <=54
		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
		initial = initial / 2;

		// Trust units reported by jQuery.css
		unit = unit || initialInUnit[ 3 ];

		// Iteratively approximate from a nonzero starting point
		initialInUnit = +initial || 1;

		while ( maxIterations-- ) {

			// Evaluate and update our best guess (doubling guesses that zero out).
			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
			jQuery.style( elem, prop, initialInUnit + unit );
			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
				maxIterations = 0;
			}
			initialInUnit = initialInUnit / scale;

		}

		initialInUnit = initialInUnit * 2;
		jQuery.style( elem, prop, initialInUnit + unit );

		// Make sure we update the tween properties later on
		valueParts = valueParts || [];
	}

	if ( valueParts ) {
		initialInUnit = +initialInUnit || +initial || 0;

		// Apply relative offset (+=/-=) if specified
		adjusted = valueParts[ 1 ] ?
			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
			+valueParts[ 2 ];
		if ( tween ) {
			tween.unit = unit;
			tween.start = initialInUnit;
			tween.end = adjusted;
		}
	}
	return adjusted;
}


var defaultDisplayMap = {};

function getDefaultDisplay( elem ) {
	var temp,
		doc = elem.ownerDocument,
		nodeName = elem.nodeName,
		display = defaultDisplayMap[ nodeName ];

	if ( display ) {
		return display;
	}

	temp = doc.body.appendChild( doc.createElement( nodeName ) );
	display = jQuery.css( temp, "display" );

	temp.parentNode.removeChild( temp );

	if ( display === "none" ) {
		display = "block";
	}
	defaultDisplayMap[ nodeName ] = display;

	return display;
}

function showHide( elements, show ) {
	var display, elem,
		values = [],
		index = 0,
		length = elements.length;

	// Determine new display value for elements that need to change
	for ( ; index < length; index++ ) {
		elem = elements[ index ];
		if ( !elem.style ) {
			continue;
		}

		display = elem.style.display;
		if ( show ) {

			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
			// check is required in this first loop unless we have a nonempty display value (either
			// inline or about-to-be-restored)
			if ( display === "none" ) {
				values[ index ] = dataPriv.get( elem, "display" ) || null;
				if ( !values[ index ] ) {
					elem.style.display = "";
				}
			}
			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
				values[ index ] = getDefaultDisplay( elem );
			}
		} else {
			if ( display !== "none" ) {
				values[ index ] = "none";

				// Remember what we're overwriting
				dataPriv.set( elem, "display", display );
			}
		}
	}

	// Set the display of the elements in a second loop to avoid constant reflow
	for ( index = 0; index < length; index++ ) {
		if ( values[ index ] != null ) {
			elements[ index ].style.display = values[ index ];
		}
	}

	return elements;
}

jQuery.fn.extend( {
	show: function() {
		return showHide( this, true );
	},
	hide: function() {
		return showHide( this );
	},
	toggle: function( state ) {
		if ( typeof state === "boolean" ) {
			return state ? this.show() : this.hide();
		}

		return this.each( function() {
			if ( isHiddenWithinTree( this ) ) {
				jQuery( this ).show();
			} else {
				jQuery( this ).hide();
			}
		} );
	}
} );
var rcheckableType = ( /^(?:checkbox|radio)$/i );

var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );

var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );



( function() {
	var fragment = document.createDocumentFragment(),
		div = fragment.appendChild( document.createElement( "div" ) ),
		input = document.createElement( "input" );

	// Support: Android 4.0 - 4.3 only
	// Check state lost if the name is set (trac-11217)
	// Support: Windows Web Apps (WWA)
	// `name` and `type` must use .setAttribute for WWA (trac-14901)
	input.setAttribute( "type", "radio" );
	input.setAttribute( "checked", "checked" );
	input.setAttribute( "name", "t" );

	div.appendChild( input );

	// Support: Android <=4.1 only
	// Older WebKit doesn't clone checked state correctly in fragments
	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;

	// Support: IE <=11 only
	// Make sure textarea (and checkbox) defaultValue is properly cloned
	div.innerHTML = "<textarea>x</textarea>";
	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;

	// Support: IE <=9 only
	// IE <=9 replaces <option> tags with their contents when inserted outside of
	// the select element.
	div.innerHTML = "<option></option>";
	support.option = !!div.lastChild;
} )();


// We have to close these tags to support XHTML (trac-13200)
var wrapMap = {

	// XHTML parsers do not magically insert elements in the
	// same way that tag soup parsers do. So we cannot shorten
	// this by omitting <tbody> or other required elements.
	thead: [ 1, "<table>", "</table>" ],
	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],

	_default: [ 0, "", "" ]
};

wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
wrapMap.th = wrapMap.td;

// Support: IE <=9 only
if ( !support.option ) {
	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
}


function getAll( context, tag ) {

	// Support: IE <=9 - 11 only
	// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
	var ret;

	if ( typeof context.getElementsByTagName !== "undefined" ) {
		ret = context.getElementsByTagName( tag || "*" );

	} else if ( typeof context.querySelectorAll !== "undefined" ) {
		ret = context.querySelectorAll( tag || "*" );

	} else {
		ret = [];
	}

	if ( tag === undefined || tag && nodeName( context, tag ) ) {
		return jQuery.merge( [ context ], ret );
	}

	return ret;
}


// Mark scripts as having already been evaluated
function setGlobalEval( elems, refElements ) {
	var i = 0,
		l = elems.length;

	for ( ; i < l; i++ ) {
		dataPriv.set(
			elems[ i ],
			"globalEval",
			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
		);
	}
}


var rhtml = /<|&#?\w+;/;

function buildFragment( elems, context, scripts, selection, ignored ) {
	var elem, tmp, tag, wrap, attached, j,
		fragment = context.createDocumentFragment(),
		nodes = [],
		i = 0,
		l = elems.length;

	for ( ; i < l; i++ ) {
		elem = elems[ i ];

		if ( elem || elem === 0 ) {

			// Add nodes directly
			if ( toType( elem ) === "object" ) {

				// Support: Android <=4.0 only, PhantomJS 1 only
				// push.apply(_, arraylike) throws on ancient WebKit
				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );

			// Convert non-html into a text node
			} else if ( !rhtml.test( elem ) ) {
				nodes.push( context.createTextNode( elem ) );

			// Convert html into DOM nodes
			} else {
				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );

				// Deserialize a standard representation
				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
				wrap = wrapMap[ tag ] || wrapMap._default;
				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];

				// Descend through wrappers to the right content
				j = wrap[ 0 ];
				while ( j-- ) {
					tmp = tmp.lastChild;
				}

				// Support: Android <=4.0 only, PhantomJS 1 only
				// push.apply(_, arraylike) throws on ancient WebKit
				jQuery.merge( nodes, tmp.childNodes );

				// Remember the top-level container
				tmp = fragment.firstChild;

				// Ensure the created nodes are orphaned (trac-12392)
				tmp.textContent = "";
			}
		}
	}

	// Remove wrapper from fragment
	fragment.textContent = "";

	i = 0;
	while ( ( elem = nodes[ i++ ] ) ) {

		// Skip elements already in the context collection (trac-4087)
		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
			if ( ignored ) {
				ignored.push( elem );
			}
			continue;
		}

		attached = isAttached( elem );

		// Append to fragment
		tmp = getAll( fragment.appendChild( elem ), "script" );

		// Preserve script evaluation history
		if ( attached ) {
			setGlobalEval( tmp );
		}

		// Capture executables
		if ( scripts ) {
			j = 0;
			while ( ( elem = tmp[ j++ ] ) ) {
				if ( rscriptType.test( elem.type || "" ) ) {
					scripts.push( elem );
				}
			}
		}
	}

	return fragment;
}


var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;

function returnTrue() {
	return true;
}

function returnFalse() {
	return false;
}

function on( elem, types, selector, data, fn, one ) {
	var origFn, type;

	// Types can be a map of types/handlers
	if ( typeof types === "object" ) {

		// ( types-Object, selector, data )
		if ( typeof selector !== "string" ) {

			// ( types-Object, data )
			data = data || selector;
			selector = undefined;
		}
		for ( type in types ) {
			on( elem, type, selector, data, types[ type ], one );
		}
		return elem;
	}

	if ( data == null && fn == null ) {

		// ( types, fn )
		fn = selector;
		data = selector = undefined;
	} else if ( fn == null ) {
		if ( typeof selector === "string" ) {

			// ( types, selector, fn )
			fn = data;
			data = undefined;
		} else {

			// ( types, data, fn )
			fn = data;
			data = selector;
			selector = undefined;
		}
	}
	if ( fn === false ) {
		fn = returnFalse;
	} else if ( !fn ) {
		return elem;
	}

	if ( one === 1 ) {
		origFn = fn;
		fn = function( event ) {

			// Can use an empty set, since event contains the info
			jQuery().off( event );
			return origFn.apply( this, arguments );
		};

		// Use same guid so caller can remove using origFn
		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
	}
	return elem.each( function() {
		jQuery.event.add( this, types, fn, data, selector );
	} );
}

/*
 * Helper functions for managing events -- not part of the public interface.
 * Props to Dean Edwards' addEvent library for many of the ideas.
 */
jQuery.event = {

	global: {},

	add: function( elem, types, handler, data, selector ) {

		var handleObjIn, eventHandle, tmp,
			events, t, handleObj,
			special, handlers, type, namespaces, origType,
			elemData = dataPriv.get( elem );

		// Only attach events to objects that accept data
		if ( !acceptData( elem ) ) {
			return;
		}

		// Caller can pass in an object of custom data in lieu of the handler
		if ( handler.handler ) {
			handleObjIn = handler;
			handler = handleObjIn.handler;
			selector = handleObjIn.selector;
		}

		// Ensure that invalid selectors throw exceptions at attach time
		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
		if ( selector ) {
			jQuery.find.matchesSelector( documentElement, selector );
		}

		// Make sure that the handler has a unique ID, used to find/remove it later
		if ( !handler.guid ) {
			handler.guid = jQuery.guid++;
		}

		// Init the element's event structure and main handler, if this is the first
		if ( !( events = elemData.events ) ) {
			events = elemData.events = Object.create( null );
		}
		if ( !( eventHandle = elemData.handle ) ) {
			eventHandle = elemData.handle = function( e ) {

				// Discard the second event of a jQuery.event.trigger() and
				// when an event is called after a page has unloaded
				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
			};
		}

		// Handle multiple events separated by a space
		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
		t = types.length;
		while ( t-- ) {
			tmp = rtypenamespace.exec( types[ t ] ) || [];
			type = origType = tmp[ 1 ];
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();

			// There *must* be a type, no attaching namespace-only handlers
			if ( !type ) {
				continue;
			}

			// If event changes its type, use the special event handlers for the changed type
			special = jQuery.event.special[ type ] || {};

			// If selector defined, determine special event api type, otherwise given type
			type = ( selector ? special.delegateType : special.bindType ) || type;

			// Update special based on newly reset type
			special = jQuery.event.special[ type ] || {};

			// handleObj is passed to all event handlers
			handleObj = jQuery.extend( {
				type: type,
				origType: origType,
				data: data,
				handler: handler,
				guid: handler.guid,
				selector: selector,
				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
				namespace: namespaces.join( "." )
			}, handleObjIn );

			// Init the event handler queue if we're the first
			if ( !( handlers = events[ type ] ) ) {
				handlers = events[ type ] = [];
				handlers.delegateCount = 0;

				// Only use addEventListener if the special events handler returns false
				if ( !special.setup ||
					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {

					if ( elem.addEventListener ) {
						elem.addEventListener( type, eventHandle );
					}
				}
			}

			if ( special.add ) {
				special.add.call( elem, handleObj );

				if ( !handleObj.handler.guid ) {
					handleObj.handler.guid = handler.guid;
				}
			}

			// Add to the element's handler list, delegates in front
			if ( selector ) {
				handlers.splice( handlers.delegateCount++, 0, handleObj );
			} else {
				handlers.push( handleObj );
			}

			// Keep track of which events have ever been used, for event optimization
			jQuery.event.global[ type ] = true;
		}

	},

	// Detach an event or set of events from an element
	remove: function( elem, types, handler, selector, mappedTypes ) {

		var j, origCount, tmp,
			events, t, handleObj,
			special, handlers, type, namespaces, origType,
			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );

		if ( !elemData || !( events = elemData.events ) ) {
			return;
		}

		// Once for each type.namespace in types; type may be omitted
		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
		t = types.length;
		while ( t-- ) {
			tmp = rtypenamespace.exec( types[ t ] ) || [];
			type = origType = tmp[ 1 ];
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();

			// Unbind all events (on this namespace, if provided) for the element
			if ( !type ) {
				for ( type in events ) {
					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
				}
				continue;
			}

			special = jQuery.event.special[ type ] || {};
			type = ( selector ? special.delegateType : special.bindType ) || type;
			handlers = events[ type ] || [];
			tmp = tmp[ 2 ] &&
				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );

			// Remove matching events
			origCount = j = handlers.length;
			while ( j-- ) {
				handleObj = handlers[ j ];

				if ( ( mappedTypes || origType === handleObj.origType ) &&
					( !handler || handler.guid === handleObj.guid ) &&
					( !tmp || tmp.test( handleObj.namespace ) ) &&
					( !selector || selector === handleObj.selector ||
						selector === "**" && handleObj.selector ) ) {
					handlers.splice( j, 1 );

					if ( handleObj.selector ) {
						handlers.delegateCount--;
					}
					if ( special.remove ) {
						special.remove.call( elem, handleObj );
					}
				}
			}

			// Remove generic event handler if we removed something and no more handlers exist
			// (avoids potential for endless recursion during removal of special event handlers)
			if ( origCount && !handlers.length ) {
				if ( !special.teardown ||
					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {

					jQuery.removeEvent( elem, type, elemData.handle );
				}

				delete events[ type ];
			}
		}

		// Remove data and the expando if it's no longer used
		if ( jQuery.isEmptyObject( events ) ) {
			dataPriv.remove( elem, "handle events" );
		}
	},

	dispatch: function( nativeEvent ) {

		var i, j, ret, matched, handleObj, handlerQueue,
			args = new Array( arguments.length ),

			// Make a writable jQuery.Event from the native event object
			event = jQuery.event.fix( nativeEvent ),

			handlers = (
				dataPriv.get( this, "events" ) || Object.create( null )
			)[ event.type ] || [],
			special = jQuery.event.special[ event.type ] || {};

		// Use the fix-ed jQuery.Event rather than the (read-only) native event
		args[ 0 ] = event;

		for ( i = 1; i < arguments.length; i++ ) {
			args[ i ] = arguments[ i ];
		}

		event.delegateTarget = this;

		// Call the preDispatch hook for the mapped type, and let it bail if desired
		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
			return;
		}

		// Determine handlers
		handlerQueue = jQuery.event.handlers.call( this, event, handlers );

		// Run delegates first; they may want to stop propagation beneath us
		i = 0;
		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
			event.currentTarget = matched.elem;

			j = 0;
			while ( ( handleObj = matched.handlers[ j++ ] ) &&
				!event.isImmediatePropagationStopped() ) {

				// If the event is namespaced, then each handler is only invoked if it is
				// specially universal or its namespaces are a superset of the event's.
				if ( !event.rnamespace || handleObj.namespace === false ||
					event.rnamespace.test( handleObj.namespace ) ) {

					event.handleObj = handleObj;
					event.data = handleObj.data;

					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
						handleObj.handler ).apply( matched.elem, args );

					if ( ret !== undefined ) {
						if ( ( event.result = ret ) === false ) {
							event.preventDefault();
							event.stopPropagation();
						}
					}
				}
			}
		}

		// Call the postDispatch hook for the mapped type
		if ( special.postDispatch ) {
			special.postDispatch.call( this, event );
		}

		return event.result;
	},

	handlers: function( event, handlers ) {
		var i, handleObj, sel, matchedHandlers, matchedSelectors,
			handlerQueue = [],
			delegateCount = handlers.delegateCount,
			cur = event.target;

		// Find delegate handlers
		if ( delegateCount &&

			// Support: IE <=9
			// Black-hole SVG <use> instance trees (trac-13180)
			cur.nodeType &&

			// Support: Firefox <=42
			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
			// Support: IE 11 only
			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
			!( event.type === "click" && event.button >= 1 ) ) {

			for ( ; cur !== this; cur = cur.parentNode || this ) {

				// Don't check non-elements (trac-13208)
				// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
					matchedHandlers = [];
					matchedSelectors = {};
					for ( i = 0; i < delegateCount; i++ ) {
						handleObj = handlers[ i ];

						// Don't conflict with Object.prototype properties (trac-13203)
						sel = handleObj.selector + " ";

						if ( matchedSelectors[ sel ] === undefined ) {
							matchedSelectors[ sel ] = handleObj.needsContext ?
								jQuery( sel, this ).index( cur ) > -1 :
								jQuery.find( sel, this, null, [ cur ] ).length;
						}
						if ( matchedSelectors[ sel ] ) {
							matchedHandlers.push( handleObj );
						}
					}
					if ( matchedHandlers.length ) {
						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
					}
				}
			}
		}

		// Add the remaining (directly-bound) handlers
		cur = this;
		if ( delegateCount < handlers.length ) {
			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
		}

		return handlerQueue;
	},

	addProp: function( name, hook ) {
		Object.defineProperty( jQuery.Event.prototype, name, {
			enumerable: true,
			configurable: true,

			get: isFunction( hook ) ?
				function() {
					if ( this.originalEvent ) {
						return hook( this.originalEvent );
					}
				} :
				function() {
					if ( this.originalEvent ) {
						return this.originalEvent[ name ];
					}
				},

			set: function( value ) {
				Object.defineProperty( this, name, {
					enumerable: true,
					configurable: true,
					writable: true,
					value: value
				} );
			}
		} );
	},

	fix: function( originalEvent ) {
		return originalEvent[ jQuery.expando ] ?
			originalEvent :
			new jQuery.Event( originalEvent );
	},

	special: {
		load: {

			// Prevent triggered image.load events from bubbling to window.load
			noBubble: true
		},
		click: {

			// Utilize native event to ensure correct state for checkable inputs
			setup: function( data ) {

				// For mutual compressibility with _default, replace `this` access with a local var.
				// `|| data` is dead code meant only to preserve the variable through minification.
				var el = this || data;

				// Claim the first handler
				if ( rcheckableType.test( el.type ) &&
					el.click && nodeName( el, "input" ) ) {

					// dataPriv.set( el, "click", ... )
					leverageNative( el, "click", true );
				}

				// Return false to allow normal processing in the caller
				return false;
			},
			trigger: function( data ) {

				// For mutual compressibility with _default, replace `this` access with a local var.
				// `|| data` is dead code meant only to preserve the variable through minification.
				var el = this || data;

				// Force setup before triggering a click
				if ( rcheckableType.test( el.type ) &&
					el.click && nodeName( el, "input" ) ) {

					leverageNative( el, "click" );
				}

				// Return non-false to allow normal event-path propagation
				return true;
			},

			// For cross-browser consistency, suppress native .click() on links
			// Also prevent it if we're currently inside a leveraged native-event stack
			_default: function( event ) {
				var target = event.target;
				return rcheckableType.test( target.type ) &&
					target.click && nodeName( target, "input" ) &&
					dataPriv.get( target, "click" ) ||
					nodeName( target, "a" );
			}
		},

		beforeunload: {
			postDispatch: function( event ) {

				// Support: Firefox 20+
				// Firefox doesn't alert if the returnValue field is not set.
				if ( event.result !== undefined && event.originalEvent ) {
					event.originalEvent.returnValue = event.result;
				}
			}
		}
	}
};

// Ensure the presence of an event listener that handles manually-triggered
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
function leverageNative( el, type, isSetup ) {

	// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add
	if ( !isSetup ) {
		if ( dataPriv.get( el, type ) === undefined ) {
			jQuery.event.add( el, type, returnTrue );
		}
		return;
	}

	// Register the controller as a special universal handler for all event namespaces
	dataPriv.set( el, type, false );
	jQuery.event.add( el, type, {
		namespace: false,
		handler: function( event ) {
			var result,
				saved = dataPriv.get( this, type );

			if ( ( event.isTrigger & 1 ) && this[ type ] ) {

				// Interrupt processing of the outer synthetic .trigger()ed event
				if ( !saved ) {

					// Store arguments for use when handling the inner native event
					// There will always be at least one argument (an event object), so this array
					// will not be confused with a leftover capture object.
					saved = slice.call( arguments );
					dataPriv.set( this, type, saved );

					// Trigger the native event and capture its result
					this[ type ]();
					result = dataPriv.get( this, type );
					dataPriv.set( this, type, false );

					if ( saved !== result ) {

						// Cancel the outer synthetic event
						event.stopImmediatePropagation();
						event.preventDefault();

						return result;
					}

				// If this is an inner synthetic event for an event with a bubbling surrogate
				// (focus or blur), assume that the surrogate already propagated from triggering
				// the native event and prevent that from happening again here.
				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
				// less bad than duplication.
				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
					event.stopPropagation();
				}

			// If this is a native event triggered above, everything is now in order
			// Fire an inner synthetic event with the original arguments
			} else if ( saved ) {

				// ...and capture the result
				dataPriv.set( this, type, jQuery.event.trigger(
					saved[ 0 ],
					saved.slice( 1 ),
					this
				) );

				// Abort handling of the native event by all jQuery handlers while allowing
				// native handlers on the same element to run. On target, this is achieved
				// by stopping immediate propagation just on the jQuery event. However,
				// the native event is re-wrapped by a jQuery one on each level of the
				// propagation so the only way to stop it for jQuery is to stop it for
				// everyone via native `stopPropagation()`. This is not a problem for
				// focus/blur which don't bubble, but it does also stop click on checkboxes
				// and radios. We accept this limitation.
				event.stopPropagation();
				event.isImmediatePropagationStopped = returnTrue;
			}
		}
	} );
}

jQuery.removeEvent = function( elem, type, handle ) {

	// This "if" is needed for plain objects
	if ( elem.removeEventListener ) {
		elem.removeEventListener( type, handle );
	}
};

jQuery.Event = function( src, props ) {

	// Allow instantiation without the 'new' keyword
	if ( !( this instanceof jQuery.Event ) ) {
		return new jQuery.Event( src, props );
	}

	// Event object
	if ( src && src.type ) {
		this.originalEvent = src;
		this.type = src.type;

		// Events bubbling up the document may have been marked as prevented
		// by a handler lower down the tree; reflect the correct value.
		this.isDefaultPrevented = src.defaultPrevented ||
				src.defaultPrevented === undefined &&

				// Support: Android <=2.3 only
				src.returnValue === false ?
			returnTrue :
			returnFalse;

		// Create target properties
		// Support: Safari <=6 - 7 only
		// Target should not be a text node (trac-504, trac-13143)
		this.target = ( src.target && src.target.nodeType === 3 ) ?
			src.target.parentNode :
			src.target;

		this.currentTarget = src.currentTarget;
		this.relatedTarget = src.relatedTarget;

	// Event type
	} else {
		this.type = src;
	}

	// Put explicitly provided properties onto the event object
	if ( props ) {
		jQuery.extend( this, props );
	}

	// Create a timestamp if incoming event doesn't have one
	this.timeStamp = src && src.timeStamp || Date.now();

	// Mark it as fixed
	this[ jQuery.expando ] = true;
};

// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = {
	constructor: jQuery.Event,
	isDefaultPrevented: returnFalse,
	isPropagationStopped: returnFalse,
	isImmediatePropagationStopped: returnFalse,
	isSimulated: false,

	preventDefault: function() {
		var e = this.originalEvent;

		this.isDefaultPrevented = returnTrue;

		if ( e && !this.isSimulated ) {
			e.preventDefault();
		}
	},
	stopPropagation: function() {
		var e = this.originalEvent;

		this.isPropagationStopped = returnTrue;

		if ( e && !this.isSimulated ) {
			e.stopPropagation();
		}
	},
	stopImmediatePropagation: function() {
		var e = this.originalEvent;

		this.isImmediatePropagationStopped = returnTrue;

		if ( e && !this.isSimulated ) {
			e.stopImmediatePropagation();
		}

		this.stopPropagation();
	}
};

// Includes all common event props including KeyEvent and MouseEvent specific props
jQuery.each( {
	altKey: true,
	bubbles: true,
	cancelable: true,
	changedTouches: true,
	ctrlKey: true,
	detail: true,
	eventPhase: true,
	metaKey: true,
	pageX: true,
	pageY: true,
	shiftKey: true,
	view: true,
	"char": true,
	code: true,
	charCode: true,
	key: true,
	keyCode: true,
	button: true,
	buttons: true,
	clientX: true,
	clientY: true,
	offsetX: true,
	offsetY: true,
	pointerId: true,
	pointerType: true,
	screenX: true,
	screenY: true,
	targetTouches: true,
	toElement: true,
	touches: true,
	which: true
}, jQuery.event.addProp );

jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {

	function focusMappedHandler( nativeEvent ) {
		if ( document.documentMode ) {

			// Support: IE 11+
			// Attach a single focusin/focusout handler on the document while someone wants
			// focus/blur. This is because the former are synchronous in IE while the latter
			// are async. In other browsers, all those handlers are invoked synchronously.

			// `handle` from private data would already wrap the event, but we need
			// to change the `type` here.
			var handle = dataPriv.get( this, "handle" ),
				event = jQuery.event.fix( nativeEvent );
			event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
			event.isSimulated = true;

			// First, handle focusin/focusout
			handle( nativeEvent );

			// ...then, handle focus/blur
			//
			// focus/blur don't bubble while focusin/focusout do; simulate the former by only
			// invoking the handler at the lower level.
			if ( event.target === event.currentTarget ) {

				// The setup part calls `leverageNative`, which, in turn, calls
				// `jQuery.event.add`, so event handle will already have been set
				// by this point.
				handle( event );
			}
		} else {

			// For non-IE browsers, attach a single capturing handler on the document
			// while someone wants focusin/focusout.
			jQuery.event.simulate( delegateType, nativeEvent.target,
				jQuery.event.fix( nativeEvent ) );
		}
	}

	jQuery.event.special[ type ] = {

		// Utilize native event if possible so blur/focus sequence is correct
		setup: function() {

			var attaches;

			// Claim the first handler
			// dataPriv.set( this, "focus", ... )
			// dataPriv.set( this, "blur", ... )
			leverageNative( this, type, true );

			if ( document.documentMode ) {

				// Support: IE 9 - 11+
				// We use the same native handler for focusin & focus (and focusout & blur)
				// so we need to coordinate setup & teardown parts between those events.
				// Use `delegateType` as the key as `type` is already used by `leverageNative`.
				attaches = dataPriv.get( this, delegateType );
				if ( !attaches ) {
					this.addEventListener( delegateType, focusMappedHandler );
				}
				dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );
			} else {

				// Return false to allow normal processing in the caller
				return false;
			}
		},
		trigger: function() {

			// Force setup before trigger
			leverageNative( this, type );

			// Return non-false to allow normal event-path propagation
			return true;
		},

		teardown: function() {
			var attaches;

			if ( document.documentMode ) {
				attaches = dataPriv.get( this, delegateType ) - 1;
				if ( !attaches ) {
					this.removeEventListener( delegateType, focusMappedHandler );
					dataPriv.remove( this, delegateType );
				} else {
					dataPriv.set( this, delegateType, attaches );
				}
			} else {

				// Return false to indicate standard teardown should be applied
				return false;
			}
		},

		// Suppress native focus or blur if we're currently inside
		// a leveraged native-event stack
		_default: function( event ) {
			return dataPriv.get( event.target, type );
		},

		delegateType: delegateType
	};

	// Support: Firefox <=44
	// Firefox doesn't have focus(in | out) events
	// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
	//
	// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
	// focus(in | out) events fire after focus & blur events,
	// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
	// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
	//
	// Support: IE 9 - 11+
	// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,
	// attach a single handler for both events in IE.
	jQuery.event.special[ delegateType ] = {
		setup: function() {

			// Handle: regular nodes (via `this.ownerDocument`), window
			// (via `this.document`) & document (via `this`).
			var doc = this.ownerDocument || this.document || this,
				dataHolder = document.documentMode ? this : doc,
				attaches = dataPriv.get( dataHolder, delegateType );

			// Support: IE 9 - 11+
			// We use the same native handler for focusin & focus (and focusout & blur)
			// so we need to coordinate setup & teardown parts between those events.
			// Use `delegateType` as the key as `type` is already used by `leverageNative`.
			if ( !attaches ) {
				if ( document.documentMode ) {
					this.addEventListener( delegateType, focusMappedHandler );
				} else {
					doc.addEventListener( type, focusMappedHandler, true );
				}
			}
			dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );
		},
		teardown: function() {
			var doc = this.ownerDocument || this.document || this,
				dataHolder = document.documentMode ? this : doc,
				attaches = dataPriv.get( dataHolder, delegateType ) - 1;

			if ( !attaches ) {
				if ( document.documentMode ) {
					this.removeEventListener( delegateType, focusMappedHandler );
				} else {
					doc.removeEventListener( type, focusMappedHandler, true );
				}
				dataPriv.remove( dataHolder, delegateType );
			} else {
				dataPriv.set( dataHolder, delegateType, attaches );
			}
		}
	};
} );

// Create mouseenter/leave events using mouseover/out and event-time checks
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
//
// Support: Safari 7 only
// Safari sends mouseenter too often; see:
// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
// for the description of the bug (it existed in older Chrome versions as well).
jQuery.each( {
	mouseenter: "mouseover",
	mouseleave: "mouseout",
	pointerenter: "pointerover",
	pointerleave: "pointerout"
}, function( orig, fix ) {
	jQuery.event.special[ orig ] = {
		delegateType: fix,
		bindType: fix,

		handle: function( event ) {
			var ret,
				target = this,
				related = event.relatedTarget,
				handleObj = event.handleObj;

			// For mouseenter/leave call the handler if related is outside the target.
			// NB: No relatedTarget if the mouse left/entered the browser window
			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
				event.type = handleObj.origType;
				ret = handleObj.handler.apply( this, arguments );
				event.type = fix;
			}
			return ret;
		}
	};
} );

jQuery.fn.extend( {

	on: function( types, selector, data, fn ) {
		return on( this, types, selector, data, fn );
	},
	one: function( types, selector, data, fn ) {
		return on( this, types, selector, data, fn, 1 );
	},
	off: function( types, selector, fn ) {
		var handleObj, type;
		if ( types && types.preventDefault && types.handleObj ) {

			// ( event )  dispatched jQuery.Event
			handleObj = types.handleObj;
			jQuery( types.delegateTarget ).off(
				handleObj.namespace ?
					handleObj.origType + "." + handleObj.namespace :
					handleObj.origType,
				handleObj.selector,
				handleObj.handler
			);
			return this;
		}
		if ( typeof types === "object" ) {

			// ( types-object [, selector] )
			for ( type in types ) {
				this.off( type, selector, types[ type ] );
			}
			return this;
		}
		if ( selector === false || typeof selector === "function" ) {

			// ( types [, fn] )
			fn = selector;
			selector = undefined;
		}
		if ( fn === false ) {
			fn = returnFalse;
		}
		return this.each( function() {
			jQuery.event.remove( this, types, fn, selector );
		} );
	}
} );


var

	// Support: IE <=10 - 11, Edge 12 - 13 only
	// In IE/Edge using regex groups here causes severe slowdowns.
	// See https://connect.microsoft.com/IE/feedback/details/1736512/
	rnoInnerhtml = /<script|<style|<link/i,

	// checked="checked" or checked
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,

	rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;

// Prefer a tbody over its parent table for containing new rows
function manipulationTarget( elem, content ) {
	if ( nodeName( elem, "table" ) &&
		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {

		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
	}

	return elem;
}

// Replace/restore the type attribute of script elements for safe DOM manipulation
function disableScript( elem ) {
	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
	return elem;
}
function restoreScript( elem ) {
	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
		elem.type = elem.type.slice( 5 );
	} else {
		elem.removeAttribute( "type" );
	}

	return elem;
}

function cloneCopyEvent( src, dest ) {
	var i, l, type, pdataOld, udataOld, udataCur, events;

	if ( dest.nodeType !== 1 ) {
		return;
	}

	// 1. Copy private data: events, handlers, etc.
	if ( dataPriv.hasData( src ) ) {
		pdataOld = dataPriv.get( src );
		events = pdataOld.events;

		if ( events ) {
			dataPriv.remove( dest, "handle events" );

			for ( type in events ) {
				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
					jQuery.event.add( dest, type, events[ type ][ i ] );
				}
			}
		}
	}

	// 2. Copy user data
	if ( dataUser.hasData( src ) ) {
		udataOld = dataUser.access( src );
		udataCur = jQuery.extend( {}, udataOld );

		dataUser.set( dest, udataCur );
	}
}

// Fix IE bugs, see support tests
function fixInput( src, dest ) {
	var nodeName = dest.nodeName.toLowerCase();

	// Fails to persist the checked state of a cloned checkbox or radio button.
	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
		dest.checked = src.checked;

	// Fails to return the selected option to the default selected state when cloning options
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
		dest.defaultValue = src.defaultValue;
	}
}

function domManip( collection, args, callback, ignored ) {

	// Flatten any nested arrays
	args = flat( args );

	var fragment, first, scripts, hasScripts, node, doc,
		i = 0,
		l = collection.length,
		iNoClone = l - 1,
		value = args[ 0 ],
		valueIsFunction = isFunction( value );

	// We can't cloneNode fragments that contain checked, in WebKit
	if ( valueIsFunction ||
			( l > 1 && typeof value === "string" &&
				!support.checkClone && rchecked.test( value ) ) ) {
		return collection.each( function( index ) {
			var self = collection.eq( index );
			if ( valueIsFunction ) {
				args[ 0 ] = value.call( this, index, self.html() );
			}
			domManip( self, args, callback, ignored );
		} );
	}

	if ( l ) {
		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
		first = fragment.firstChild;

		if ( fragment.childNodes.length === 1 ) {
			fragment = first;
		}

		// Require either new content or an interest in ignored elements to invoke the callback
		if ( first || ignored ) {
			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
			hasScripts = scripts.length;

			// Use the original fragment for the last item
			// instead of the first because it can end up
			// being emptied incorrectly in certain situations (trac-8070).
			for ( ; i < l; i++ ) {
				node = fragment;

				if ( i !== iNoClone ) {
					node = jQuery.clone( node, true, true );

					// Keep references to cloned scripts for later restoration
					if ( hasScripts ) {

						// Support: Android <=4.0 only, PhantomJS 1 only
						// push.apply(_, arraylike) throws on ancient WebKit
						jQuery.merge( scripts, getAll( node, "script" ) );
					}
				}

				callback.call( collection[ i ], node, i );
			}

			if ( hasScripts ) {
				doc = scripts[ scripts.length - 1 ].ownerDocument;

				// Re-enable scripts
				jQuery.map( scripts, restoreScript );

				// Evaluate executable scripts on first document insertion
				for ( i = 0; i < hasScripts; i++ ) {
					node = scripts[ i ];
					if ( rscriptType.test( node.type || "" ) &&
						!dataPriv.access( node, "globalEval" ) &&
						jQuery.contains( doc, node ) ) {

						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {

							// Optional AJAX dependency, but won't run scripts if not present
							if ( jQuery._evalUrl && !node.noModule ) {
								jQuery._evalUrl( node.src, {
									nonce: node.nonce || node.getAttribute( "nonce" )
								}, doc );
							}
						} else {

							// Unwrap a CDATA section containing script contents. This shouldn't be
							// needed as in XML documents they're already not visible when
							// inspecting element contents and in HTML documents they have no
							// meaning but we're preserving that logic for backwards compatibility.
							// This will be removed completely in 4.0. See gh-4904.
							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
						}
					}
				}
			}
		}
	}

	return collection;
}

function remove( elem, selector, keepData ) {
	var node,
		nodes = selector ? jQuery.filter( selector, elem ) : elem,
		i = 0;

	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
		if ( !keepData && node.nodeType === 1 ) {
			jQuery.cleanData( getAll( node ) );
		}

		if ( node.parentNode ) {
			if ( keepData && isAttached( node ) ) {
				setGlobalEval( getAll( node, "script" ) );
			}
			node.parentNode.removeChild( node );
		}
	}

	return elem;
}

jQuery.extend( {
	htmlPrefilter: function( html ) {
		return html;
	},

	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
		var i, l, srcElements, destElements,
			clone = elem.cloneNode( true ),
			inPage = isAttached( elem );

		// Fix IE cloning issues
		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
				!jQuery.isXMLDoc( elem ) ) {

			// We eschew jQuery#find here for performance reasons:
			// https://jsperf.com/getall-vs-sizzle/2
			destElements = getAll( clone );
			srcElements = getAll( elem );

			for ( i = 0, l = srcElements.length; i < l; i++ ) {
				fixInput( srcElements[ i ], destElements[ i ] );
			}
		}

		// Copy the events from the original to the clone
		if ( dataAndEvents ) {
			if ( deepDataAndEvents ) {
				srcElements = srcElements || getAll( elem );
				destElements = destElements || getAll( clone );

				for ( i = 0, l = srcElements.length; i < l; i++ ) {
					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
				}
			} else {
				cloneCopyEvent( elem, clone );
			}
		}

		// Preserve script evaluation history
		destElements = getAll( clone, "script" );
		if ( destElements.length > 0 ) {
			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
		}

		// Return the cloned set
		return clone;
	},

	cleanData: function( elems ) {
		var data, elem, type,
			special = jQuery.event.special,
			i = 0;

		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
			if ( acceptData( elem ) ) {
				if ( ( data = elem[ dataPriv.expando ] ) ) {
					if ( data.events ) {
						for ( type in data.events ) {
							if ( special[ type ] ) {
								jQuery.event.remove( elem, type );

							// This is a shortcut to avoid jQuery.event.remove's overhead
							} else {
								jQuery.removeEvent( elem, type, data.handle );
							}
						}
					}

					// Support: Chrome <=35 - 45+
					// Assign undefined instead of using delete, see Data#remove
					elem[ dataPriv.expando ] = undefined;
				}
				if ( elem[ dataUser.expando ] ) {

					// Support: Chrome <=35 - 45+
					// Assign undefined instead of using delete, see Data#remove
					elem[ dataUser.expando ] = undefined;
				}
			}
		}
	}
} );

jQuery.fn.extend( {
	detach: function( selector ) {
		return remove( this, selector, true );
	},

	remove: function( selector ) {
		return remove( this, selector );
	},

	text: function( value ) {
		return access( this, function( value ) {
			return value === undefined ?
				jQuery.text( this ) :
				this.empty().each( function() {
					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
						this.textContent = value;
					}
				} );
		}, null, value, arguments.length );
	},

	append: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
				var target = manipulationTarget( this, elem );
				target.appendChild( elem );
			}
		} );
	},

	prepend: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
				var target = manipulationTarget( this, elem );
				target.insertBefore( elem, target.firstChild );
			}
		} );
	},

	before: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this );
			}
		} );
	},

	after: function() {
		return domManip( this, arguments, function( elem ) {
			if ( this.parentNode ) {
				this.parentNode.insertBefore( elem, this.nextSibling );
			}
		} );
	},

	empty: function() {
		var elem,
			i = 0;

		for ( ; ( elem = this[ i ] ) != null; i++ ) {
			if ( elem.nodeType === 1 ) {

				// Prevent memory leaks
				jQuery.cleanData( getAll( elem, false ) );

				// Remove any remaining nodes
				elem.textContent = "";
			}
		}

		return this;
	},

	clone: function( dataAndEvents, deepDataAndEvents ) {
		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;

		return this.map( function() {
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
		} );
	},

	html: function( value ) {
		return access( this, function( value ) {
			var elem = this[ 0 ] || {},
				i = 0,
				l = this.length;

			if ( value === undefined && elem.nodeType === 1 ) {
				return elem.innerHTML;
			}

			// See if we can take a shortcut and just use innerHTML
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {

				value = jQuery.htmlPrefilter( value );

				try {
					for ( ; i < l; i++ ) {
						elem = this[ i ] || {};

						// Remove element nodes and prevent memory leaks
						if ( elem.nodeType === 1 ) {
							jQuery.cleanData( getAll( elem, false ) );
							elem.innerHTML = value;
						}
					}

					elem = 0;

				// If using innerHTML throws an exception, use the fallback method
				} catch ( e ) {}
			}

			if ( elem ) {
				this.empty().append( value );
			}
		}, null, value, arguments.length );
	},

	replaceWith: function() {
		var ignored = [];

		// Make the changes, replacing each non-ignored context element with the new content
		return domManip( this, arguments, function( elem ) {
			var parent = this.parentNode;

			if ( jQuery.inArray( this, ignored ) < 0 ) {
				jQuery.cleanData( getAll( this ) );
				if ( parent ) {
					parent.replaceChild( elem, this );
				}
			}

		// Force callback invocation
		}, ignored );
	}
} );

jQuery.each( {
	appendTo: "append",
	prependTo: "prepend",
	insertBefore: "before",
	insertAfter: "after",
	replaceAll: "replaceWith"
}, function( name, original ) {
	jQuery.fn[ name ] = function( selector ) {
		var elems,
			ret = [],
			insert = jQuery( selector ),
			last = insert.length - 1,
			i = 0;

		for ( ; i <= last; i++ ) {
			elems = i === last ? this : this.clone( true );
			jQuery( insert[ i ] )[ original ]( elems );

			// Support: Android <=4.0 only, PhantomJS 1 only
			// .get() because push.apply(_, arraylike) throws on ancient WebKit
			push.apply( ret, elems.get() );
		}

		return this.pushStack( ret );
	};
} );
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );

var rcustomProp = /^--/;


var getStyles = function( elem ) {

		// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
		// IE throws on elements created in popups
		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
		var view = elem.ownerDocument.defaultView;

		if ( !view || !view.opener ) {
			view = window;
		}

		return view.getComputedStyle( elem );
	};

var swap = function( elem, options, callback ) {
	var ret, name,
		old = {};

	// Remember the old values, and insert the new ones
	for ( name in options ) {
		old[ name ] = elem.style[ name ];
		elem.style[ name ] = options[ name ];
	}

	ret = callback.call( elem );

	// Revert the old values
	for ( name in options ) {
		elem.style[ name ] = old[ name ];
	}

	return ret;
};


var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );



( function() {

	// Executing both pixelPosition & boxSizingReliable tests require only one layout
	// so they're executed at the same time to save the second computation.
	function computeStyleTests() {

		// This is a singleton, we need to execute it only once
		if ( !div ) {
			return;
		}

		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
			"margin-top:1px;padding:0;border:0";
		div.style.cssText =
			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
			"margin:auto;border:1px;padding:1px;" +
			"width:60%;top:1%";
		documentElement.appendChild( container ).appendChild( div );

		var divStyle = window.getComputedStyle( div );
		pixelPositionVal = divStyle.top !== "1%";

		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;

		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
		// Some styles come back with percentage values, even though they shouldn't
		div.style.right = "60%";
		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;

		// Support: IE 9 - 11 only
		// Detect misreporting of content dimensions for box-sizing:border-box elements
		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;

		// Support: IE 9 only
		// Detect overflow:scroll screwiness (gh-3699)
		// Support: Chrome <=64
		// Don't get tricked when zoom affects offsetWidth (gh-4029)
		div.style.position = "absolute";
		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;

		documentElement.removeChild( container );

		// Nullify the div so it wouldn't be stored in the memory and
		// it will also be a sign that checks already performed
		div = null;
	}

	function roundPixelMeasures( measure ) {
		return Math.round( parseFloat( measure ) );
	}

	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
		reliableTrDimensionsVal, reliableMarginLeftVal,
		container = document.createElement( "div" ),
		div = document.createElement( "div" );

	// Finish early in limited (non-browser) environments
	if ( !div.style ) {
		return;
	}

	// Support: IE <=9 - 11 only
	// Style of cloned element affects source element cloned (trac-8908)
	div.style.backgroundClip = "content-box";
	div.cloneNode( true ).style.backgroundClip = "";
	support.clearCloneStyle = div.style.backgroundClip === "content-box";

	jQuery.extend( support, {
		boxSizingReliable: function() {
			computeStyleTests();
			return boxSizingReliableVal;
		},
		pixelBoxStyles: function() {
			computeStyleTests();
			return pixelBoxStylesVal;
		},
		pixelPosition: function() {
			computeStyleTests();
			return pixelPositionVal;
		},
		reliableMarginLeft: function() {
			computeStyleTests();
			return reliableMarginLeftVal;
		},
		scrollboxSize: function() {
			computeStyleTests();
			return scrollboxSizeVal;
		},

		// Support: IE 9 - 11+, Edge 15 - 18+
		// IE/Edge misreport `getComputedStyle` of table rows with width/height
		// set in CSS while `offset*` properties report correct values.
		// Behavior in IE 9 is more subtle than in newer versions & it passes
		// some versions of this test; make sure not to make it pass there!
		//
		// Support: Firefox 70+
		// Only Firefox includes border widths
		// in computed dimensions. (gh-4529)
		reliableTrDimensions: function() {
			var table, tr, trChild, trStyle;
			if ( reliableTrDimensionsVal == null ) {
				table = document.createElement( "table" );
				tr = document.createElement( "tr" );
				trChild = document.createElement( "div" );

				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
				tr.style.cssText = "box-sizing:content-box;border:1px solid";

				// Support: Chrome 86+
				// Height set through cssText does not get applied.
				// Computed height then comes back as 0.
				tr.style.height = "1px";
				trChild.style.height = "9px";

				// Support: Android 8 Chrome 86+
				// In our bodyBackground.html iframe,
				// display for all div elements is set to "inline",
				// which causes a problem only in Android 8 Chrome 86.
				// Ensuring the div is `display: block`
				// gets around this issue.
				trChild.style.display = "block";

				documentElement
					.appendChild( table )
					.appendChild( tr )
					.appendChild( trChild );

				trStyle = window.getComputedStyle( tr );
				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
					parseInt( trStyle.borderTopWidth, 10 ) +
					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;

				documentElement.removeChild( table );
			}
			return reliableTrDimensionsVal;
		}
	} );
} )();


function curCSS( elem, name, computed ) {
	var width, minWidth, maxWidth, ret,
		isCustomProp = rcustomProp.test( name ),

		// Support: Firefox 51+
		// Retrieving style before computed somehow
		// fixes an issue with getting wrong values
		// on detached elements
		style = elem.style;

	computed = computed || getStyles( elem );

	// getPropertyValue is needed for:
	//   .css('filter') (IE 9 only, trac-12537)
	//   .css('--customProperty) (gh-3144)
	if ( computed ) {

		// Support: IE <=9 - 11+
		// IE only supports `"float"` in `getPropertyValue`; in computed styles
		// it's only available as `"cssFloat"`. We no longer modify properties
		// sent to `.css()` apart from camelCasing, so we need to check both.
		// Normally, this would create difference in behavior: if
		// `getPropertyValue` returns an empty string, the value returned
		// by `.css()` would be `undefined`. This is usually the case for
		// disconnected elements. However, in IE even disconnected elements
		// with no styles return `"none"` for `getPropertyValue( "float" )`
		ret = computed.getPropertyValue( name ) || computed[ name ];

		if ( isCustomProp && ret ) {

			// Support: Firefox 105+, Chrome <=105+
			// Spec requires trimming whitespace for custom properties (gh-4926).
			// Firefox only trims leading whitespace. Chrome just collapses
			// both leading & trailing whitespace to a single space.
			//
			// Fall back to `undefined` if empty string returned.
			// This collapses a missing definition with property defined
			// and set to an empty string but there's no standard API
			// allowing us to differentiate them without a performance penalty
			// and returning `undefined` aligns with older jQuery.
			//
			// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED
			// as whitespace while CSS does not, but this is not a problem
			// because CSS preprocessing replaces them with U+000A LINE FEED
			// (which *is* CSS whitespace)
			// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
			ret = ret.replace( rtrimCSS, "$1" ) || undefined;
		}

		if ( ret === "" && !isAttached( elem ) ) {
			ret = jQuery.style( elem, name );
		}

		// A tribute to the "awesome hack by Dean Edwards"
		// Android Browser returns percentage for some values,
		// but width seems to be reliably pixels.
		// This is against the CSSOM draft spec:
		// https://drafts.csswg.org/cssom/#resolved-values
		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {

			// Remember the original values
			width = style.width;
			minWidth = style.minWidth;
			maxWidth = style.maxWidth;

			// Put in the new values to get a computed value out
			style.minWidth = style.maxWidth = style.width = ret;
			ret = computed.width;

			// Revert the changed values
			style.width = width;
			style.minWidth = minWidth;
			style.maxWidth = maxWidth;
		}
	}

	return ret !== undefined ?

		// Support: IE <=9 - 11 only
		// IE returns zIndex value as an integer.
		ret + "" :
		ret;
}


function addGetHookIf( conditionFn, hookFn ) {

	// Define the hook, we'll check on the first run if it's really needed.
	return {
		get: function() {
			if ( conditionFn() ) {

				// Hook not needed (or it's not possible to use it due
				// to missing dependency), remove it.
				delete this.get;
				return;
			}

			// Hook needed; redefine it so that the support test is not executed again.
			return ( this.get = hookFn ).apply( this, arguments );
		}
	};
}


var cssPrefixes = [ "Webkit", "Moz", "ms" ],
	emptyStyle = document.createElement( "div" ).style,
	vendorProps = {};

// Return a vendor-prefixed property or undefined
function vendorPropName( name ) {

	// Check for vendor prefixed names
	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
		i = cssPrefixes.length;

	while ( i-- ) {
		name = cssPrefixes[ i ] + capName;
		if ( name in emptyStyle ) {
			return name;
		}
	}
}

// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
function finalPropName( name ) {
	var final = jQuery.cssProps[ name ] || vendorProps[ name ];

	if ( final ) {
		return final;
	}
	if ( name in emptyStyle ) {
		return name;
	}
	return vendorProps[ name ] = vendorPropName( name ) || name;
}


var

	// Swappable if display is none or starts with table
	// except "table", "table-cell", or "table-caption"
	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
	cssNormalTransform = {
		letterSpacing: "0",
		fontWeight: "400"
	};

function setPositiveNumber( _elem, value, subtract ) {

	// Any relative (+/-) values have already been
	// normalized at this point
	var matches = rcssNum.exec( value );
	return matches ?

		// Guard against undefined "subtract", e.g., when used as in cssHooks
		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
		value;
}

function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
	var i = dimension === "width" ? 1 : 0,
		extra = 0,
		delta = 0,
		marginDelta = 0;

	// Adjustment may not be necessary
	if ( box === ( isBorderBox ? "border" : "content" ) ) {
		return 0;
	}

	for ( ; i < 4; i += 2 ) {

		// Both box models exclude margin
		// Count margin delta separately to only add it after scroll gutter adjustment.
		// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).
		if ( box === "margin" ) {
			marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
		}

		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
		if ( !isBorderBox ) {

			// Add padding
			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );

			// For "border" or "margin", add border
			if ( box !== "padding" ) {
				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );

			// But still keep track of it otherwise
			} else {
				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
			}

		// If we get here with a border-box (content + padding + border), we're seeking "content" or
		// "padding" or "margin"
		} else {

			// For "content", subtract padding
			if ( box === "content" ) {
				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
			}

			// For "content" or "padding", subtract border
			if ( box !== "margin" ) {
				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
			}
		}
	}

	// Account for positive content-box scroll gutter when requested by providing computedVal
	if ( !isBorderBox && computedVal >= 0 ) {

		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
		// Assuming integer scroll gutter, subtract the rest and round down
		delta += Math.max( 0, Math.ceil(
			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
			computedVal -
			delta -
			extra -
			0.5

		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
		// Use an explicit zero to avoid NaN (gh-3964)
		) ) || 0;
	}

	return delta + marginDelta;
}

function getWidthOrHeight( elem, dimension, extra ) {

	// Start with computed style
	var styles = getStyles( elem ),

		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
		// Fake content-box until we know it's needed to know the true value.
		boxSizingNeeded = !support.boxSizingReliable() || extra,
		isBorderBox = boxSizingNeeded &&
			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
		valueIsBorderBox = isBorderBox,

		val = curCSS( elem, dimension, styles ),
		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );

	// Support: Firefox <=54
	// Return a confounding non-pixel value or feign ignorance, as appropriate.
	if ( rnumnonpx.test( val ) ) {
		if ( !extra ) {
			return val;
		}
		val = "auto";
	}


	// Support: IE 9 - 11 only
	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
	// In those cases, the computed value can be trusted to be border-box.
	if ( ( !support.boxSizingReliable() && isBorderBox ||

		// Support: IE 10 - 11+, Edge 15 - 18+
		// IE/Edge misreport `getComputedStyle` of table rows with width/height
		// set in CSS while `offset*` properties report correct values.
		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||

		// Fall back to offsetWidth/offsetHeight when value is "auto"
		// This happens for inline elements with no explicit setting (gh-3571)
		val === "auto" ||

		// Support: Android <=4.1 - 4.3 only
		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&

		// Make sure the element is visible & connected
		elem.getClientRects().length ) {

		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";

		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
		// retrieved value as a content box dimension.
		valueIsBorderBox = offsetProp in elem;
		if ( valueIsBorderBox ) {
			val = elem[ offsetProp ];
		}
	}

	// Normalize "" and auto
	val = parseFloat( val ) || 0;

	// Adjust for the element's box model
	return ( val +
		boxModelAdjustment(
			elem,
			dimension,
			extra || ( isBorderBox ? "border" : "content" ),
			valueIsBorderBox,
			styles,

			// Provide the current computed size to request scroll gutter calculation (gh-3589)
			val
		)
	) + "px";
}

jQuery.extend( {

	// Add in style property hooks for overriding the default
	// behavior of getting and setting a style property
	cssHooks: {
		opacity: {
			get: function( elem, computed ) {
				if ( computed ) {

					// We should always get a number back from opacity
					var ret = curCSS( elem, "opacity" );
					return ret === "" ? "1" : ret;
				}
			}
		}
	},

	// Don't automatically add "px" to these possibly-unitless properties
	cssNumber: {
		animationIterationCount: true,
		aspectRatio: true,
		borderImageSlice: true,
		columnCount: true,
		flexGrow: true,
		flexShrink: true,
		fontWeight: true,
		gridArea: true,
		gridColumn: true,
		gridColumnEnd: true,
		gridColumnStart: true,
		gridRow: true,
		gridRowEnd: true,
		gridRowStart: true,
		lineHeight: true,
		opacity: true,
		order: true,
		orphans: true,
		scale: true,
		widows: true,
		zIndex: true,
		zoom: true,

		// SVG-related
		fillOpacity: true,
		floodOpacity: true,
		stopOpacity: true,
		strokeMiterlimit: true,
		strokeOpacity: true
	},

	// Add in properties whose names you wish to fix before
	// setting or getting the value
	cssProps: {},

	// Get and set the style property on a DOM Node
	style: function( elem, name, value, extra ) {

		// Don't set styles on text and comment nodes
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
			return;
		}

		// Make sure that we're working with the right name
		var ret, type, hooks,
			origName = camelCase( name ),
			isCustomProp = rcustomProp.test( name ),
			style = elem.style;

		// Make sure that we're working with the right name. We don't
		// want to query the value if it is a CSS custom property
		// since they are user-defined.
		if ( !isCustomProp ) {
			name = finalPropName( origName );
		}

		// Gets hook for the prefixed version, then unprefixed version
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// Check if we're setting a value
		if ( value !== undefined ) {
			type = typeof value;

			// Convert "+=" or "-=" to relative numbers (trac-7345)
			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
				value = adjustCSS( elem, name, ret );

				// Fixes bug trac-9237
				type = "number";
			}

			// Make sure that null and NaN values aren't set (trac-7116)
			if ( value == null || value !== value ) {
				return;
			}

			// If a number was passed in, add the unit (except for certain CSS properties)
			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
			// "px" to a few hardcoded values.
			if ( type === "number" && !isCustomProp ) {
				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
			}

			// background-* props affect original clone's values
			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
				style[ name ] = "inherit";
			}

			// If a hook was provided, use that value, otherwise just set the specified value
			if ( !hooks || !( "set" in hooks ) ||
				( value = hooks.set( elem, value, extra ) ) !== undefined ) {

				if ( isCustomProp ) {
					style.setProperty( name, value );
				} else {
					style[ name ] = value;
				}
			}

		} else {

			// If a hook was provided get the non-computed value from there
			if ( hooks && "get" in hooks &&
				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {

				return ret;
			}

			// Otherwise just get the value from the style object
			return style[ name ];
		}
	},

	css: function( elem, name, extra, styles ) {
		var val, num, hooks,
			origName = camelCase( name ),
			isCustomProp = rcustomProp.test( name );

		// Make sure that we're working with the right name. We don't
		// want to modify the value if it is a CSS custom property
		// since they are user-defined.
		if ( !isCustomProp ) {
			name = finalPropName( origName );
		}

		// Try prefixed name followed by the unprefixed name
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];

		// If a hook was provided get the computed value from there
		if ( hooks && "get" in hooks ) {
			val = hooks.get( elem, true, extra );
		}

		// Otherwise, if a way to get the computed value exists, use that
		if ( val === undefined ) {
			val = curCSS( elem, name, styles );
		}

		// Convert "normal" to computed value
		if ( val === "normal" && name in cssNormalTransform ) {
			val = cssNormalTransform[ name ];
		}

		// Make numeric if forced or a qualifier was provided and val looks numeric
		if ( extra === "" || extra ) {
			num = parseFloat( val );
			return extra === true || isFinite( num ) ? num || 0 : val;
		}

		return val;
	}
} );

jQuery.each( [ "height", "width" ], function( _i, dimension ) {
	jQuery.cssHooks[ dimension ] = {
		get: function( elem, computed, extra ) {
			if ( computed ) {

				// Certain elements can have dimension info if we invisibly show them
				// but it must have a current display style that would benefit
				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&

					// Support: Safari 8+
					// Table columns in Safari have non-zero offsetWidth & zero
					// getBoundingClientRect().width unless display is changed.
					// Support: IE <=11 only
					// Running getBoundingClientRect on a disconnected node
					// in IE throws an error.
					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
					swap( elem, cssShow, function() {
						return getWidthOrHeight( elem, dimension, extra );
					} ) :
					getWidthOrHeight( elem, dimension, extra );
			}
		},

		set: function( elem, value, extra ) {
			var matches,
				styles = getStyles( elem ),

				// Only read styles.position if the test has a chance to fail
				// to avoid forcing a reflow.
				scrollboxSizeBuggy = !support.scrollboxSize() &&
					styles.position === "absolute",

				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
				boxSizingNeeded = scrollboxSizeBuggy || extra,
				isBorderBox = boxSizingNeeded &&
					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
				subtract = extra ?
					boxModelAdjustment(
						elem,
						dimension,
						extra,
						isBorderBox,
						styles
					) :
					0;

			// Account for unreliable border-box dimensions by comparing offset* to computed and
			// faking a content-box to get border and padding (gh-3699)
			if ( isBorderBox && scrollboxSizeBuggy ) {
				subtract -= Math.ceil(
					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
					parseFloat( styles[ dimension ] ) -
					boxModelAdjustment( elem, dimension, "border", false, styles ) -
					0.5
				);
			}

			// Convert to pixels if value adjustment is needed
			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
				( matches[ 3 ] || "px" ) !== "px" ) {

				elem.style[ dimension ] = value;
				value = jQuery.css( elem, dimension );
			}

			return setPositiveNumber( elem, value, subtract );
		}
	};
} );

jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
	function( elem, computed ) {
		if ( computed ) {
			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
				elem.getBoundingClientRect().left -
					swap( elem, { marginLeft: 0 }, function() {
						return elem.getBoundingClientRect().left;
					} )
			) + "px";
		}
	}
);

// These hooks are used by animate to expand properties
jQuery.each( {
	margin: "",
	padding: "",
	border: "Width"
}, function( prefix, suffix ) {
	jQuery.cssHooks[ prefix + suffix ] = {
		expand: function( value ) {
			var i = 0,
				expanded = {},

				// Assumes a single number if not a string
				parts = typeof value === "string" ? value.split( " " ) : [ value ];

			for ( ; i < 4; i++ ) {
				expanded[ prefix + cssExpand[ i ] + suffix ] =
					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
			}

			return expanded;
		}
	};

	if ( prefix !== "margin" ) {
		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
	}
} );

jQuery.fn.extend( {
	css: function( name, value ) {
		return access( this, function( elem, name, value ) {
			var styles, len,
				map = {},
				i = 0;

			if ( Array.isArray( name ) ) {
				styles = getStyles( elem );
				len = name.length;

				for ( ; i < len; i++ ) {
					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
				}

				return map;
			}

			return value !== undefined ?
				jQuery.style( elem, name, value ) :
				jQuery.css( elem, name );
		}, name, value, arguments.length > 1 );
	}
} );


function Tween( elem, options, prop, end, easing ) {
	return new Tween.prototype.init( elem, options, prop, end, easing );
}
jQuery.Tween = Tween;

Tween.prototype = {
	constructor: Tween,
	init: function( elem, options, prop, end, easing, unit ) {
		this.elem = elem;
		this.prop = prop;
		this.easing = easing || jQuery.easing._default;
		this.options = options;
		this.start = this.now = this.cur();
		this.end = end;
		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
	},
	cur: function() {
		var hooks = Tween.propHooks[ this.prop ];

		return hooks && hooks.get ?
			hooks.get( this ) :
			Tween.propHooks._default.get( this );
	},
	run: function( percent ) {
		var eased,
			hooks = Tween.propHooks[ this.prop ];

		if ( this.options.duration ) {
			this.pos = eased = jQuery.easing[ this.easing ](
				percent, this.options.duration * percent, 0, 1, this.options.duration
			);
		} else {
			this.pos = eased = percent;
		}
		this.now = ( this.end - this.start ) * eased + this.start;

		if ( this.options.step ) {
			this.options.step.call( this.elem, this.now, this );
		}

		if ( hooks && hooks.set ) {
			hooks.set( this );
		} else {
			Tween.propHooks._default.set( this );
		}
		return this;
	}
};

Tween.prototype.init.prototype = Tween.prototype;

Tween.propHooks = {
	_default: {
		get: function( tween ) {
			var result;

			// Use a property on the element directly when it is not a DOM element,
			// or when there is no matching style property that exists.
			if ( tween.elem.nodeType !== 1 ||
				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
				return tween.elem[ tween.prop ];
			}

			// Passing an empty string as a 3rd parameter to .css will automatically
			// attempt a parseFloat and fallback to a string if the parse fails.
			// Simple values such as "10px" are parsed to Float;
			// complex values such as "rotate(1rad)" are returned as-is.
			result = jQuery.css( tween.elem, tween.prop, "" );

			// Empty strings, null, undefined and "auto" are converted to 0.
			return !result || result === "auto" ? 0 : result;
		},
		set: function( tween ) {

			// Use step hook for back compat.
			// Use cssHook if its there.
			// Use .style if available and use plain properties where available.
			if ( jQuery.fx.step[ tween.prop ] ) {
				jQuery.fx.step[ tween.prop ]( tween );
			} else if ( tween.elem.nodeType === 1 && (
				jQuery.cssHooks[ tween.prop ] ||
					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
			} else {
				tween.elem[ tween.prop ] = tween.now;
			}
		}
	}
};

// Support: IE <=9 only
// Panic based approach to setting things on disconnected nodes
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
	set: function( tween ) {
		if ( tween.elem.nodeType && tween.elem.parentNode ) {
			tween.elem[ tween.prop ] = tween.now;
		}
	}
};

jQuery.easing = {
	linear: function( p ) {
		return p;
	},
	swing: function( p ) {
		return 0.5 - Math.cos( p * Math.PI ) / 2;
	},
	_default: "swing"
};

jQuery.fx = Tween.prototype.init;

// Back compat <1.8 extension point
jQuery.fx.step = {};




var
	fxNow, inProgress,
	rfxtypes = /^(?:toggle|show|hide)$/,
	rrun = /queueHooks$/;

function schedule() {
	if ( inProgress ) {
		if ( document.hidden === false && window.requestAnimationFrame ) {
			window.requestAnimationFrame( schedule );
		} else {
			window.setTimeout( schedule, jQuery.fx.interval );
		}

		jQuery.fx.tick();
	}
}

// Animations created synchronously will run synchronously
function createFxNow() {
	window.setTimeout( function() {
		fxNow = undefined;
	} );
	return ( fxNow = Date.now() );
}

// Generate parameters to create a standard animation
function genFx( type, includeWidth ) {
	var which,
		i = 0,
		attrs = { height: type };

	// If we include width, step value is 1 to do all cssExpand values,
	// otherwise step value is 2 to skip over Left and Right
	includeWidth = includeWidth ? 1 : 0;
	for ( ; i < 4; i += 2 - includeWidth ) {
		which = cssExpand[ i ];
		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
	}

	if ( includeWidth ) {
		attrs.opacity = attrs.width = type;
	}

	return attrs;
}

function createTween( value, prop, animation ) {
	var tween,
		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
		index = 0,
		length = collection.length;
	for ( ; index < length; index++ ) {
		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {

			// We're done with this property
			return tween;
		}
	}
}

function defaultPrefilter( elem, props, opts ) {
	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
		isBox = "width" in props || "height" in props,
		anim = this,
		orig = {},
		style = elem.style,
		hidden = elem.nodeType && isHiddenWithinTree( elem ),
		dataShow = dataPriv.get( elem, "fxshow" );

	// Queue-skipping animations hijack the fx hooks
	if ( !opts.queue ) {
		hooks = jQuery._queueHooks( elem, "fx" );
		if ( hooks.unqueued == null ) {
			hooks.unqueued = 0;
			oldfire = hooks.empty.fire;
			hooks.empty.fire = function() {
				if ( !hooks.unqueued ) {
					oldfire();
				}
			};
		}
		hooks.unqueued++;

		anim.always( function() {

			// Ensure the complete handler is called before this completes
			anim.always( function() {
				hooks.unqueued--;
				if ( !jQuery.queue( elem, "fx" ).length ) {
					hooks.empty.fire();
				}
			} );
		} );
	}

	// Detect show/hide animations
	for ( prop in props ) {
		value = props[ prop ];
		if ( rfxtypes.test( value ) ) {
			delete props[ prop ];
			toggle = toggle || value === "toggle";
			if ( value === ( hidden ? "hide" : "show" ) ) {

				// Pretend to be hidden if this is a "show" and
				// there is still data from a stopped show/hide
				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
					hidden = true;

				// Ignore all other no-op show/hide data
				} else {
					continue;
				}
			}
			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
		}
	}

	// Bail out if this is a no-op like .hide().hide()
	propTween = !jQuery.isEmptyObject( props );
	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
		return;
	}

	// Restrict "overflow" and "display" styles during box animations
	if ( isBox && elem.nodeType === 1 ) {

		// Support: IE <=9 - 11, Edge 12 - 15
		// Record all 3 overflow attributes because IE does not infer the shorthand
		// from identically-valued overflowX and overflowY and Edge just mirrors
		// the overflowX value there.
		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];

		// Identify a display type, preferring old show/hide data over the CSS cascade
		restoreDisplay = dataShow && dataShow.display;
		if ( restoreDisplay == null ) {
			restoreDisplay = dataPriv.get( elem, "display" );
		}
		display = jQuery.css( elem, "display" );
		if ( display === "none" ) {
			if ( restoreDisplay ) {
				display = restoreDisplay;
			} else {

				// Get nonempty value(s) by temporarily forcing visibility
				showHide( [ elem ], true );
				restoreDisplay = elem.style.display || restoreDisplay;
				display = jQuery.css( elem, "display" );
				showHide( [ elem ] );
			}
		}

		// Animate inline elements as inline-block
		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
			if ( jQuery.css( elem, "float" ) === "none" ) {

				// Restore the original display value at the end of pure show/hide animations
				if ( !propTween ) {
					anim.done( function() {
						style.display = restoreDisplay;
					} );
					if ( restoreDisplay == null ) {
						display = style.display;
						restoreDisplay = display === "none" ? "" : display;
					}
				}
				style.display = "inline-block";
			}
		}
	}

	if ( opts.overflow ) {
		style.overflow = "hidden";
		anim.always( function() {
			style.overflow = opts.overflow[ 0 ];
			style.overflowX = opts.overflow[ 1 ];
			style.overflowY = opts.overflow[ 2 ];
		} );
	}

	// Implement show/hide animations
	propTween = false;
	for ( prop in orig ) {

		// General show/hide setup for this element animation
		if ( !propTween ) {
			if ( dataShow ) {
				if ( "hidden" in dataShow ) {
					hidden = dataShow.hidden;
				}
			} else {
				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
			}

			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
			if ( toggle ) {
				dataShow.hidden = !hidden;
			}

			// Show elements before animating them
			if ( hidden ) {
				showHide( [ elem ], true );
			}

			/* eslint-disable no-loop-func */

			anim.done( function() {

				/* eslint-enable no-loop-func */

				// The final step of a "hide" animation is actually hiding the element
				if ( !hidden ) {
					showHide( [ elem ] );
				}
				dataPriv.remove( elem, "fxshow" );
				for ( prop in orig ) {
					jQuery.style( elem, prop, orig[ prop ] );
				}
			} );
		}

		// Per-property setup
		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
		if ( !( prop in dataShow ) ) {
			dataShow[ prop ] = propTween.start;
			if ( hidden ) {
				propTween.end = propTween.start;
				propTween.start = 0;
			}
		}
	}
}

function propFilter( props, specialEasing ) {
	var index, name, easing, value, hooks;

	// camelCase, specialEasing and expand cssHook pass
	for ( index in props ) {
		name = camelCase( index );
		easing = specialEasing[ name ];
		value = props[ index ];
		if ( Array.isArray( value ) ) {
			easing = value[ 1 ];
			value = props[ index ] = value[ 0 ];
		}

		if ( index !== name ) {
			props[ name ] = value;
			delete props[ index ];
		}

		hooks = jQuery.cssHooks[ name ];
		if ( hooks && "expand" in hooks ) {
			value = hooks.expand( value );
			delete props[ name ];

			// Not quite $.extend, this won't overwrite existing keys.
			// Reusing 'index' because we have the correct "name"
			for ( index in value ) {
				if ( !( index in props ) ) {
					props[ index ] = value[ index ];
					specialEasing[ index ] = easing;
				}
			}
		} else {
			specialEasing[ name ] = easing;
		}
	}
}

function Animation( elem, properties, options ) {
	var result,
		stopped,
		index = 0,
		length = Animation.prefilters.length,
		deferred = jQuery.Deferred().always( function() {

			// Don't match elem in the :animated selector
			delete tick.elem;
		} ),
		tick = function() {
			if ( stopped ) {
				return false;
			}
			var currentTime = fxNow || createFxNow(),
				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),

				// Support: Android 2.3 only
				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)
				temp = remaining / animation.duration || 0,
				percent = 1 - temp,
				index = 0,
				length = animation.tweens.length;

			for ( ; index < length; index++ ) {
				animation.tweens[ index ].run( percent );
			}

			deferred.notifyWith( elem, [ animation, percent, remaining ] );

			// If there's more to do, yield
			if ( percent < 1 && length ) {
				return remaining;
			}

			// If this was an empty animation, synthesize a final progress notification
			if ( !length ) {
				deferred.notifyWith( elem, [ animation, 1, 0 ] );
			}

			// Resolve the animation and report its conclusion
			deferred.resolveWith( elem, [ animation ] );
			return false;
		},
		animation = deferred.promise( {
			elem: elem,
			props: jQuery.extend( {}, properties ),
			opts: jQuery.extend( true, {
				specialEasing: {},
				easing: jQuery.easing._default
			}, options ),
			originalProperties: properties,
			originalOptions: options,
			startTime: fxNow || createFxNow(),
			duration: options.duration,
			tweens: [],
			createTween: function( prop, end ) {
				var tween = jQuery.Tween( elem, animation.opts, prop, end,
					animation.opts.specialEasing[ prop ] || animation.opts.easing );
				animation.tweens.push( tween );
				return tween;
			},
			stop: function( gotoEnd ) {
				var index = 0,

					// If we are going to the end, we want to run all the tweens
					// otherwise we skip this part
					length = gotoEnd ? animation.tweens.length : 0;
				if ( stopped ) {
					return this;
				}
				stopped = true;
				for ( ; index < length; index++ ) {
					animation.tweens[ index ].run( 1 );
				}

				// Resolve when we played the last frame; otherwise, reject
				if ( gotoEnd ) {
					deferred.notifyWith( elem, [ animation, 1, 0 ] );
					deferred.resolveWith( elem, [ animation, gotoEnd ] );
				} else {
					deferred.rejectWith( elem, [ animation, gotoEnd ] );
				}
				return this;
			}
		} ),
		props = animation.props;

	propFilter( props, animation.opts.specialEasing );

	for ( ; index < length; index++ ) {
		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
		if ( result ) {
			if ( isFunction( result.stop ) ) {
				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
					result.stop.bind( result );
			}
			return result;
		}
	}

	jQuery.map( props, createTween, animation );

	if ( isFunction( animation.opts.start ) ) {
		animation.opts.start.call( elem, animation );
	}

	// Attach callbacks from options
	animation
		.progress( animation.opts.progress )
		.done( animation.opts.done, animation.opts.complete )
		.fail( animation.opts.fail )
		.always( animation.opts.always );

	jQuery.fx.timer(
		jQuery.extend( tick, {
			elem: elem,
			anim: animation,
			queue: animation.opts.queue
		} )
	);

	return animation;
}

jQuery.Animation = jQuery.extend( Animation, {

	tweeners: {
		"*": [ function( prop, value ) {
			var tween = this.createTween( prop, value );
			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
			return tween;
		} ]
	},

	tweener: function( props, callback ) {
		if ( isFunction( props ) ) {
			callback = props;
			props = [ "*" ];
		} else {
			props = props.match( rnothtmlwhite );
		}

		var prop,
			index = 0,
			length = props.length;

		for ( ; index < length; index++ ) {
			prop = props[ index ];
			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
			Animation.tweeners[ prop ].unshift( callback );
		}
	},

	prefilters: [ defaultPrefilter ],

	prefilter: function( callback, prepend ) {
		if ( prepend ) {
			Animation.prefilters.unshift( callback );
		} else {
			Animation.prefilters.push( callback );
		}
	}
} );

jQuery.speed = function( speed, easing, fn ) {
	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
		complete: fn || !fn && easing ||
			isFunction( speed ) && speed,
		duration: speed,
		easing: fn && easing || easing && !isFunction( easing ) && easing
	};

	// Go to the end state if fx are off
	if ( jQuery.fx.off ) {
		opt.duration = 0;

	} else {
		if ( typeof opt.duration !== "number" ) {
			if ( opt.duration in jQuery.fx.speeds ) {
				opt.duration = jQuery.fx.speeds[ opt.duration ];

			} else {
				opt.duration = jQuery.fx.speeds._default;
			}
		}
	}

	// Normalize opt.queue - true/undefined/null -> "fx"
	if ( opt.queue == null || opt.queue === true ) {
		opt.queue = "fx";
	}

	// Queueing
	opt.old = opt.complete;

	opt.complete = function() {
		if ( isFunction( opt.old ) ) {
			opt.old.call( this );
		}

		if ( opt.queue ) {
			jQuery.dequeue( this, opt.queue );
		}
	};

	return opt;
};

jQuery.fn.extend( {
	fadeTo: function( speed, to, easing, callback ) {

		// Show any hidden elements after setting opacity to 0
		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()

			// Animate to the value specified
			.end().animate( { opacity: to }, speed, easing, callback );
	},
	animate: function( prop, speed, easing, callback ) {
		var empty = jQuery.isEmptyObject( prop ),
			optall = jQuery.speed( speed, easing, callback ),
			doAnimation = function() {

				// Operate on a copy of prop so per-property easing won't be lost
				var anim = Animation( this, jQuery.extend( {}, prop ), optall );

				// Empty animations, or finishing resolves immediately
				if ( empty || dataPriv.get( this, "finish" ) ) {
					anim.stop( true );
				}
			};

		doAnimation.finish = doAnimation;

		return empty || optall.queue === false ?
			this.each( doAnimation ) :
			this.queue( optall.queue, doAnimation );
	},
	stop: function( type, clearQueue, gotoEnd ) {
		var stopQueue = function( hooks ) {
			var stop = hooks.stop;
			delete hooks.stop;
			stop( gotoEnd );
		};

		if ( typeof type !== "string" ) {
			gotoEnd = clearQueue;
			clearQueue = type;
			type = undefined;
		}
		if ( clearQueue ) {
			this.queue( type || "fx", [] );
		}

		return this.each( function() {
			var dequeue = true,
				index = type != null && type + "queueHooks",
				timers = jQuery.timers,
				data = dataPriv.get( this );

			if ( index ) {
				if ( data[ index ] && data[ index ].stop ) {
					stopQueue( data[ index ] );
				}
			} else {
				for ( index in data ) {
					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
						stopQueue( data[ index ] );
					}
				}
			}

			for ( index = timers.length; index--; ) {
				if ( timers[ index ].elem === this &&
					( type == null || timers[ index ].queue === type ) ) {

					timers[ index ].anim.stop( gotoEnd );
					dequeue = false;
					timers.splice( index, 1 );
				}
			}

			// Start the next in the queue if the last step wasn't forced.
			// Timers currently will call their complete callbacks, which
			// will dequeue but only if they were gotoEnd.
			if ( dequeue || !gotoEnd ) {
				jQuery.dequeue( this, type );
			}
		} );
	},
	finish: function( type ) {
		if ( type !== false ) {
			type = type || "fx";
		}
		return this.each( function() {
			var index,
				data = dataPriv.get( this ),
				queue = data[ type + "queue" ],
				hooks = data[ type + "queueHooks" ],
				timers = jQuery.timers,
				length = queue ? queue.length : 0;

			// Enable finishing flag on private data
			data.finish = true;

			// Empty the queue first
			jQuery.queue( this, type, [] );

			if ( hooks && hooks.stop ) {
				hooks.stop.call( this, true );
			}

			// Look for any active animations, and finish them
			for ( index = timers.length; index--; ) {
				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
					timers[ index ].anim.stop( true );
					timers.splice( index, 1 );
				}
			}

			// Look for any animations in the old queue and finish them
			for ( index = 0; index < length; index++ ) {
				if ( queue[ index ] && queue[ index ].finish ) {
					queue[ index ].finish.call( this );
				}
			}

			// Turn off finishing flag
			delete data.finish;
		} );
	}
} );

jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
	var cssFn = jQuery.fn[ name ];
	jQuery.fn[ name ] = function( speed, easing, callback ) {
		return speed == null || typeof speed === "boolean" ?
			cssFn.apply( this, arguments ) :
			this.animate( genFx( name, true ), speed, easing, callback );
	};
} );

// Generate shortcuts for custom animations
jQuery.each( {
	slideDown: genFx( "show" ),
	slideUp: genFx( "hide" ),
	slideToggle: genFx( "toggle" ),
	fadeIn: { opacity: "show" },
	fadeOut: { opacity: "hide" },
	fadeToggle: { opacity: "toggle" }
}, function( name, props ) {
	jQuery.fn[ name ] = function( speed, easing, callback ) {
		return this.animate( props, speed, easing, callback );
	};
} );

jQuery.timers = [];
jQuery.fx.tick = function() {
	var timer,
		i = 0,
		timers = jQuery.timers;

	fxNow = Date.now();

	for ( ; i < timers.length; i++ ) {
		timer = timers[ i ];

		// Run the timer and safely remove it when done (allowing for external removal)
		if ( !timer() && timers[ i ] === timer ) {
			timers.splice( i--, 1 );
		}
	}

	if ( !timers.length ) {
		jQuery.fx.stop();
	}
	fxNow = undefined;
};

jQuery.fx.timer = function( timer ) {
	jQuery.timers.push( timer );
	jQuery.fx.start();
};

jQuery.fx.interval = 13;
jQuery.fx.start = function() {
	if ( inProgress ) {
		return;
	}

	inProgress = true;
	schedule();
};

jQuery.fx.stop = function() {
	inProgress = null;
};

jQuery.fx.speeds = {
	slow: 600,
	fast: 200,

	// Default speed
	_default: 400
};


// Based off of the plugin by Clint Helfers, with permission.
jQuery.fn.delay = function( time, type ) {
	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
	type = type || "fx";

	return this.queue( type, function( next, hooks ) {
		var timeout = window.setTimeout( next, time );
		hooks.stop = function() {
			window.clearTimeout( timeout );
		};
	} );
};


( function() {
	var input = document.createElement( "input" ),
		select = document.createElement( "select" ),
		opt = select.appendChild( document.createElement( "option" ) );

	input.type = "checkbox";

	// Support: Android <=4.3 only
	// Default value for a checkbox should be "on"
	support.checkOn = input.value !== "";

	// Support: IE <=11 only
	// Must access selectedIndex to make default options select
	support.optSelected = opt.selected;

	// Support: IE <=11 only
	// An input loses its value after becoming a radio
	input = document.createElement( "input" );
	input.value = "t";
	input.type = "radio";
	support.radioValue = input.value === "t";
} )();


var boolHook,
	attrHandle = jQuery.expr.attrHandle;

jQuery.fn.extend( {
	attr: function( name, value ) {
		return access( this, jQuery.attr, name, value, arguments.length > 1 );
	},

	removeAttr: function( name ) {
		return this.each( function() {
			jQuery.removeAttr( this, name );
		} );
	}
} );

jQuery.extend( {
	attr: function( elem, name, value ) {
		var ret, hooks,
			nType = elem.nodeType;

		// Don't get/set attributes on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		// Fallback to prop when attributes are not supported
		if ( typeof elem.getAttribute === "undefined" ) {
			return jQuery.prop( elem, name, value );
		}

		// Attribute hooks are determined by the lowercase version
		// Grab necessary hook if one is defined
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
		}

		if ( value !== undefined ) {
			if ( value === null ) {
				jQuery.removeAttr( elem, name );
				return;
			}

			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			elem.setAttribute( name, value + "" );
			return value;
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		ret = jQuery.find.attr( elem, name );

		// Non-existent attributes return null, we normalize to undefined
		return ret == null ? undefined : ret;
	},

	attrHooks: {
		type: {
			set: function( elem, value ) {
				if ( !support.radioValue && value === "radio" &&
					nodeName( elem, "input" ) ) {
					var val = elem.value;
					elem.setAttribute( "type", value );
					if ( val ) {
						elem.value = val;
					}
					return value;
				}
			}
		}
	},

	removeAttr: function( elem, value ) {
		var name,
			i = 0,

			// Attribute names can contain non-HTML whitespace characters
			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
			attrNames = value && value.match( rnothtmlwhite );

		if ( attrNames && elem.nodeType === 1 ) {
			while ( ( name = attrNames[ i++ ] ) ) {
				elem.removeAttribute( name );
			}
		}
	}
} );

// Hooks for boolean attributes
boolHook = {
	set: function( elem, value, name ) {
		if ( value === false ) {

			// Remove boolean attributes when set to false
			jQuery.removeAttr( elem, name );
		} else {
			elem.setAttribute( name, name );
		}
		return name;
	}
};

jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
	var getter = attrHandle[ name ] || jQuery.find.attr;

	attrHandle[ name ] = function( elem, name, isXML ) {
		var ret, handle,
			lowercaseName = name.toLowerCase();

		if ( !isXML ) {

			// Avoid an infinite loop by temporarily removing this function from the getter
			handle = attrHandle[ lowercaseName ];
			attrHandle[ lowercaseName ] = ret;
			ret = getter( elem, name, isXML ) != null ?
				lowercaseName :
				null;
			attrHandle[ lowercaseName ] = handle;
		}
		return ret;
	};
} );




var rfocusable = /^(?:input|select|textarea|button)$/i,
	rclickable = /^(?:a|area)$/i;

jQuery.fn.extend( {
	prop: function( name, value ) {
		return access( this, jQuery.prop, name, value, arguments.length > 1 );
	},

	removeProp: function( name ) {
		return this.each( function() {
			delete this[ jQuery.propFix[ name ] || name ];
		} );
	}
} );

jQuery.extend( {
	prop: function( elem, name, value ) {
		var ret, hooks,
			nType = elem.nodeType;

		// Don't get/set properties on text, comment and attribute nodes
		if ( nType === 3 || nType === 8 || nType === 2 ) {
			return;
		}

		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {

			// Fix name and attach hooks
			name = jQuery.propFix[ name ] || name;
			hooks = jQuery.propHooks[ name ];
		}

		if ( value !== undefined ) {
			if ( hooks && "set" in hooks &&
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
				return ret;
			}

			return ( elem[ name ] = value );
		}

		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
			return ret;
		}

		return elem[ name ];
	},

	propHooks: {
		tabIndex: {
			get: function( elem ) {

				// Support: IE <=9 - 11 only
				// elem.tabIndex doesn't always return the
				// correct value when it hasn't been explicitly set
				// Use proper attribute retrieval (trac-12072)
				var tabindex = jQuery.find.attr( elem, "tabindex" );

				if ( tabindex ) {
					return parseInt( tabindex, 10 );
				}

				if (
					rfocusable.test( elem.nodeName ) ||
					rclickable.test( elem.nodeName ) &&
					elem.href
				) {
					return 0;
				}

				return -1;
			}
		}
	},

	propFix: {
		"for": "htmlFor",
		"class": "className"
	}
} );

// Support: IE <=11 only
// Accessing the selectedIndex property
// forces the browser to respect setting selected
// on the option
// The getter ensures a default option is selected
// when in an optgroup
// eslint rule "no-unused-expressions" is disabled for this code
// since it considers such accessions noop
if ( !support.optSelected ) {
	jQuery.propHooks.selected = {
		get: function( elem ) {

			/* eslint no-unused-expressions: "off" */

			var parent = elem.parentNode;
			if ( parent && parent.parentNode ) {
				parent.parentNode.selectedIndex;
			}
			return null;
		},
		set: function( elem ) {

			/* eslint no-unused-expressions: "off" */

			var parent = elem.parentNode;
			if ( parent ) {
				parent.selectedIndex;

				if ( parent.parentNode ) {
					parent.parentNode.selectedIndex;
				}
			}
		}
	};
}

jQuery.each( [
	"tabIndex",
	"readOnly",
	"maxLength",
	"cellSpacing",
	"cellPadding",
	"rowSpan",
	"colSpan",
	"useMap",
	"frameBorder",
	"contentEditable"
], function() {
	jQuery.propFix[ this.toLowerCase() ] = this;
} );




	// Strip and collapse whitespace according to HTML spec
	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
	function stripAndCollapse( value ) {
		var tokens = value.match( rnothtmlwhite ) || [];
		return tokens.join( " " );
	}


function getClass( elem ) {
	return elem.getAttribute && elem.getAttribute( "class" ) || "";
}

function classesToArray( value ) {
	if ( Array.isArray( value ) ) {
		return value;
	}
	if ( typeof value === "string" ) {
		return value.match( rnothtmlwhite ) || [];
	}
	return [];
}

jQuery.fn.extend( {
	addClass: function( value ) {
		var classNames, cur, curValue, className, i, finalValue;

		if ( isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		classNames = classesToArray( value );

		if ( classNames.length ) {
			return this.each( function() {
				curValue = getClass( this );
				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );

				if ( cur ) {
					for ( i = 0; i < classNames.length; i++ ) {
						className = classNames[ i ];
						if ( cur.indexOf( " " + className + " " ) < 0 ) {
							cur += className + " ";
						}
					}

					// Only assign if different to avoid unneeded rendering.
					finalValue = stripAndCollapse( cur );
					if ( curValue !== finalValue ) {
						this.setAttribute( "class", finalValue );
					}
				}
			} );
		}

		return this;
	},

	removeClass: function( value ) {
		var classNames, cur, curValue, className, i, finalValue;

		if ( isFunction( value ) ) {
			return this.each( function( j ) {
				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
			} );
		}

		if ( !arguments.length ) {
			return this.attr( "class", "" );
		}

		classNames = classesToArray( value );

		if ( classNames.length ) {
			return this.each( function() {
				curValue = getClass( this );

				// This expression is here for better compressibility (see addClass)
				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );

				if ( cur ) {
					for ( i = 0; i < classNames.length; i++ ) {
						className = classNames[ i ];

						// Remove *all* instances
						while ( cur.indexOf( " " + className + " " ) > -1 ) {
							cur = cur.replace( " " + className + " ", " " );
						}
					}

					// Only assign if different to avoid unneeded rendering.
					finalValue = stripAndCollapse( cur );
					if ( curValue !== finalValue ) {
						this.setAttribute( "class", finalValue );
					}
				}
			} );
		}

		return this;
	},

	toggleClass: function( value, stateVal ) {
		var classNames, className, i, self,
			type = typeof value,
			isValidValue = type === "string" || Array.isArray( value );

		if ( isFunction( value ) ) {
			return this.each( function( i ) {
				jQuery( this ).toggleClass(
					value.call( this, i, getClass( this ), stateVal ),
					stateVal
				);
			} );
		}

		if ( typeof stateVal === "boolean" && isValidValue ) {
			return stateVal ? this.addClass( value ) : this.removeClass( value );
		}

		classNames = classesToArray( value );

		return this.each( function() {
			if ( isValidValue ) {

				// Toggle individual class names
				self = jQuery( this );

				for ( i = 0; i < classNames.length; i++ ) {
					className = classNames[ i ];

					// Check each className given, space separated list
					if ( self.hasClass( className ) ) {
						self.removeClass( className );
					} else {
						self.addClass( className );
					}
				}

			// Toggle whole class name
			} else if ( value === undefined || type === "boolean" ) {
				className = getClass( this );
				if ( className ) {

					// Store className if set
					dataPriv.set( this, "__className__", className );
				}

				// If the element has a class name or if we're passed `false`,
				// then remove the whole classname (if there was one, the above saved it).
				// Otherwise bring back whatever was previously saved (if anything),
				// falling back to the empty string if nothing was stored.
				if ( this.setAttribute ) {
					this.setAttribute( "class",
						className || value === false ?
							"" :
							dataPriv.get( this, "__className__" ) || ""
					);
				}
			}
		} );
	},

	hasClass: function( selector ) {
		var className, elem,
			i = 0;

		className = " " + selector + " ";
		while ( ( elem = this[ i++ ] ) ) {
			if ( elem.nodeType === 1 &&
				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
				return true;
			}
		}

		return false;
	}
} );




var rreturn = /\r/g;

jQuery.fn.extend( {
	val: function( value ) {
		var hooks, ret, valueIsFunction,
			elem = this[ 0 ];

		if ( !arguments.length ) {
			if ( elem ) {
				hooks = jQuery.valHooks[ elem.type ] ||
					jQuery.valHooks[ elem.nodeName.toLowerCase() ];

				if ( hooks &&
					"get" in hooks &&
					( ret = hooks.get( elem, "value" ) ) !== undefined
				) {
					return ret;
				}

				ret = elem.value;

				// Handle most common string cases
				if ( typeof ret === "string" ) {
					return ret.replace( rreturn, "" );
				}

				// Handle cases where value is null/undef or number
				return ret == null ? "" : ret;
			}

			return;
		}

		valueIsFunction = isFunction( value );

		return this.each( function( i ) {
			var val;

			if ( this.nodeType !== 1 ) {
				return;
			}

			if ( valueIsFunction ) {
				val = value.call( this, i, jQuery( this ).val() );
			} else {
				val = value;
			}

			// Treat null/undefined as ""; convert numbers to string
			if ( val == null ) {
				val = "";

			} else if ( typeof val === "number" ) {
				val += "";

			} else if ( Array.isArray( val ) ) {
				val = jQuery.map( val, function( value ) {
					return value == null ? "" : value + "";
				} );
			}

			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];

			// If set returns undefined, fall back to normal setting
			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
				this.value = val;
			}
		} );
	}
} );

jQuery.extend( {
	valHooks: {
		option: {
			get: function( elem ) {

				var val = jQuery.find.attr( elem, "value" );
				return val != null ?
					val :

					// Support: IE <=10 - 11 only
					// option.text throws exceptions (trac-14686, trac-14858)
					// Strip and collapse whitespace
					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
					stripAndCollapse( jQuery.text( elem ) );
			}
		},
		select: {
			get: function( elem ) {
				var value, option, i,
					options = elem.options,
					index = elem.selectedIndex,
					one = elem.type === "select-one",
					values = one ? null : [],
					max = one ? index + 1 : options.length;

				if ( index < 0 ) {
					i = max;

				} else {
					i = one ? index : 0;
				}

				// Loop through all the selected options
				for ( ; i < max; i++ ) {
					option = options[ i ];

					// Support: IE <=9 only
					// IE8-9 doesn't update selected after form reset (trac-2551)
					if ( ( option.selected || i === index ) &&

							// Don't return options that are disabled or in a disabled optgroup
							!option.disabled &&
							( !option.parentNode.disabled ||
								!nodeName( option.parentNode, "optgroup" ) ) ) {

						// Get the specific value for the option
						value = jQuery( option ).val();

						// We don't need an array for one selects
						if ( one ) {
							return value;
						}

						// Multi-Selects return an array
						values.push( value );
					}
				}

				return values;
			},

			set: function( elem, value ) {
				var optionSet, option,
					options = elem.options,
					values = jQuery.makeArray( value ),
					i = options.length;

				while ( i-- ) {
					option = options[ i ];

					/* eslint-disable no-cond-assign */

					if ( option.selected =
						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
					) {
						optionSet = true;
					}

					/* eslint-enable no-cond-assign */
				}

				// Force browsers to behave consistently when non-matching value is set
				if ( !optionSet ) {
					elem.selectedIndex = -1;
				}
				return values;
			}
		}
	}
} );

// Radios and checkboxes getter/setter
jQuery.each( [ "radio", "checkbox" ], function() {
	jQuery.valHooks[ this ] = {
		set: function( elem, value ) {
			if ( Array.isArray( value ) ) {
				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
			}
		}
	};
	if ( !support.checkOn ) {
		jQuery.valHooks[ this ].get = function( elem ) {
			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
		};
	}
} );




// Return jQuery for attributes-only inclusion
var location = window.location;

var nonce = { guid: Date.now() };

var rquery = ( /\?/ );



// Cross-browser xml parsing
jQuery.parseXML = function( data ) {
	var xml, parserErrorElem;
	if ( !data || typeof data !== "string" ) {
		return null;
	}

	// Support: IE 9 - 11 only
	// IE throws on parseFromString with invalid input.
	try {
		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
	} catch ( e ) {}

	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
	if ( !xml || parserErrorElem ) {
		jQuery.error( "Invalid XML: " + (
			parserErrorElem ?
				jQuery.map( parserErrorElem.childNodes, function( el ) {
					return el.textContent;
				} ).join( "\n" ) :
				data
		) );
	}
	return xml;
};


var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
	stopPropagationCallback = function( e ) {
		e.stopPropagation();
	};

jQuery.extend( jQuery.event, {

	trigger: function( event, data, elem, onlyHandlers ) {

		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
			eventPath = [ elem || document ],
			type = hasOwn.call( event, "type" ) ? event.type : event,
			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];

		cur = lastElement = tmp = elem = elem || document;

		// Don't do events on text and comment nodes
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
			return;
		}

		// focus/blur morphs to focusin/out; ensure we're not firing them right now
		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
			return;
		}

		if ( type.indexOf( "." ) > -1 ) {

			// Namespaced trigger; create a regexp to match event type in handle()
			namespaces = type.split( "." );
			type = namespaces.shift();
			namespaces.sort();
		}
		ontype = type.indexOf( ":" ) < 0 && "on" + type;

		// Caller can pass in a jQuery.Event object, Object, or just an event type string
		event = event[ jQuery.expando ] ?
			event :
			new jQuery.Event( type, typeof event === "object" && event );

		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
		event.isTrigger = onlyHandlers ? 2 : 3;
		event.namespace = namespaces.join( "." );
		event.rnamespace = event.namespace ?
			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
			null;

		// Clean up the event in case it is being reused
		event.result = undefined;
		if ( !event.target ) {
			event.target = elem;
		}

		// Clone any incoming data and prepend the event, creating the handler arg list
		data = data == null ?
			[ event ] :
			jQuery.makeArray( data, [ event ] );

		// Allow special events to draw outside the lines
		special = jQuery.event.special[ type ] || {};
		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
			return;
		}

		// Determine event propagation path in advance, per W3C events spec (trac-9951)
		// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {

			bubbleType = special.delegateType || type;
			if ( !rfocusMorph.test( bubbleType + type ) ) {
				cur = cur.parentNode;
			}
			for ( ; cur; cur = cur.parentNode ) {
				eventPath.push( cur );
				tmp = cur;
			}

			// Only add window if we got to document (e.g., not plain obj or detached DOM)
			if ( tmp === ( elem.ownerDocument || document ) ) {
				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
			}
		}

		// Fire handlers on the event path
		i = 0;
		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
			lastElement = cur;
			event.type = i > 1 ?
				bubbleType :
				special.bindType || type;

			// jQuery handler
			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
				dataPriv.get( cur, "handle" );
			if ( handle ) {
				handle.apply( cur, data );
			}

			// Native handler
			handle = ontype && cur[ ontype ];
			if ( handle && handle.apply && acceptData( cur ) ) {
				event.result = handle.apply( cur, data );
				if ( event.result === false ) {
					event.preventDefault();
				}
			}
		}
		event.type = type;

		// If nobody prevented the default action, do it now
		if ( !onlyHandlers && !event.isDefaultPrevented() ) {

			if ( ( !special._default ||
				special._default.apply( eventPath.pop(), data ) === false ) &&
				acceptData( elem ) ) {

				// Call a native DOM method on the target with the same name as the event.
				// Don't do default actions on window, that's where global variables be (trac-6170)
				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {

					// Don't re-trigger an onFOO event when we call its FOO() method
					tmp = elem[ ontype ];

					if ( tmp ) {
						elem[ ontype ] = null;
					}

					// Prevent re-triggering of the same event, since we already bubbled it above
					jQuery.event.triggered = type;

					if ( event.isPropagationStopped() ) {
						lastElement.addEventListener( type, stopPropagationCallback );
					}

					elem[ type ]();

					if ( event.isPropagationStopped() ) {
						lastElement.removeEventListener( type, stopPropagationCallback );
					}

					jQuery.event.triggered = undefined;

					if ( tmp ) {
						elem[ ontype ] = tmp;
					}
				}
			}
		}

		return event.result;
	},

	// Piggyback on a donor event to simulate a different one
	// Used only for `focus(in | out)` events
	simulate: function( type, elem, event ) {
		var e = jQuery.extend(
			new jQuery.Event(),
			event,
			{
				type: type,
				isSimulated: true
			}
		);

		jQuery.event.trigger( e, null, elem );
	}

} );

jQuery.fn.extend( {

	trigger: function( type, data ) {
		return this.each( function() {
			jQuery.event.trigger( type, data, this );
		} );
	},
	triggerHandler: function( type, data ) {
		var elem = this[ 0 ];
		if ( elem ) {
			return jQuery.event.trigger( type, data, elem, true );
		}
	}
} );


var
	rbracket = /\[\]$/,
	rCRLF = /\r?\n/g,
	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
	rsubmittable = /^(?:input|select|textarea|keygen)/i;

function buildParams( prefix, obj, traditional, add ) {
	var name;

	if ( Array.isArray( obj ) ) {

		// Serialize array item.
		jQuery.each( obj, function( i, v ) {
			if ( traditional || rbracket.test( prefix ) ) {

				// Treat each array item as a scalar.
				add( prefix, v );

			} else {

				// Item is non-scalar (array or object), encode its numeric index.
				buildParams(
					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
					v,
					traditional,
					add
				);
			}
		} );

	} else if ( !traditional && toType( obj ) === "object" ) {

		// Serialize object item.
		for ( name in obj ) {
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
		}

	} else {

		// Serialize scalar item.
		add( prefix, obj );
	}
}

// Serialize an array of form elements or a set of
// key/values into a query string
jQuery.param = function( a, traditional ) {
	var prefix,
		s = [],
		add = function( key, valueOrFunction ) {

			// If value is a function, invoke it and use its return value
			var value = isFunction( valueOrFunction ) ?
				valueOrFunction() :
				valueOrFunction;

			s[ s.length ] = encodeURIComponent( key ) + "=" +
				encodeURIComponent( value == null ? "" : value );
		};

	if ( a == null ) {
		return "";
	}

	// If an array was passed in, assume that it is an array of form elements.
	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {

		// Serialize the form elements
		jQuery.each( a, function() {
			add( this.name, this.value );
		} );

	} else {

		// If traditional, encode the "old" way (the way 1.3.2 or older
		// did it), otherwise encode params recursively.
		for ( prefix in a ) {
			buildParams( prefix, a[ prefix ], traditional, add );
		}
	}

	// Return the resulting serialization
	return s.join( "&" );
};

jQuery.fn.extend( {
	serialize: function() {
		return jQuery.param( this.serializeArray() );
	},
	serializeArray: function() {
		return this.map( function() {

			// Can add propHook for "elements" to filter or add form elements
			var elements = jQuery.prop( this, "elements" );
			return elements ? jQuery.makeArray( elements ) : this;
		} ).filter( function() {
			var type = this.type;

			// Use .is( ":disabled" ) so that fieldset[disabled] works
			return this.name && !jQuery( this ).is( ":disabled" ) &&
				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
				( this.checked || !rcheckableType.test( type ) );
		} ).map( function( _i, elem ) {
			var val = jQuery( this ).val();

			if ( val == null ) {
				return null;
			}

			if ( Array.isArray( val ) ) {
				return jQuery.map( val, function( val ) {
					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
				} );
			}

			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
		} ).get();
	}
} );


var
	r20 = /%20/g,
	rhash = /#.*$/,
	rantiCache = /([?&])_=[^&]*/,
	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,

	// trac-7653, trac-8125, trac-8152: local protocol detection
	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
	rnoContent = /^(?:GET|HEAD)$/,
	rprotocol = /^\/\//,

	/* Prefilters
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
	 * 2) These are called:
	 *    - BEFORE asking for a transport
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
	 * 3) key is the dataType
	 * 4) the catchall symbol "*" can be used
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
	 */
	prefilters = {},

	/* Transports bindings
	 * 1) key is the dataType
	 * 2) the catchall symbol "*" can be used
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
	 */
	transports = {},

	// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression
	allTypes = "*/".concat( "*" ),

	// Anchor tag for parsing the document origin
	originAnchor = document.createElement( "a" );

originAnchor.href = location.href;

// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {

	// dataTypeExpression is optional and defaults to "*"
	return function( dataTypeExpression, func ) {

		if ( typeof dataTypeExpression !== "string" ) {
			func = dataTypeExpression;
			dataTypeExpression = "*";
		}

		var dataType,
			i = 0,
			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];

		if ( isFunction( func ) ) {

			// For each dataType in the dataTypeExpression
			while ( ( dataType = dataTypes[ i++ ] ) ) {

				// Prepend if requested
				if ( dataType[ 0 ] === "+" ) {
					dataType = dataType.slice( 1 ) || "*";
					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );

				// Otherwise append
				} else {
					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
				}
			}
		}
	};
}

// Base inspection function for prefilters and transports
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {

	var inspected = {},
		seekingTransport = ( structure === transports );

	function inspect( dataType ) {
		var selected;
		inspected[ dataType ] = true;
		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
			if ( typeof dataTypeOrTransport === "string" &&
				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {

				options.dataTypes.unshift( dataTypeOrTransport );
				inspect( dataTypeOrTransport );
				return false;
			} else if ( seekingTransport ) {
				return !( selected = dataTypeOrTransport );
			}
		} );
		return selected;
	}

	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
}

// A special extend for ajax options
// that takes "flat" options (not to be deep extended)
// Fixes trac-9887
function ajaxExtend( target, src ) {
	var key, deep,
		flatOptions = jQuery.ajaxSettings.flatOptions || {};

	for ( key in src ) {
		if ( src[ key ] !== undefined ) {
			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
		}
	}
	if ( deep ) {
		jQuery.extend( true, target, deep );
	}

	return target;
}

/* Handles responses to an ajax request:
 * - finds the right dataType (mediates between content-type and expected dataType)
 * - returns the corresponding response
 */
function ajaxHandleResponses( s, jqXHR, responses ) {

	var ct, type, finalDataType, firstDataType,
		contents = s.contents,
		dataTypes = s.dataTypes;

	// Remove auto dataType and get content-type in the process
	while ( dataTypes[ 0 ] === "*" ) {
		dataTypes.shift();
		if ( ct === undefined ) {
			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
		}
	}

	// Check if we're dealing with a known content-type
	if ( ct ) {
		for ( type in contents ) {
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
				dataTypes.unshift( type );
				break;
			}
		}
	}

	// Check to see if we have a response for the expected dataType
	if ( dataTypes[ 0 ] in responses ) {
		finalDataType = dataTypes[ 0 ];
	} else {

		// Try convertible dataTypes
		for ( type in responses ) {
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
				finalDataType = type;
				break;
			}
			if ( !firstDataType ) {
				firstDataType = type;
			}
		}

		// Or just use first one
		finalDataType = finalDataType || firstDataType;
	}

	// If we found a dataType
	// We add the dataType to the list if needed
	// and return the corresponding response
	if ( finalDataType ) {
		if ( finalDataType !== dataTypes[ 0 ] ) {
			dataTypes.unshift( finalDataType );
		}
		return responses[ finalDataType ];
	}
}

/* Chain conversions given the request and the original response
 * Also sets the responseXXX fields on the jqXHR instance
 */
function ajaxConvert( s, response, jqXHR, isSuccess ) {
	var conv2, current, conv, tmp, prev,
		converters = {},

		// Work with a copy of dataTypes in case we need to modify it for conversion
		dataTypes = s.dataTypes.slice();

	// Create converters map with lowercased keys
	if ( dataTypes[ 1 ] ) {
		for ( conv in s.converters ) {
			converters[ conv.toLowerCase() ] = s.converters[ conv ];
		}
	}

	current = dataTypes.shift();

	// Convert to each sequential dataType
	while ( current ) {

		if ( s.responseFields[ current ] ) {
			jqXHR[ s.responseFields[ current ] ] = response;
		}

		// Apply the dataFilter if provided
		if ( !prev && isSuccess && s.dataFilter ) {
			response = s.dataFilter( response, s.dataType );
		}

		prev = current;
		current = dataTypes.shift();

		if ( current ) {

			// There's only work to do if current dataType is non-auto
			if ( current === "*" ) {

				current = prev;

			// Convert response if prev dataType is non-auto and differs from current
			} else if ( prev !== "*" && prev !== current ) {

				// Seek a direct converter
				conv = converters[ prev + " " + current ] || converters[ "* " + current ];

				// If none found, seek a pair
				if ( !conv ) {
					for ( conv2 in converters ) {

						// If conv2 outputs current
						tmp = conv2.split( " " );
						if ( tmp[ 1 ] === current ) {

							// If prev can be converted to accepted input
							conv = converters[ prev + " " + tmp[ 0 ] ] ||
								converters[ "* " + tmp[ 0 ] ];
							if ( conv ) {

								// Condense equivalence converters
								if ( conv === true ) {
									conv = converters[ conv2 ];

								// Otherwise, insert the intermediate dataType
								} else if ( converters[ conv2 ] !== true ) {
									current = tmp[ 0 ];
									dataTypes.unshift( tmp[ 1 ] );
								}
								break;
							}
						}
					}
				}

				// Apply converter (if not an equivalence)
				if ( conv !== true ) {

					// Unless errors are allowed to bubble, catch and return them
					if ( conv && s.throws ) {
						response = conv( response );
					} else {
						try {
							response = conv( response );
						} catch ( e ) {
							return {
								state: "parsererror",
								error: conv ? e : "No conversion from " + prev + " to " + current
							};
						}
					}
				}
			}
		}
	}

	return { state: "success", data: response };
}

jQuery.extend( {

	// Counter for holding the number of active queries
	active: 0,

	// Last-Modified header cache for next request
	lastModified: {},
	etag: {},

	ajaxSettings: {
		url: location.href,
		type: "GET",
		isLocal: rlocalProtocol.test( location.protocol ),
		global: true,
		processData: true,
		async: true,
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",

		/*
		timeout: 0,
		data: null,
		dataType: null,
		username: null,
		password: null,
		cache: null,
		throws: false,
		traditional: false,
		headers: {},
		*/

		accepts: {
			"*": allTypes,
			text: "text/plain",
			html: "text/html",
			xml: "application/xml, text/xml",
			json: "application/json, text/javascript"
		},

		contents: {
			xml: /\bxml\b/,
			html: /\bhtml/,
			json: /\bjson\b/
		},

		responseFields: {
			xml: "responseXML",
			text: "responseText",
			json: "responseJSON"
		},

		// Data converters
		// Keys separate source (or catchall "*") and destination types with a single space
		converters: {

			// Convert anything to text
			"* text": String,

			// Text to html (true = no transformation)
			"text html": true,

			// Evaluate text as a json expression
			"text json": JSON.parse,

			// Parse text as xml
			"text xml": jQuery.parseXML
		},

		// For options that shouldn't be deep extended:
		// you can add your own custom options here if
		// and when you create one that shouldn't be
		// deep extended (see ajaxExtend)
		flatOptions: {
			url: true,
			context: true
		}
	},

	// Creates a full fledged settings object into target
	// with both ajaxSettings and settings fields.
	// If target is omitted, writes into ajaxSettings.
	ajaxSetup: function( target, settings ) {
		return settings ?

			// Building a settings object
			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :

			// Extending ajaxSettings
			ajaxExtend( jQuery.ajaxSettings, target );
	},

	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
	ajaxTransport: addToPrefiltersOrTransports( transports ),

	// Main method
	ajax: function( url, options ) {

		// If url is an object, simulate pre-1.5 signature
		if ( typeof url === "object" ) {
			options = url;
			url = undefined;
		}

		// Force options to be an object
		options = options || {};

		var transport,

			// URL without anti-cache param
			cacheURL,

			// Response headers
			responseHeadersString,
			responseHeaders,

			// timeout handle
			timeoutTimer,

			// Url cleanup var
			urlAnchor,

			// Request state (becomes false upon send and true upon completion)
			completed,

			// To know if global events are to be dispatched
			fireGlobals,

			// Loop variable
			i,

			// uncached part of the url
			uncached,

			// Create the final options object
			s = jQuery.ajaxSetup( {}, options ),

			// Callbacks context
			callbackContext = s.context || s,

			// Context for global events is callbackContext if it is a DOM node or jQuery collection
			globalEventContext = s.context &&
				( callbackContext.nodeType || callbackContext.jquery ) ?
				jQuery( callbackContext ) :
				jQuery.event,

			// Deferreds
			deferred = jQuery.Deferred(),
			completeDeferred = jQuery.Callbacks( "once memory" ),

			// Status-dependent callbacks
			statusCode = s.statusCode || {},

			// Headers (they are sent all at once)
			requestHeaders = {},
			requestHeadersNames = {},

			// Default abort message
			strAbort = "canceled",

			// Fake xhr
			jqXHR = {
				readyState: 0,

				// Builds headers hashtable if needed
				getResponseHeader: function( key ) {
					var match;
					if ( completed ) {
						if ( !responseHeaders ) {
							responseHeaders = {};
							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
										.concat( match[ 2 ] );
							}
						}
						match = responseHeaders[ key.toLowerCase() + " " ];
					}
					return match == null ? null : match.join( ", " );
				},

				// Raw string
				getAllResponseHeaders: function() {
					return completed ? responseHeadersString : null;
				},

				// Caches the header
				setRequestHeader: function( name, value ) {
					if ( completed == null ) {
						name = requestHeadersNames[ name.toLowerCase() ] =
							requestHeadersNames[ name.toLowerCase() ] || name;
						requestHeaders[ name ] = value;
					}
					return this;
				},

				// Overrides response content-type header
				overrideMimeType: function( type ) {
					if ( completed == null ) {
						s.mimeType = type;
					}
					return this;
				},

				// Status-dependent callbacks
				statusCode: function( map ) {
					var code;
					if ( map ) {
						if ( completed ) {

							// Execute the appropriate callbacks
							jqXHR.always( map[ jqXHR.status ] );
						} else {

							// Lazy-add the new callbacks in a way that preserves old ones
							for ( code in map ) {
								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
							}
						}
					}
					return this;
				},

				// Cancel the request
				abort: function( statusText ) {
					var finalText = statusText || strAbort;
					if ( transport ) {
						transport.abort( finalText );
					}
					done( 0, finalText );
					return this;
				}
			};

		// Attach deferreds
		deferred.promise( jqXHR );

		// Add protocol if not provided (prefilters might expect it)
		// Handle falsy url in the settings object (trac-10093: consistency with old signature)
		// We also use the url parameter if available
		s.url = ( ( url || s.url || location.href ) + "" )
			.replace( rprotocol, location.protocol + "//" );

		// Alias method option to type as per ticket trac-12004
		s.type = options.method || options.type || s.method || s.type;

		// Extract dataTypes list
		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];

		// A cross-domain request is in order when the origin doesn't match the current origin.
		if ( s.crossDomain == null ) {
			urlAnchor = document.createElement( "a" );

			// Support: IE <=8 - 11, Edge 12 - 15
			// IE throws exception on accessing the href property if url is malformed,
			// e.g. http://example.com:80x/
			try {
				urlAnchor.href = s.url;

				// Support: IE <=8 - 11 only
				// Anchor's host property isn't correctly set when s.url is relative
				urlAnchor.href = urlAnchor.href;
				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
					urlAnchor.protocol + "//" + urlAnchor.host;
			} catch ( e ) {

				// If there is an error parsing the URL, assume it is crossDomain,
				// it can be rejected by the transport if it is invalid
				s.crossDomain = true;
			}
		}

		// Convert data if not already a string
		if ( s.data && s.processData && typeof s.data !== "string" ) {
			s.data = jQuery.param( s.data, s.traditional );
		}

		// Apply prefilters
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );

		// If request was aborted inside a prefilter, stop there
		if ( completed ) {
			return jqXHR;
		}

		// We can fire global events as of now if asked to
		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)
		fireGlobals = jQuery.event && s.global;

		// Watch for a new set of requests
		if ( fireGlobals && jQuery.active++ === 0 ) {
			jQuery.event.trigger( "ajaxStart" );
		}

		// Uppercase the type
		s.type = s.type.toUpperCase();

		// Determine if request has content
		s.hasContent = !rnoContent.test( s.type );

		// Save the URL in case we're toying with the If-Modified-Since
		// and/or If-None-Match header later on
		// Remove hash to simplify url manipulation
		cacheURL = s.url.replace( rhash, "" );

		// More options handling for requests with no content
		if ( !s.hasContent ) {

			// Remember the hash so we can put it back
			uncached = s.url.slice( cacheURL.length );

			// If data is available and should be processed, append data to url
			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;

				// trac-9682: remove data so that it's not used in an eventual retry
				delete s.data;
			}

			// Add or update anti-cache param if needed
			if ( s.cache === false ) {
				cacheURL = cacheURL.replace( rantiCache, "$1" );
				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
					uncached;
			}

			// Put hash and anti-cache on the URL that will be requested (gh-1732)
			s.url = cacheURL + uncached;

		// Change '%20' to '+' if this is encoded form body content (gh-2658)
		} else if ( s.data && s.processData &&
			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
			s.data = s.data.replace( r20, "+" );
		}

		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
		if ( s.ifModified ) {
			if ( jQuery.lastModified[ cacheURL ] ) {
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
			}
			if ( jQuery.etag[ cacheURL ] ) {
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
			}
		}

		// Set the correct header, if data is being sent
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
			jqXHR.setRequestHeader( "Content-Type", s.contentType );
		}

		// Set the Accepts header for the server, depending on the dataType
		jqXHR.setRequestHeader(
			"Accept",
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
				s.accepts[ s.dataTypes[ 0 ] ] +
					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
				s.accepts[ "*" ]
		);

		// Check for headers option
		for ( i in s.headers ) {
			jqXHR.setRequestHeader( i, s.headers[ i ] );
		}

		// Allow custom headers/mimetypes and early abort
		if ( s.beforeSend &&
			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {

			// Abort if not done already and return
			return jqXHR.abort();
		}

		// Aborting is no longer a cancellation
		strAbort = "abort";

		// Install callbacks on deferreds
		completeDeferred.add( s.complete );
		jqXHR.done( s.success );
		jqXHR.fail( s.error );

		// Get transport
		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );

		// If no transport, we auto-abort
		if ( !transport ) {
			done( -1, "No Transport" );
		} else {
			jqXHR.readyState = 1;

			// Send global event
			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
			}

			// If request was aborted inside ajaxSend, stop there
			if ( completed ) {
				return jqXHR;
			}

			// Timeout
			if ( s.async && s.timeout > 0 ) {
				timeoutTimer = window.setTimeout( function() {
					jqXHR.abort( "timeout" );
				}, s.timeout );
			}

			try {
				completed = false;
				transport.send( requestHeaders, done );
			} catch ( e ) {

				// Rethrow post-completion exceptions
				if ( completed ) {
					throw e;
				}

				// Propagate others as results
				done( -1, e );
			}
		}

		// Callback for when everything is done
		function done( status, nativeStatusText, responses, headers ) {
			var isSuccess, success, error, response, modified,
				statusText = nativeStatusText;

			// Ignore repeat invocations
			if ( completed ) {
				return;
			}

			completed = true;

			// Clear timeout if it exists
			if ( timeoutTimer ) {
				window.clearTimeout( timeoutTimer );
			}

			// Dereference transport for early garbage collection
			// (no matter how long the jqXHR object will be used)
			transport = undefined;

			// Cache response headers
			responseHeadersString = headers || "";

			// Set readyState
			jqXHR.readyState = status > 0 ? 4 : 0;

			// Determine if successful
			isSuccess = status >= 200 && status < 300 || status === 304;

			// Get response data
			if ( responses ) {
				response = ajaxHandleResponses( s, jqXHR, responses );
			}

			// Use a noop converter for missing script but not if jsonp
			if ( !isSuccess &&
				jQuery.inArray( "script", s.dataTypes ) > -1 &&
				jQuery.inArray( "json", s.dataTypes ) < 0 ) {
				s.converters[ "text script" ] = function() {};
			}

			// Convert no matter what (that way responseXXX fields are always set)
			response = ajaxConvert( s, response, jqXHR, isSuccess );

			// If successful, handle type chaining
			if ( isSuccess ) {

				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
				if ( s.ifModified ) {
					modified = jqXHR.getResponseHeader( "Last-Modified" );
					if ( modified ) {
						jQuery.lastModified[ cacheURL ] = modified;
					}
					modified = jqXHR.getResponseHeader( "etag" );
					if ( modified ) {
						jQuery.etag[ cacheURL ] = modified;
					}
				}

				// if no content
				if ( status === 204 || s.type === "HEAD" ) {
					statusText = "nocontent";

				// if not modified
				} else if ( status === 304 ) {
					statusText = "notmodified";

				// If we have data, let's convert it
				} else {
					statusText = response.state;
					success = response.data;
					error = response.error;
					isSuccess = !error;
				}
			} else {

				// Extract error from statusText and normalize for non-aborts
				error = statusText;
				if ( status || !statusText ) {
					statusText = "error";
					if ( status < 0 ) {
						status = 0;
					}
				}
			}

			// Set data for the fake xhr object
			jqXHR.status = status;
			jqXHR.statusText = ( nativeStatusText || statusText ) + "";

			// Success/Error
			if ( isSuccess ) {
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
			} else {
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
			}

			// Status-dependent callbacks
			jqXHR.statusCode( statusCode );
			statusCode = undefined;

			if ( fireGlobals ) {
				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
					[ jqXHR, s, isSuccess ? success : error ] );
			}

			// Complete
			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );

			if ( fireGlobals ) {
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );

				// Handle the global AJAX counter
				if ( !( --jQuery.active ) ) {
					jQuery.event.trigger( "ajaxStop" );
				}
			}
		}

		return jqXHR;
	},

	getJSON: function( url, data, callback ) {
		return jQuery.get( url, data, callback, "json" );
	},

	getScript: function( url, callback ) {
		return jQuery.get( url, undefined, callback, "script" );
	}
} );

jQuery.each( [ "get", "post" ], function( _i, method ) {
	jQuery[ method ] = function( url, data, callback, type ) {

		// Shift arguments if data argument was omitted
		if ( isFunction( data ) ) {
			type = type || callback;
			callback = data;
			data = undefined;
		}

		// The url can be an options object (which then must have .url)
		return jQuery.ajax( jQuery.extend( {
			url: url,
			type: method,
			dataType: type,
			data: data,
			success: callback
		}, jQuery.isPlainObject( url ) && url ) );
	};
} );

jQuery.ajaxPrefilter( function( s ) {
	var i;
	for ( i in s.headers ) {
		if ( i.toLowerCase() === "content-type" ) {
			s.contentType = s.headers[ i ] || "";
		}
	}
} );


jQuery._evalUrl = function( url, options, doc ) {
	return jQuery.ajax( {
		url: url,

		// Make this explicit, since user can override this through ajaxSetup (trac-11264)
		type: "GET",
		dataType: "script",
		cache: true,
		async: false,
		global: false,

		// Only evaluate the response if it is successful (gh-4126)
		// dataFilter is not invoked for failure responses, so using it instead
		// of the default converter is kludgy but it works.
		converters: {
			"text script": function() {}
		},
		dataFilter: function( response ) {
			jQuery.globalEval( response, options, doc );
		}
	} );
};


jQuery.fn.extend( {
	wrapAll: function( html ) {
		var wrap;

		if ( this[ 0 ] ) {
			if ( isFunction( html ) ) {
				html = html.call( this[ 0 ] );
			}

			// The elements to wrap the target around
			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );

			if ( this[ 0 ].parentNode ) {
				wrap.insertBefore( this[ 0 ] );
			}

			wrap.map( function() {
				var elem = this;

				while ( elem.firstElementChild ) {
					elem = elem.firstElementChild;
				}

				return elem;
			} ).append( this );
		}

		return this;
	},

	wrapInner: function( html ) {
		if ( isFunction( html ) ) {
			return this.each( function( i ) {
				jQuery( this ).wrapInner( html.call( this, i ) );
			} );
		}

		return this.each( function() {
			var self = jQuery( this ),
				contents = self.contents();

			if ( contents.length ) {
				contents.wrapAll( html );

			} else {
				self.append( html );
			}
		} );
	},

	wrap: function( html ) {
		var htmlIsFunction = isFunction( html );

		return this.each( function( i ) {
			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
		} );
	},

	unwrap: function( selector ) {
		this.parent( selector ).not( "body" ).each( function() {
			jQuery( this ).replaceWith( this.childNodes );
		} );
		return this;
	}
} );


jQuery.expr.pseudos.hidden = function( elem ) {
	return !jQuery.expr.pseudos.visible( elem );
};
jQuery.expr.pseudos.visible = function( elem ) {
	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};




jQuery.ajaxSettings.xhr = function() {
	try {
		return new window.XMLHttpRequest();
	} catch ( e ) {}
};

var xhrSuccessStatus = {

		// File protocol always yields status code 0, assume 200
		0: 200,

		// Support: IE <=9 only
		// trac-1450: sometimes IE returns 1223 when it should be 204
		1223: 204
	},
	xhrSupported = jQuery.ajaxSettings.xhr();

support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
support.ajax = xhrSupported = !!xhrSupported;

jQuery.ajaxTransport( function( options ) {
	var callback, errorCallback;

	// Cross domain only allowed if supported through XMLHttpRequest
	if ( support.cors || xhrSupported && !options.crossDomain ) {
		return {
			send: function( headers, complete ) {
				var i,
					xhr = options.xhr();

				xhr.open(
					options.type,
					options.url,
					options.async,
					options.username,
					options.password
				);

				// Apply custom fields if provided
				if ( options.xhrFields ) {
					for ( i in options.xhrFields ) {
						xhr[ i ] = options.xhrFields[ i ];
					}
				}

				// Override mime type if needed
				if ( options.mimeType && xhr.overrideMimeType ) {
					xhr.overrideMimeType( options.mimeType );
				}

				// X-Requested-With header
				// For cross-domain requests, seeing as conditions for a preflight are
				// akin to a jigsaw puzzle, we simply never set it to be sure.
				// (it can always be set on a per-request basis or even using ajaxSetup)
				// For same-domain requests, won't change header if already provided.
				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
					headers[ "X-Requested-With" ] = "XMLHttpRequest";
				}

				// Set headers
				for ( i in headers ) {
					xhr.setRequestHeader( i, headers[ i ] );
				}

				// Callback
				callback = function( type ) {
					return function() {
						if ( callback ) {
							callback = errorCallback = xhr.onload =
								xhr.onerror = xhr.onabort = xhr.ontimeout =
									xhr.onreadystatechange = null;

							if ( type === "abort" ) {
								xhr.abort();
							} else if ( type === "error" ) {

								// Support: IE <=9 only
								// On a manual native abort, IE9 throws
								// errors on any property access that is not readyState
								if ( typeof xhr.status !== "number" ) {
									complete( 0, "error" );
								} else {
									complete(

										// File: protocol always yields status 0; see trac-8605, trac-14207
										xhr.status,
										xhr.statusText
									);
								}
							} else {
								complete(
									xhrSuccessStatus[ xhr.status ] || xhr.status,
									xhr.statusText,

									// Support: IE <=9 only
									// IE9 has no XHR2 but throws on binary (trac-11426)
									// For XHR2 non-text, let the caller handle it (gh-2498)
									( xhr.responseType || "text" ) !== "text"  ||
									typeof xhr.responseText !== "string" ?
										{ binary: xhr.response } :
										{ text: xhr.responseText },
									xhr.getAllResponseHeaders()
								);
							}
						}
					};
				};

				// Listen to events
				xhr.onload = callback();
				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );

				// Support: IE 9 only
				// Use onreadystatechange to replace onabort
				// to handle uncaught aborts
				if ( xhr.onabort !== undefined ) {
					xhr.onabort = errorCallback;
				} else {
					xhr.onreadystatechange = function() {

						// Check readyState before timeout as it changes
						if ( xhr.readyState === 4 ) {

							// Allow onerror to be called first,
							// but that will not handle a native abort
							// Also, save errorCallback to a variable
							// as xhr.onerror cannot be accessed
							window.setTimeout( function() {
								if ( callback ) {
									errorCallback();
								}
							} );
						}
					};
				}

				// Create the abort callback
				callback = callback( "abort" );

				try {

					// Do send the request (this may raise an exception)
					xhr.send( options.hasContent && options.data || null );
				} catch ( e ) {

					// trac-14683: Only rethrow if this hasn't been notified as an error yet
					if ( callback ) {
						throw e;
					}
				}
			},

			abort: function() {
				if ( callback ) {
					callback();
				}
			}
		};
	}
} );




// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
jQuery.ajaxPrefilter( function( s ) {
	if ( s.crossDomain ) {
		s.contents.script = false;
	}
} );

// Install script dataType
jQuery.ajaxSetup( {
	accepts: {
		script: "text/javascript, application/javascript, " +
			"application/ecmascript, application/x-ecmascript"
	},
	contents: {
		script: /\b(?:java|ecma)script\b/
	},
	converters: {
		"text script": function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
} );

// Handle cache's special case and crossDomain
jQuery.ajaxPrefilter( "script", function( s ) {
	if ( s.cache === undefined ) {
		s.cache = false;
	}
	if ( s.crossDomain ) {
		s.type = "GET";
	}
} );

// Bind script tag hack transport
jQuery.ajaxTransport( "script", function( s ) {

	// This transport only deals with cross domain or forced-by-attrs requests
	if ( s.crossDomain || s.scriptAttrs ) {
		var script, callback;
		return {
			send: function( _, complete ) {
				script = jQuery( "<script>" )
					.attr( s.scriptAttrs || {} )
					.prop( { charset: s.scriptCharset, src: s.url } )
					.on( "load error", callback = function( evt ) {
						script.remove();
						callback = null;
						if ( evt ) {
							complete( evt.type === "error" ? 404 : 200, evt.type );
						}
					} );

				// Use native DOM manipulation to avoid our domManip AJAX trickery
				document.head.appendChild( script[ 0 ] );
			},
			abort: function() {
				if ( callback ) {
					callback();
				}
			}
		};
	}
} );




var oldCallbacks = [],
	rjsonp = /(=)\?(?=&|$)|\?\?/;

// Default jsonp settings
jQuery.ajaxSetup( {
	jsonp: "callback",
	jsonpCallback: function() {
		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
		this[ callback ] = true;
		return callback;
	}
} );

// Detect, normalize options and install callbacks for jsonp requests
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {

	var callbackName, overwritten, responseContainer,
		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
			"url" :
			typeof s.data === "string" &&
				( s.contentType || "" )
					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
				rjsonp.test( s.data ) && "data"
		);

	// Handle iff the expected data type is "jsonp" or we have a parameter to set
	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {

		// Get callback name, remembering preexisting value associated with it
		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
			s.jsonpCallback() :
			s.jsonpCallback;

		// Insert callback into url or form data
		if ( jsonProp ) {
			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
		} else if ( s.jsonp !== false ) {
			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
		}

		// Use data converter to retrieve json after script execution
		s.converters[ "script json" ] = function() {
			if ( !responseContainer ) {
				jQuery.error( callbackName + " was not called" );
			}
			return responseContainer[ 0 ];
		};

		// Force json dataType
		s.dataTypes[ 0 ] = "json";

		// Install callback
		overwritten = window[ callbackName ];
		window[ callbackName ] = function() {
			responseContainer = arguments;
		};

		// Clean-up function (fires after converters)
		jqXHR.always( function() {

			// If previous value didn't exist - remove it
			if ( overwritten === undefined ) {
				jQuery( window ).removeProp( callbackName );

			// Otherwise restore preexisting value
			} else {
				window[ callbackName ] = overwritten;
			}

			// Save back as free
			if ( s[ callbackName ] ) {

				// Make sure that re-using the options doesn't screw things around
				s.jsonpCallback = originalSettings.jsonpCallback;

				// Save the callback name for future use
				oldCallbacks.push( callbackName );
			}

			// Call if it was a function and we have a response
			if ( responseContainer && isFunction( overwritten ) ) {
				overwritten( responseContainer[ 0 ] );
			}

			responseContainer = overwritten = undefined;
		} );

		// Delegate to script
		return "script";
	}
} );




// Support: Safari 8 only
// In Safari 8 documents created via document.implementation.createHTMLDocument
// collapse sibling forms: the second one becomes a child of the first one.
// Because of that, this security measure has to be disabled in Safari 8.
// https://bugs.webkit.org/show_bug.cgi?id=137337
support.createHTMLDocument = ( function() {
	var body = document.implementation.createHTMLDocument( "" ).body;
	body.innerHTML = "<form></form><form></form>";
	return body.childNodes.length === 2;
} )();


// Argument "data" should be string of html
// context (optional): If specified, the fragment will be created in this context,
// defaults to document
// keepScripts (optional): If true, will include scripts passed in the html string
jQuery.parseHTML = function( data, context, keepScripts ) {
	if ( typeof data !== "string" ) {
		return [];
	}
	if ( typeof context === "boolean" ) {
		keepScripts = context;
		context = false;
	}

	var base, parsed, scripts;

	if ( !context ) {

		// Stop scripts or inline event handlers from being executed immediately
		// by using document.implementation
		if ( support.createHTMLDocument ) {
			context = document.implementation.createHTMLDocument( "" );

			// Set the base href for the created document
			// so any parsed elements with URLs
			// are based on the document's URL (gh-2965)
			base = context.createElement( "base" );
			base.href = document.location.href;
			context.head.appendChild( base );
		} else {
			context = document;
		}
	}

	parsed = rsingleTag.exec( data );
	scripts = !keepScripts && [];

	// Single tag
	if ( parsed ) {
		return [ context.createElement( parsed[ 1 ] ) ];
	}

	parsed = buildFragment( [ data ], context, scripts );

	if ( scripts && scripts.length ) {
		jQuery( scripts ).remove();
	}

	return jQuery.merge( [], parsed.childNodes );
};


/**
 * Load a url into a page
 */
jQuery.fn.load = function( url, params, callback ) {
	var selector, type, response,
		self = this,
		off = url.indexOf( " " );

	if ( off > -1 ) {
		selector = stripAndCollapse( url.slice( off ) );
		url = url.slice( 0, off );
	}

	// If it's a function
	if ( isFunction( params ) ) {

		// We assume that it's the callback
		callback = params;
		params = undefined;

	// Otherwise, build a param string
	} else if ( params && typeof params === "object" ) {
		type = "POST";
	}

	// If we have elements to modify, make the request
	if ( self.length > 0 ) {
		jQuery.ajax( {
			url: url,

			// If "type" variable is undefined, then "GET" method will be used.
			// Make value of this field explicit since
			// user can override it through ajaxSetup method
			type: type || "GET",
			dataType: "html",
			data: params
		} ).done( function( responseText ) {

			// Save response for use in complete callback
			response = arguments;

			self.html( selector ?

				// If a selector was specified, locate the right elements in a dummy div
				// Exclude scripts to avoid IE 'Permission Denied' errors
				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :

				// Otherwise use the full result
				responseText );

		// If the request succeeds, this function gets "data", "status", "jqXHR"
		// but they are ignored because response was set above.
		// If it fails, this function gets "jqXHR", "status", "error"
		} ).always( callback && function( jqXHR, status ) {
			self.each( function() {
				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
			} );
		} );
	}

	return this;
};




jQuery.expr.pseudos.animated = function( elem ) {
	return jQuery.grep( jQuery.timers, function( fn ) {
		return elem === fn.elem;
	} ).length;
};




jQuery.offset = {
	setOffset: function( elem, options, i ) {
		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
			position = jQuery.css( elem, "position" ),
			curElem = jQuery( elem ),
			props = {};

		// Set position first, in-case top/left are set even on static elem
		if ( position === "static" ) {
			elem.style.position = "relative";
		}

		curOffset = curElem.offset();
		curCSSTop = jQuery.css( elem, "top" );
		curCSSLeft = jQuery.css( elem, "left" );
		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;

		// Need to be able to calculate position if either
		// top or left is auto and position is either absolute or fixed
		if ( calculatePosition ) {
			curPosition = curElem.position();
			curTop = curPosition.top;
			curLeft = curPosition.left;

		} else {
			curTop = parseFloat( curCSSTop ) || 0;
			curLeft = parseFloat( curCSSLeft ) || 0;
		}

		if ( isFunction( options ) ) {

			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
		}

		if ( options.top != null ) {
			props.top = ( options.top - curOffset.top ) + curTop;
		}
		if ( options.left != null ) {
			props.left = ( options.left - curOffset.left ) + curLeft;
		}

		if ( "using" in options ) {
			options.using.call( elem, props );

		} else {
			curElem.css( props );
		}
	}
};

jQuery.fn.extend( {

	// offset() relates an element's border box to the document origin
	offset: function( options ) {

		// Preserve chaining for setter
		if ( arguments.length ) {
			return options === undefined ?
				this :
				this.each( function( i ) {
					jQuery.offset.setOffset( this, options, i );
				} );
		}

		var rect, win,
			elem = this[ 0 ];

		if ( !elem ) {
			return;
		}

		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
		// Support: IE <=11 only
		// Running getBoundingClientRect on a
		// disconnected node in IE throws an error
		if ( !elem.getClientRects().length ) {
			return { top: 0, left: 0 };
		}

		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
		rect = elem.getBoundingClientRect();
		win = elem.ownerDocument.defaultView;
		return {
			top: rect.top + win.pageYOffset,
			left: rect.left + win.pageXOffset
		};
	},

	// position() relates an element's margin box to its offset parent's padding box
	// This corresponds to the behavior of CSS absolute positioning
	position: function() {
		if ( !this[ 0 ] ) {
			return;
		}

		var offsetParent, offset, doc,
			elem = this[ 0 ],
			parentOffset = { top: 0, left: 0 };

		// position:fixed elements are offset from the viewport, which itself always has zero offset
		if ( jQuery.css( elem, "position" ) === "fixed" ) {

			// Assume position:fixed implies availability of getBoundingClientRect
			offset = elem.getBoundingClientRect();

		} else {
			offset = this.offset();

			// Account for the *real* offset parent, which can be the document or its root element
			// when a statically positioned element is identified
			doc = elem.ownerDocument;
			offsetParent = elem.offsetParent || doc.documentElement;
			while ( offsetParent &&
				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
				jQuery.css( offsetParent, "position" ) === "static" ) {

				offsetParent = offsetParent.parentNode;
			}
			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {

				// Incorporate borders into its offset, since they are outside its content origin
				parentOffset = jQuery( offsetParent ).offset();
				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
			}
		}

		// Subtract parent offsets and element margins
		return {
			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
		};
	},

	// This method will return documentElement in the following cases:
	// 1) For the element inside the iframe without offsetParent, this method will return
	//    documentElement of the parent window
	// 2) For the hidden or detached element
	// 3) For body or html element, i.e. in case of the html node - it will return itself
	//
	// but those exceptions were never presented as a real life use-cases
	// and might be considered as more preferable results.
	//
	// This logic, however, is not guaranteed and can change at any point in the future
	offsetParent: function() {
		return this.map( function() {
			var offsetParent = this.offsetParent;

			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
				offsetParent = offsetParent.offsetParent;
			}

			return offsetParent || documentElement;
		} );
	}
} );

// Create scrollLeft and scrollTop methods
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
	var top = "pageYOffset" === prop;

	jQuery.fn[ method ] = function( val ) {
		return access( this, function( elem, method, val ) {

			// Coalesce documents and windows
			var win;
			if ( isWindow( elem ) ) {
				win = elem;
			} else if ( elem.nodeType === 9 ) {
				win = elem.defaultView;
			}

			if ( val === undefined ) {
				return win ? win[ prop ] : elem[ method ];
			}

			if ( win ) {
				win.scrollTo(
					!top ? val : win.pageXOffset,
					top ? val : win.pageYOffset
				);

			} else {
				elem[ method ] = val;
			}
		}, method, val, arguments.length );
	};
} );

// Support: Safari <=7 - 9.1, Chrome <=37 - 49
// Add the top/left cssHooks using jQuery.fn.position
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
// getComputedStyle returns percent when specified for top/left/bottom/right;
// rather than make the css module depend on the offset module, just check for it here
jQuery.each( [ "top", "left" ], function( _i, prop ) {
	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
		function( elem, computed ) {
			if ( computed ) {
				computed = curCSS( elem, prop );

				// If curCSS returns percentage, fallback to offset
				return rnumnonpx.test( computed ) ?
					jQuery( elem ).position()[ prop ] + "px" :
					computed;
			}
		}
	);
} );


// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
	jQuery.each( {
		padding: "inner" + name,
		content: type,
		"": "outer" + name
	}, function( defaultExtra, funcName ) {

		// Margin is only for outerHeight, outerWidth
		jQuery.fn[ funcName ] = function( margin, value ) {
			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );

			return access( this, function( elem, type, value ) {
				var doc;

				if ( isWindow( elem ) ) {

					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
					return funcName.indexOf( "outer" ) === 0 ?
						elem[ "inner" + name ] :
						elem.document.documentElement[ "client" + name ];
				}

				// Get document width or height
				if ( elem.nodeType === 9 ) {
					doc = elem.documentElement;

					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
					// whichever is greatest
					return Math.max(
						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
						elem.body[ "offset" + name ], doc[ "offset" + name ],
						doc[ "client" + name ]
					);
				}

				return value === undefined ?

					// Get width or height on the element, requesting but not forcing parseFloat
					jQuery.css( elem, type, extra ) :

					// Set width or height on the element
					jQuery.style( elem, type, value, extra );
			}, type, chainable ? margin : undefined, chainable );
		};
	} );
} );


jQuery.each( [
	"ajaxStart",
	"ajaxStop",
	"ajaxComplete",
	"ajaxError",
	"ajaxSuccess",
	"ajaxSend"
], function( _i, type ) {
	jQuery.fn[ type ] = function( fn ) {
		return this.on( type, fn );
	};
} );




jQuery.fn.extend( {

	bind: function( types, data, fn ) {
		return this.on( types, null, data, fn );
	},
	unbind: function( types, fn ) {
		return this.off( types, null, fn );
	},

	delegate: function( selector, types, data, fn ) {
		return this.on( types, selector, data, fn );
	},
	undelegate: function( selector, types, fn ) {

		// ( namespace ) or ( selector, types [, fn] )
		return arguments.length === 1 ?
			this.off( selector, "**" ) :
			this.off( types, selector || "**", fn );
	},

	hover: function( fnOver, fnOut ) {
		return this
			.on( "mouseenter", fnOver )
			.on( "mouseleave", fnOut || fnOver );
	}
} );

jQuery.each(
	( "blur focus focusin focusout resize scroll click dblclick " +
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
	function( _i, name ) {

		// Handle event binding
		jQuery.fn[ name ] = function( data, fn ) {
			return arguments.length > 0 ?
				this.on( name, null, data, fn ) :
				this.trigger( name );
		};
	}
);




// Support: Android <=4.0 only
// Make sure we trim BOM and NBSP
// Require that the "whitespace run" starts from a non-whitespace
// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;

// Bind a function to a context, optionally partially applying any
// arguments.
// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
// However, it is not slated for removal any time soon
jQuery.proxy = function( fn, context ) {
	var tmp, args, proxy;

	if ( typeof context === "string" ) {
		tmp = fn[ context ];
		context = fn;
		fn = tmp;
	}

	// Quick check to determine if target is callable, in the spec
	// this throws a TypeError, but we will just return undefined.
	if ( !isFunction( fn ) ) {
		return undefined;
	}

	// Simulated bind
	args = slice.call( arguments, 2 );
	proxy = function() {
		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
	};

	// Set the guid of unique handler to the same of original handler, so it can be removed
	proxy.guid = fn.guid = fn.guid || jQuery.guid++;

	return proxy;
};

jQuery.holdReady = function( hold ) {
	if ( hold ) {
		jQuery.readyWait++;
	} else {
		jQuery.ready( true );
	}
};
jQuery.isArray = Array.isArray;
jQuery.parseJSON = JSON.parse;
jQuery.nodeName = nodeName;
jQuery.isFunction = isFunction;
jQuery.isWindow = isWindow;
jQuery.camelCase = camelCase;
jQuery.type = toType;

jQuery.now = Date.now;

jQuery.isNumeric = function( obj ) {

	// As of jQuery 3.0, isNumeric is limited to
	// strings and numbers (primitives or objects)
	// that can be coerced to finite numbers (gh-2662)
	var type = jQuery.type( obj );
	return ( type === "number" || type === "string" ) &&

		// parseFloat NaNs numeric-cast false positives ("")
		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
		// subtraction forces infinities to NaN
		!isNaN( obj - parseFloat( obj ) );
};

jQuery.trim = function( text ) {
	return text == null ?
		"" :
		( text + "" ).replace( rtrim, "$1" );
};



// Register as a named AMD module, since jQuery can be concatenated with other
// files that may use define, but not via a proper concatenation script that
// understands anonymous AMD modules. A named AMD is safest and most robust
// way to register. Lowercase jquery is used because AMD module names are
// derived from file names, and jQuery is normally delivered in a lowercase
// file name. Do this after creating the global so that if an AMD module wants
// to call noConflict to hide this version of jQuery, it will work.

// Note that for maximum portability, libraries that are not jQuery should
// declare themselves as anonymous modules, and avoid setting a global if an
// AMD loader is present. jQuery is a special case. For more information, see
// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon

if ( true ) {
	!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
		return jQuery;
	}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
}




var

	// Map over jQuery in case of overwrite
	_jQuery = window.jQuery,

	// Map over the $ in case of overwrite
	_$ = window.$;

jQuery.noConflict = function( deep ) {
	if ( window.$ === jQuery ) {
		window.$ = _$;
	}

	if ( deep && window.jQuery === jQuery ) {
		window.jQuery = _jQuery;
	}

	return jQuery;
};

// Expose jQuery and $ identifiers, even in AMD
// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
// and CommonJS for browser emulators (trac-13566)
if ( typeof noGlobal === "undefined" ) {
	window.jQuery = window.$ = jQuery;
}




return jQuery;
} );


/***/ }),

/***/ "../../../Common/assets/object-input/Factory.ts":
/*!******************************************************!*\
  !*** ../../../Common/assets/object-input/Factory.ts ***!
  \******************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./components/Factory */ "../../../Common/assets/object-input/components/Factory.ts"), __webpack_require__(/*! ./bus/Factory */ "../../../Common/assets/object-input/bus/Factory.ts"), __webpack_require__(/*! ./commands/Factory */ "../../../Common/assets/object-input/commands/Factory.ts"), __webpack_require__(/*! ../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts"), __webpack_require__(/*! bootstrap/js/dist/modal */ "../../../Common/assets/node_modules/bootstrap/js/dist/modal.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Factory_1, Factory_2, Factory_3, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.componentsFactory = null;
            this.busFactory = null;
            this.commandsFactory = null;
        }
        Factory.prototype.init = function (conf) {
            if (conf === void 0) { conf = {}; }
            this.conf = {
                components: {
                    factory: null,
                },
                bus: {
                    factory: null,
                },
                commands: {
                    factory: null,
                }
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.getComponentsFactory = function () {
            if (this.componentsFactory === null) {
                this.componentsFactory = this.conf.components.factory || new Factory_1.Factory();
                this.componentsFactory.setAppFactory(this);
                this.componentsFactory.init(this.conf.components);
            }
            return this.componentsFactory;
        };
        Factory.prototype.getBusFactory = function () {
            if (this.busFactory === null) {
                this.busFactory = this.conf.bus.factory || new Factory_2.Factory();
                this.busFactory.setAppFactory(this);
                this.busFactory.init(this.conf.bus);
            }
            return this.busFactory;
        };
        Factory.prototype.getCommandsFactory = function () {
            if (this.commandsFactory === null) {
                this.commandsFactory = this.conf.commands.factory || new Factory_3.Factory();
                this.commandsFactory.setAppFactory(this);
                this.commandsFactory.init(this.conf.commands);
            }
            return this.commandsFactory;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/bus/Factory.ts":
/*!**********************************************************!*\
  !*** ../../../Common/assets/object-input/bus/Factory.ts ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./ObjectBus */ "../../../Common/assets/object-input/bus/ObjectBus.ts"), __webpack_require__(/*! ./FileInputBus */ "../../../Common/assets/object-input/bus/FileInputBus.ts"), __webpack_require__(/*! ./TreeSelectBus */ "../../../Common/assets/object-input/bus/TreeSelectBus.ts"), __webpack_require__(/*! ../../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, ObjectBus_1, FileInputBus_1, TreeSelectBus_1, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.objectBus = null;
            this.fileInputBus = null;
            this.treeSelectBus = null;
        }
        Factory.prototype.init = function (conf) {
            this.conf = {
                objectBus: null,
                fileInputBus: null,
                treeSelectBus: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.setAppFactory = function (factory) {
            this.appFactory = factory;
        };
        Factory.prototype.getObjectBus = function () {
            if (this.objectBus === null) {
                this.objectBus = this.conf.objectBus || new ObjectBus_1.ObjectBus();
                var componentsFactory = this.appFactory.getComponentsFactory();
                this.objectBus.setComponentsFactory(componentsFactory);
            }
            return this.objectBus;
        };
        Factory.prototype.getFileInputBus = function () {
            if (this.fileInputBus === null) {
                this.fileInputBus = this.conf.fileInputBus || new FileInputBus_1.FileInputBus();
                var componentsFactory = this.appFactory.getComponentsFactory();
                this.fileInputBus.setComponentsFactory(componentsFactory);
            }
            return this.fileInputBus;
        };
        Factory.prototype.getTreeSelectBus = function () {
            if (this.treeSelectBus === null) {
                this.treeSelectBus = this.conf.treeSelectBus || new TreeSelectBus_1.TreeSelectBus();
                var componentsFactory = this.appFactory.getComponentsFactory();
                this.treeSelectBus.setComponentsFactory(componentsFactory);
            }
            return this.treeSelectBus;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/bus/FileInputBus.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/object-input/bus/FileInputBus.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../types/TFilesBrowserIcon */ "../../../Common/assets/object-input/types/TFilesBrowserIcon.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, TFilesBrowserIcon_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.FileInputBus = void 0;
    var FileInputBus = /** @class */ (function () {
        function FileInputBus() {
        }
        FileInputBus.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        FileInputBus.prototype.execBrowserModal = function () {
            return this.componentsFactory.getFileInputFactory().getBrowserModal().show();
        };
        FileInputBus.prototype.updateFileBrowser = function (icons, path) {
            this.componentsFactory.getFileInputFactory().getBrowserModal().setCurrentPath(path);
            this.componentsFactory.getFileInputFactory().getBrowserModal().update(icons);
        };
        FileInputBus.prototype.execItemContextMenu = function (x, y, icon) {
            this.componentsFactory.getFileInputFactory().getFileContextMenu().show(x, y, icon);
        };
        FileInputBus.prototype.execItemModal = function (name) {
            if (name === void 0) { name = ''; }
            return new Promise(function (resolve, reject) {
                var dirName = prompt('Имя', name);
                if (dirName) {
                    resolve(dirName);
                }
                else {
                    reject();
                }
            });
        };
        FileInputBus.prototype.hideItemContextMenu = function () {
            this.componentsFactory.getFileInputFactory().getFileContextMenu().hide();
        };
        FileInputBus.prototype.deletedFile = function (path) {
            this.componentsFactory.getFileInputFactory().getBrowserModal().deleteFile(path);
        };
        FileInputBus.prototype.renamedFile = function (path, newName) {
            this.componentsFactory.getFileInputFactory().getBrowserModal().renameFile(path, newName);
        };
        FileInputBus.prototype.createdDir = function (path, name) {
            var dirData = {
                type: TFilesBrowserIcon_1.TFileType.dir,
                name: name,
                path: path,
                filemtime: '',
            };
            this.componentsFactory.getFileInputFactory().getBrowserModal().newItem(dirData);
        };
        FileInputBus.prototype.uploadedFile = function (path, name) {
            var fileData = {
                type: TFilesBrowserIcon_1.TFileType.file,
                name: name,
                path: path,
                filemtime: '',
            };
            this.componentsFactory.getFileInputFactory().getBrowserModal().newItem(fileData);
        };
        FileInputBus.prototype.uploadedImg = function (path, name) {
            var fileData = {
                type: TFilesBrowserIcon_1.TFileType.img,
                name: name,
                path: path,
                filemtime: '',
            };
            this.componentsFactory.getFileInputFactory().getBrowserModal().newItem(fileData);
        };
        return FileInputBus;
    }());
    exports.FileInputBus = FileInputBus;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/bus/ObjectBus.ts":
/*!************************************************************!*\
  !*** ../../../Common/assets/object-input/bus/ObjectBus.ts ***!
  \************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ObjectBus = void 0;
    var ObjectBus = /** @class */ (function () {
        function ObjectBus() {
        }
        ObjectBus.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        ObjectBus.prototype.execObjectModal = function (obj) {
            return this.componentsFactory.getModal().show(obj);
        };
        ObjectBus.prototype.renderForm = function (data, objFormKey) {
            return this.componentsFactory.getObjectForm(objFormKey).render(data);
        };
        ObjectBus.prototype.rerender = function (objFormKey) {
            this.componentsFactory.getObjectForm(objFormKey).rerender();
        };
        ObjectBus.prototype.back = function (objFormKey) {
            this.componentsFactory.getObjectForm(objFormKey).back();
        };
        return ObjectBus;
    }());
    exports.ObjectBus = ObjectBus;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/bus/TreeSelectBus.ts":
/*!****************************************************************!*\
  !*** ../../../Common/assets/object-input/bus/TreeSelectBus.ts ***!
  \****************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.TreeSelectBus = void 0;
    var TreeSelectBus = /** @class */ (function () {
        function TreeSelectBus() {
        }
        TreeSelectBus.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        return TreeSelectBus;
    }());
    exports.TreeSelectBus = TreeSelectBus;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/commands/Factory.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/object-input/commands/Factory.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./FilesBrowserCommands */ "../../../Common/assets/object-input/commands/FilesBrowserCommands.ts"), __webpack_require__(/*! ../../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, FilesBrowserCommands_1, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.filesBrowserCommands = null;
        }
        Factory.prototype.init = function (conf) {
            this.conf = {
                fileBrowserCommands: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.setAppFactory = function (factory) {
            this.appFactory = factory;
        };
        Factory.prototype.getFilesBrowserCommands = function () {
            if (this.filesBrowserCommands === null) {
                this.filesBrowserCommands = this.conf.fileBrowserCommands || new FilesBrowserCommands_1.FilesBrowserCommands();
            }
            return this.filesBrowserCommands;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/commands/FilesBrowserCommands.ts":
/*!****************************************************************************!*\
  !*** ../../../Common/assets/object-input/commands/FilesBrowserCommands.ts ***!
  \****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! axios */ "../../../Common/assets/node_modules/axios/dist/browser/axios.cjs")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, axios_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.FilesBrowserCommands = void 0;
    var FilesBrowserCommands = /** @class */ (function () {
        function FilesBrowserCommands() {
        }
        FilesBrowserCommands.prototype.getDir = function (path) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            return axios_1.default.post(settings.fileInputSettings.getDirUrl, {
                _token: token,
                path: path,
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        FilesBrowserCommands.prototype.createDir = function (path) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            return axios_1.default.post(settings.fileInputSettings.createDirUrl, {
                _token: token,
                path: path,
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        FilesBrowserCommands.prototype.deleteFile = function (path) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            return axios_1.default.post(settings.fileInputSettings.deleteFileUrl, {
                _token: token,
                path: path,
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        FilesBrowserCommands.prototype.uploadFile = function (path, file) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            var formData = new FormData();
            formData.append('_token', token);
            formData.append('path', path);
            formData.append('file', file);
            return axios_1.default.post(settings.fileInputSettings.uploadFileUrl, formData, {
                headers: {
                    'Content-Type': 'multipart/form-data', // Обязательно указываем тип контента!
                },
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        FilesBrowserCommands.prototype.renameFile = function (path, newPath) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            return axios_1.default.post(settings.fileInputSettings.renameFileUrl, {
                _token: token,
                path: path,
                new_path: newPath,
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        return FilesBrowserCommands;
    }());
    exports.FilesBrowserCommands = FilesBrowserCommands;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/ArrayItem.ts":
/*!*******************************************************************!*\
  !*** ../../../Common/assets/object-input/components/ArrayItem.ts ***!
  \*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ArrayItem = void 0;
    var ArrayItem = /** @class */ (function () {
        function ArrayItem() {
            this.isMouseDowned = false;
            var div = document.createElement('div');
            div.innerHTML = this.getHtml().trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.removeBtn = this._template.querySelector('.js-remove-btn');
        }
        ArrayItem.prototype.getHtml = function () {
            return "\n            <button class=\"btn btn-info mt-1\">\n                <span class=\"js-label\"></span>\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"js-remove-btn bi bi-x-circle-fill\" viewBox=\"0 0 16 16\">\n                    <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z\"/>\n                </svg>\n            </button>\n        ";
        };
        ArrayItem.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(ArrayItem.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        ArrayItem.prototype.setObjectBus = function (bus) {
            this.objectBus = bus;
        };
        ArrayItem.prototype.setOnDelete = function (callbck) {
            this.onDelete = callbck;
        };
        ArrayItem.prototype.setOnUpdated = function (callback) {
            this.onUpdated = callback;
        };
        ArrayItem.prototype.setOnDragStarted = function (callback) {
            this.onDragStarted = callback;
        };
        ArrayItem.prototype.setOnDragMove = function (callback) {
            this.onDragMove = callback;
        };
        ArrayItem.prototype.setOnDragEnded = function (callback) {
            this.onDragEnded = callback;
        };
        ArrayItem.prototype.setIndex = function (index) {
            this.index = index;
        };
        ArrayItem.prototype.getIndex = function () {
            return this.index;
        };
        ArrayItem.prototype.getData = function () {
            return this.data;
        };
        ArrayItem.prototype.loadData = function (data) {
            this.data = data;
            if (this.data.composite) {
                this.label.innerText = data.description;
            }
            else {
                this.label.innerText = data.value;
            }
        };
        ArrayItem.prototype.setLabel = function (label) {
            this.label.innerText = label;
        };
        ArrayItem.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this._template.classList.remove('btn-info');
                this._template.classList.add('btn-danger');
            }
        };
        ArrayItem.prototype.clearErrors = function () {
            this._template.classList.remove('btn-danger');
            this._template.classList.add('btn-info');
        };
        ArrayItem.prototype.serialize = function () {
            return this.data;
        };
        ArrayItem.prototype.deepClone = function (obj) {
            if (Array.isArray(obj)) {
                var result = [];
                for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
                    var item = obj_1[_i];
                    if (typeof item === 'object') {
                        result.push(this.deepClone(item));
                    }
                    else {
                        result.push(item);
                    }
                }
                return result;
            }
            else {
                var result = {};
                for (var key in obj) {
                    if (typeof obj[key] === 'object' && obj[key] !== null && key !== 'container') {
                        result[key] = this.deepClone(obj[key]);
                    }
                    else {
                        result[key] = obj[key];
                    }
                }
                return result;
            }
        };
        ArrayItem.prototype.eventsListen = function () {
            var _this = this;
            this.isMouseDowned = false;
            this.removeBtn.onmousedown = function (event) {
                event.stopPropagation();
                _this.onDelete(_this.data);
            };
            this.removeBtn.onmouseup = function (event) {
                event.stopPropagation();
            };
            var draggable = true;
            this._template.onmousedown = function (event) {
                _this.isMouseDowned = true;
                setTimeout(function () {
                    if (draggable) {
                        _this.isDragStarted = true;
                        _this.startDrag(event);
                    }
                }, 200);
            };
            this._template.onmouseup = function (event) {
                if (!_this.isMouseDowned) {
                    return;
                }
                _this.isMouseDowned = false;
                if (!_this.isDragStarted) {
                    _this.onClick(event);
                    draggable = false;
                }
                else {
                    if (_this.onDragEnded) {
                        _this.onDragEnded(_this);
                    }
                }
                _this.isDragStarted = false;
            };
            document.querySelector('body').onmousemove = function (event) {
                if (_this.isDragStarted) {
                    _this._template.style.left = event.pageX - _this._template.offsetWidth / 2 + 'px';
                    _this._template.style.top = event.pageY - _this._template.offsetHeight / 2 + 'px';
                    if (_this.onDragMove) {
                        _this.onDragMove(event.pageX, event.pageY);
                    }
                }
            };
        };
        ArrayItem.prototype.startDrag = function (event) {
            this._template.style.position = 'absolute';
            document.querySelector('body').append(this._template);
            this._template.style.zIndex = '1000';
            this._template.style.left = event.pageX - this._template.offsetWidth / 2 + 'px';
            this._template.style.top = event.pageY - this._template.offsetHeight / 2 + 'px';
            if (this.onDragStarted) {
                this.onDragStarted(this);
            }
        };
        ArrayItem.prototype.onClick = function (event) {
            var _this = this;
            event.preventDefault();
            if (this.data.composite) {
                this.objectBus.renderForm(this.deepClone(this.data), this.formKey)
                    .then(function (updatedItem) {
                    _this.data.fields = updatedItem.fields;
                    _this.onUpdated(updatedItem);
                    _this.objectBus.back(_this.formKey);
                });
            }
            else {
                this.objectBus.execObjectModal(this.data)
                    .then(function (updatedItem) {
                    _this.loadData(updatedItem);
                    _this.onUpdated(updatedItem);
                    _this.objectBus.rerender(_this.formKey);
                });
            }
        };
        return ArrayItem;
    }());
    exports.ArrayItem = ArrayItem;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Bool.ts":
/*!**************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Bool.ts ***!
  \**************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Bool = void 0;
    var Bool = /** @class */ (function () {
        function Bool() {
            this.html = "\n        <div class=\"object-field form-check\">\n            <input class=\"form-check-input js-input\" type=\"checkbox\" id=\"\">\n            <label class=\"form-check-label js-label\" for=\"\"></label>\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            var id = Symbol();
            this.label = this._template.querySelector('.js-label');
            this.label.setAttribute('for', id.toString());
            this.input = this._template.querySelector('.js-input');
            this.input.setAttribute('id', id.toString());
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        Bool.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Bool.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Bool.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.checked = data.value;
        };
        Bool.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        Bool.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        Bool.prototype.serialize = function () {
            return this.data;
        };
        Bool.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function (e) {
                _this.data.value = _this.input.checked;
            };
        };
        return Bool;
    }());
    exports.Bool = Bool;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Color.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Color.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Color = void 0;
    var Color = /** @class */ (function () {
        function Color() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <input type=\"color\" class=\"form-control js-input\">\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        Color.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Color.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Color.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.value = data.value;
        };
        Color.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        Color.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        Color.prototype.serialize = function () {
            return this.data;
        };
        Color.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function (e) {
                _this.data.value = _this.input.value;
            };
        };
        return Color;
    }());
    exports.Color = Color;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Composite.ts":
/*!*******************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Composite.ts ***!
  \*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Composite = void 0;
    var Composite = /** @class */ (function () {
        function Composite() {
            this.fields = {};
            var div = document.createElement('div');
            div.innerHTML = this.getHtml().trim();
            this._template = div.firstChild;
            this.body = this._template.querySelector('.js-body');
            this.backButton = this._template.querySelector('.js-back-button');
            this.saveButton = this._template.querySelector('.js-save-button');
            div = document.createElement('div');
            div.innerHTML = this.getCollapsedHtml().trim();
            this._collapsedTemplate = div.firstChild;
            this.collapsedBtn = this._collapsedTemplate.querySelector('.js-collapsed-btn');
        }
        Composite.prototype.getHtml = function () {
            return "\n            <div>\n                <div class=\"js-body\"></div>\n                <div class=\"object-field\" style=\"display:flex; gap: 5px;\">\n                    <button class=\"btn btn-info btn-sm js-save-button\" style=\"display:none\">Save</button>\n                    <button class=\"btn btn-secondary btn-sm js-back-button\" style=\"display:none\">Back</button>\n                </div>\n            </div>\n        ";
        };
        Composite.prototype.getCollapsedHtml = function () {
            return "\n            <div class=\"object-field\">\n                <button class=\"btn btn-info js-collapsed-btn\">Obj</button>\n            </div>\n        ";
        };
        Composite.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Composite.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(Composite.prototype, "collapsedTemplate", {
            get: function () {
                return this._collapsedTemplate;
            },
            enumerable: false,
            configurable: true
        });
        Composite.prototype.setFieldCreator = function (callback) {
            this.fieldCreator = callback;
        };
        Composite.prototype.setObjectBus = function (bus) {
            this.objectBus = bus;
        };
        Composite.prototype.loadData = function (data) {
            this.data = data;
            this.collapsedBtn.innerText = data.description;
            for (var name_1 in data.fields) {
                var field = this.fieldCreator(data.fields[name_1].type);
                field.setFormKey(this.formKey);
                field.loadData(data.fields[name_1]);
                this.fields[name_1] = field;
            }
            this.showErrors();
        };
        Composite.prototype.getData = function () {
            return this.data;
        };
        Composite.prototype.build = function () {
            var _this = this;
            return new Promise(function (resolve, reject) {
                _this.resolve = resolve;
                _this.reject = reject;
                _this.draw();
            });
        };
        Composite.prototype.draw = function () {
            this.body.innerHTML = '';
            for (var name_2 in this.fields) {
                if (this.fields[name_2].serialize().composite) {
                    this.body.append(this.fields[name_2].collapsedTemplate);
                    continue;
                }
                this.body.append(this.fields[name_2].template);
            }
        };
        Composite.prototype.showSaveButton = function () {
            this.saveButton.style.display = 'block';
        };
        Composite.prototype.showBackButton = function () {
            this.backButton.style.display = 'block';
        };
        Composite.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this._collapsedTemplate.classList.remove('btn-info');
                this._collapsedTemplate.classList.add('btn-danger');
            }
            for (var name_3 in this.fields) {
                this.fields[name_3].showErrors();
            }
        };
        Composite.prototype.clearErrors = function () {
        };
        Composite.prototype.serialize = function () {
            return this.data;
        };
        Composite.prototype.deepClone = function (obj) {
            if (Array.isArray(obj)) {
                var result = [];
                for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
                    var item = obj_1[_i];
                    if (typeof item === 'object') {
                        result.push(this.deepClone(item));
                    }
                    else {
                        result.push(item);
                    }
                }
                return result;
            }
            else {
                var result = {};
                for (var key in obj) {
                    if (typeof obj[key] === 'object' && obj[key] !== null && key !== 'container') {
                        result[key] = this.deepClone(obj[key]);
                    }
                    else {
                        result[key] = obj[key];
                    }
                }
                return result;
            }
        };
        Composite.prototype.eventsListen = function () {
            var _this = this;
            for (var name_4 in this.fields) {
                this.fields[name_4].eventsListen();
            }
            this._collapsedTemplate.onclick = function (e) {
                e.preventDefault();
                _this.objectBus.renderForm(_this.deepClone(_this.data), _this.formKey)
                    .then(function (updatedObj) {
                    _this.data.fields = updatedObj.fields;
                    _this.objectBus.back(_this.formKey);
                });
            };
            this.backButton.onclick = function (e) {
                e.preventDefault();
                _this.objectBus.back(_this.formKey);
            };
            this.saveButton.onclick = function (e) {
                e.preventDefault();
                _this.resolve(_this.data);
            };
        };
        return Composite;
    }());
    exports.Composite = Composite;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Factory.ts":
/*!*****************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Factory.ts ***!
  \*****************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../types/EInputTypes */ "../../../Common/assets/object-input/types/EInputTypes.ts"), __webpack_require__(/*! ./Modal */ "../../../Common/assets/object-input/components/Modal.ts"), __webpack_require__(/*! ./Composite */ "../../../Common/assets/object-input/components/Composite.ts"), __webpack_require__(/*! ./ObjectForm */ "../../../Common/assets/object-input/components/ObjectForm.ts"), __webpack_require__(/*! ./String */ "../../../Common/assets/object-input/components/String.ts"), __webpack_require__(/*! ./Text */ "../../../Common/assets/object-input/components/Text.ts"), __webpack_require__(/*! ./Html */ "../../../Common/assets/object-input/components/Html.ts"), __webpack_require__(/*! ./Color */ "../../../Common/assets/object-input/components/Color.ts"), __webpack_require__(/*! ./Bool */ "../../../Common/assets/object-input/components/Bool.ts"), __webpack_require__(/*! ./Select */ "../../../Common/assets/object-input/components/Select.ts"), __webpack_require__(/*! ./ObjectsArray */ "../../../Common/assets/object-input/components/ObjectsArray.ts"), __webpack_require__(/*! ./ArrayItem */ "../../../Common/assets/object-input/components/ArrayItem.ts"), __webpack_require__(/*! ./file-input/Factory */ "../../../Common/assets/object-input/components/file-input/Factory.ts"), __webpack_require__(/*! ../components/tree-select/Factory */ "../../../Common/assets/object-input/components/tree-select/Factory.ts"), __webpack_require__(/*! ../../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, EInputTypes_1, Modal_1, Composite_1, ObjectForm_1, String_1, Text_1, Html_1, Color_1, Bool_1, Select_1, ObjectsArray_1, ArrayItem_1, Factory_1, Factory_2, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.modal = null;
            this.objectForms = {};
            this.fileInputFactory = null;
            this.treeSelectFactory = null;
        }
        Factory.prototype.init = function (conf) {
            this.conf = {
                modal: null,
                composite: null,
                objectForm: null,
                fileInput: {
                    factory: null,
                },
                treeSelect: {
                    factory: null,
                },
                string: null,
                text: null,
                html: null,
                color: null,
                bool: null,
                select: null,
                objectsArray: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.setAppFactory = function (factory) {
            this.appFactory = factory;
        };
        Factory.prototype.getAppFactory = function () {
            return this.appFactory;
        };
        Factory.prototype.getModal = function () {
            var _this = this;
            if (this.modal === null) {
                this.modal = this.conf.modal || new Modal_1.Modal();
                this.modal.setObjCreator(function (type) {
                    return _this.createInputField(type);
                });
                document.querySelector('body').append(this.modal.template);
                this.modal.eventsListen();
            }
            return this.modal;
        };
        Factory.prototype.createInputField = function (type) {
            var _this = this;
            var objectBus = this.appFactory.getBusFactory().getObjectBus();
            if (type == EInputTypes_1.EInputTypes.string) {
                var input_1 = this.conf.string || new String_1.String();
                return input_1;
            }
            if (type == EInputTypes_1.EInputTypes.text) {
                var input_2 = this.conf.text || new Text_1.Text();
                return input_2;
            }
            if (type == EInputTypes_1.EInputTypes.html) {
                var input_3 = this.conf.html || new Html_1.Html();
                return input_3;
            }
            if (type == EInputTypes_1.EInputTypes.color) {
                var input_4 = this.conf.color || new Color_1.Color();
                return input_4;
            }
            if (type == EInputTypes_1.EInputTypes.bool) {
                var input_5 = this.conf.bool || new Bool_1.Bool();
                return input_5;
            }
            if (type == EInputTypes_1.EInputTypes.select) {
                var input_6 = this.conf.select || new Select_1.Select();
                return input_6;
            }
            if (type == EInputTypes_1.EInputTypes.array) {
                var input_7 = this.conf.objectsArray || new ObjectsArray_1.ObjectsArray();
                input_7.setObjectBus(objectBus);
                input_7.setItemCreator(function (type) {
                    var item = new ArrayItem_1.ArrayItem();
                    var objectBus = _this.appFactory.getBusFactory().getObjectBus();
                    item.setObjectBus(objectBus);
                    return item;
                });
                return input_7;
            }
            if (type == EInputTypes_1.EInputTypes.file) {
                var input_8 = this.getFileInputFactory().createFileInput();
                return input_8;
            }
            if (type == EInputTypes_1.EInputTypes.image) {
                var input_9 = this.getFileInputFactory().createImageInput();
                return input_9;
            }
            if (type == EInputTypes_1.EInputTypes.treeSelect) {
                var input_10 = this.getTreeSelectFactory().createTreeSelect();
                return input_10;
            }
            var input = this.createComposite();
            return input;
        };
        Factory.prototype.createComposite = function () {
            var _this = this;
            var objectBus = this.appFactory.getBusFactory().getObjectBus();
            var composite = this.conf.composite || new Composite_1.Composite();
            composite.setObjectBus(objectBus);
            composite.setFieldCreator(function (type) {
                return _this.createInputField(type);
            });
            return composite;
        };
        Factory.prototype.getObjectForm = function (key) {
            var _this = this;
            if (!this.objectForms[key]) {
                var objectForm = this.conf.objectForm || new ObjectForm_1.ObjectForm();
                objectForm.setKey(key);
                objectForm.setCompositeCreator(function (type) {
                    return _this.createComposite();
                });
                this.objectForms[key] = objectForm;
            }
            return this.objectForms[key];
        };
        Factory.prototype.getFileInputFactory = function () {
            if (this.fileInputFactory === null) {
                this.fileInputFactory = this.conf.fileInput.factory || new Factory_1.Factory();
                this.fileInputFactory.setComponentsFactory(this);
                this.fileInputFactory.init(this.conf.fileInput);
            }
            return this.fileInputFactory;
        };
        Factory.prototype.getTreeSelectFactory = function () {
            if (this.treeSelectFactory === null) {
                this.treeSelectFactory = this.conf.treeSelect.factory || new Factory_2.Factory();
                this.treeSelectFactory.setComponentsFactory(this);
                this.treeSelectFactory.init(this.conf.treeSelect);
            }
            return this.treeSelectFactory;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Html.ts":
/*!**************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Html.ts ***!
  \**************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Html = void 0;
    var jodit = __webpack_require__(/*! jodit/build/jodit.js */ "../../../Common/assets/node_modules/jodit/build/jodit.js");
    var Html = /** @class */ (function () {
        function Html() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <textarea class=\"form-control html-text-area js-input\"></textarea>\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            // this.contentEditor = this.initJodit(this.$input);
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        Html.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Html.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Html.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            // this.$input.val(data.value);
            // this.contentEditor.value = data.value;
        };
        Html.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        Html.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        Html.prototype.serialize = function () {
            return this.data;
        };
        Html.prototype.eventsListen = function () {
            var _this = this;
            // this.$input.on('input', (e:Event)=>{
            //     let val = $(e.target).val();
            //     this.data.value = val;
            // });
            if (this.contentEditor) {
                this.contentEditor.destruct();
            }
            this.contentEditor = this.initJodit(this.input);
            this.contentEditor.value = this.data.value;
            this.contentEditor.events.on('change', function (html) {
                _this.data.value = html;
            });
        };
        Html.prototype.initJodit = function (textArea) {
            var joditConfig = {
                addNewLine: false,
                height: 300,
                allowResizeX: true,
                allowResizeY: true,
                iframe: true,
                iframeCSSLinks: [
                    '/css/_style.min.css',
                ],
                uploader: {
                    url: settings.filesBrowser.upload,
                    prepareData: function (data) {
                        var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
                        data.append('_token', token);
                        return data;
                    },
                },
                filebrowser: {
                    ajax: {
                        url: settings.filesBrowser.ajax,
                        successStatuses: [200, 201, 202],
                        prepareData: function (data) {
                            data._token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
                            ;
                            return data;
                        },
                    },
                    create: {
                        url: settings.filesBrowser.create,
                        successStatuses: [200, 201, 202],
                    },
                    move: {
                        url: settings.filesBrowser.move,
                        successStatuses: [200, 201, 202],
                    },
                    remove: {
                        url: settings.filesBrowser.remove,
                        successStatuses: [200, 201, 202],
                    },
                    items: {
                        url: settings.filesBrowser.items,
                        successStatuses: [200, 201, 202],
                    },
                    folder: {
                        url: settings.filesBrowser.folder,
                        successStatuses: [200, 201, 202],
                    }
                }
            };
            return jodit.Jodit.make(textArea, joditConfig);
        };
        return Html;
    }());
    exports.Html = Html;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Modal.ts":
/*!***************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Modal.ts ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Modal = void 0;
    var Modal = /** @class */ (function () {
        function Modal() {
            this.html = "\n        <div class=\"modal fade\">\n            <div class=\"modal-dialog\" role=\"document\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header\">\n                        <h5 class=\"modal-title\" id=\"exampleModalLabel\">Modal title</h5>\n                        <button type=\"button\" class=\"close js-close-btn\" data-dismiss=\"modal\" aria-label=\"Close\">\n                            <span aria-hidden=\"true\">&times;</span>\n                        </button>\n                    </div>\n                    <div class=\"modal-body js-body\">\n                        \n                    </div>\n                    <div class=\"modal-footer\">\n                        <button type=\"button\" class=\"btn btn-secondary js-cancel-btn\" data-dismiss=\"modal\">Cancel</button>\n                        <button type=\"button\" class=\"btn btn-primary js-save-button\">Save changes</button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.body = this._template.querySelector('.js-body');
            this.saveButton = this._template.querySelector('.js-save-button');
            this.cancelBtn = this._template.querySelector('.js-cancel-btn');
            this.closeBtn = this._template.querySelector('.js-close-btn');
        }
        Object.defineProperty(Modal.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Modal.prototype.setObjCreator = function (callback) {
            this.objCreator = callback;
        };
        Modal.prototype.show = function (obj) {
            var _this = this;
            return new Promise(function (resolve, reject) {
                _this.data = obj;
                _this.resolve = resolve;
                _this.reject = reject;
                var inputObj = _this.objCreator(obj.type);
                inputObj.loadData(obj);
                _this.body.innerHTML = '';
                _this.body.append(inputObj.template);
                inputObj.eventsListen();
                _this._template.classList.add('show');
                _this._template.style.display = 'block';
            });
        };
        Modal.prototype.hide = function () {
            this._template.classList.remove('show');
            this._template.style.display = 'none';
        };
        Modal.prototype.eventsListen = function () {
            var _this = this;
            this.saveButton.onclick = function (e) {
                e.preventDefault();
                _this.hide();
                _this.resolve(_this.data);
            };
            this.cancelBtn.onclick = function () {
                _this.hide();
            };
            this.closeBtn.onclick = function () {
                _this.hide();
            };
        };
        return Modal;
    }());
    exports.Modal = Modal;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/ObjectForm.ts":
/*!********************************************************************!*\
  !*** ../../../Common/assets/object-input/components/ObjectForm.ts ***!
  \********************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../types/EInputTypes */ "../../../Common/assets/object-input/types/EInputTypes.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, EInputTypes_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ObjectForm = void 0;
    var ObjectForm = /** @class */ (function () {
        function ObjectForm() {
            this.stack = [];
        }
        ObjectForm.prototype.setCompositeCreator = function (callback) {
            this.compositeCreator = callback;
        };
        ObjectForm.prototype.setKey = function (key) {
            this.key = key;
        };
        ObjectForm.prototype.init = function (container) {
            this.container = container;
        };
        ObjectForm.prototype.setData = function (data) {
            this.stack = [];
            var c = this.compositeCreator(data.type);
            c.setFormKey(this.key);
            c.loadData(data);
            this.stack.push(c);
        };
        ObjectForm.prototype.getData = function () {
            return this.stack[0].getData();
        };
        ObjectForm.prototype.render = function (composite) {
            var c = this.compositeCreator(composite.type);
            c.setFormKey(this.key);
            c.loadData(composite);
            this.stack.push(c);
            var promise = c.build();
            this.container.innerHTML = '';
            this.container.append(c.template);
            c.eventsListen();
            if (this.stack.length > 1) {
                c.showBackButton();
                c.showSaveButton();
            }
            return promise;
        };
        ObjectForm.prototype.rerender = function () {
            var c = this.stack[this.stack.length - 1];
            c.draw();
            this.container.innerHTML = '';
            this.container.append(c.template);
            c.eventsListen();
            if (this.stack.length > 1) {
                c.showBackButton();
                c.showSaveButton();
            }
        };
        ObjectForm.prototype.back = function () {
            this.stack.pop();
            var c = this.stack[this.stack.length - 1];
            c.draw();
            this.container.innerHTML = '';
            this.container.append(c.template);
            c.eventsListen();
            if (this.stack.length > 1) {
                c.showBackButton();
                c.showSaveButton();
            }
        };
        ObjectForm.prototype.getFormData = function (fieldName, form) {
            if (fieldName === void 0) { fieldName = 'object'; }
            if (form === void 0) { form = null; }
            var formData = form || new FormData();
            this.fillFormData(this.getData(), formData, fieldName);
            return formData;
        };
        ObjectForm.prototype.fillFormData = function (obj, formData, name) {
            if (obj.composite) {
                for (var field in obj.fields) {
                    var n = name + '[' + field + ']';
                    this.fillFormData(obj.fields[field], formData, n);
                }
                return;
            }
            if (obj.type == EInputTypes_1.EInputTypes.array) {
                for (var i in obj.items) {
                    var n = name + '[items][' + i + ']';
                    this.fillFormData(obj.items[i], formData, n);
                    formData.append(name + '[items][' + i + '][type]', obj.items[i].type);
                }
                return;
            }
            formData.append(name + '[value]', obj.value || '');
        };
        ObjectForm.prototype.getJSON = function (obj) {
            if (obj === void 0) { obj = null; }
            var result = {};
            this.fillJSON(this.getData(), result);
            return result;
        };
        ObjectForm.prototype.fillJSON = function (obj, jsonData) {
            if (obj.composite) {
                for (var field in obj.fields) {
                    jsonData[field] = {};
                    this.fillJSON(obj.fields[field], jsonData[field]);
                }
                return;
            }
            if (obj.type == EInputTypes_1.EInputTypes.array) {
                jsonData['items'] = {};
                for (var i in obj.items) {
                    var n = name + '[items][' + i + ']';
                    jsonData['items'][i] = {};
                    this.fillJSON(obj.items[i], jsonData['items'][i]);
                    jsonData['items'][i]['type'] = obj.items[i].type;
                }
                return;
            }
            jsonData['value'] = obj.value || '';
        };
        return ObjectForm;
    }());
    exports.ObjectForm = ObjectForm;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/ObjectsArray.ts":
/*!**********************************************************************!*\
  !*** ../../../Common/assets/object-input/components/ObjectsArray.ts ***!
  \**********************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ObjectsArray = void 0;
    var DropableElement = /** @class */ (function () {
        function DropableElement(index) {
            this.html = "\n        <div class=\"array-item-dropable mt-1\"></div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this._index = index;
        }
        Object.defineProperty(DropableElement.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(DropableElement.prototype, "index", {
            get: function () {
                return this._index;
            },
            enumerable: false,
            configurable: true
        });
        DropableElement.prototype.getRectangle = function () {
            return this._template.getBoundingClientRect();
        };
        DropableElement.prototype.setActive = function () {
            this._template.classList.add('array-item-dropable-active');
        };
        DropableElement.prototype.unsetActive = function () {
            this._template.classList.remove('array-item-dropable-active');
        };
        return DropableElement;
    }());
    var ObjectsArray = /** @class */ (function () {
        function ObjectsArray() {
            this.html = "\n        <div class=\"object-field\">\n            <div class=\"object-array-label-row\">\n                <div class=\"js-label\"></div>\n                <div class=\"dropdown\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"add-item-btn js-add-item-btn bi bi-plus-circle-fill\" viewBox=\"0 0 16 16\">\n                        <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v3h-3a.5.5 0 0 0 0 1h3v3a.5.5 0 0 0 1 0v-3h3a.5.5 0 0 0 0-1h-3v-3z\"/>\n                    </svg>\n                    <div class=\"dropdown-menu js-types-dropdown\">\n                        \n                    </div>\n                </div>\n            </div>\n            <div class=\"js-items\"></div>\n        </div>\n    ";
            this.items = [];
            this.dropableElements = [];
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.addItemBtn = this._template.querySelector('.js-add-item-btn');
            this.typesDropdown = this._template.querySelector('.js-types-dropdown');
            this.itemsContainer = this._template.querySelector('.js-items');
        }
        ObjectsArray.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        ObjectsArray.prototype.setItemCreator = function (callback) {
            this.itemCreator = callback;
        };
        Object.defineProperty(ObjectsArray.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        ObjectsArray.prototype.setObjectBus = function (bus) {
            this.objectBus = bus;
        };
        ObjectsArray.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            // this.renderItems();
            for (var type in data.item_proto) {
                var div = document.createElement('div');
                div.innerHTML = '<button class="dropdown-item js-dropdown-type"></button>';
                var typeBtn = div.firstChild;
                typeBtn.innerText = data.item_proto[type].description;
                typeBtn.setAttribute('type', type);
                this.typesDropdown.append(typeBtn);
            }
        };
        ObjectsArray.prototype.renderItems = function () {
            var _this = this;
            this.itemsContainer.innerHTML = '';
            this.items = [];
            var _loop_1 = function (i) {
                var item = this_1.itemCreator(this_1.data.items[i].type);
                item.setIndex(+i);
                item.setFormKey(this_1.formKey);
                item.setOnDelete(function () {
                    _this.data.items.splice(+i, 1);
                    _this.objectBus.rerender(_this.formKey);
                });
                item.setOnUpdated(function (item) {
                    _this.data.items[i] = item;
                    _this.objectBus.rerender(_this.formKey);
                });
                item.loadData(this_1.data.items[i]);
                var descriptionField = this_1.data.item_proto[this_1.data.items[i].type].label_field;
                if (descriptionField && this_1.data.items[i].composite) {
                    var label = this_1.data.items[i].fields[descriptionField].value;
                    item.setLabel(label);
                }
                item.setOnDragStarted(function (item) {
                    //this.draggingItem = item;
                    var index = item.getIndex();
                    _this.dropableElements[index].template.style.display = 'none';
                });
                item.setOnDragMove(function (x, y) {
                    var dr = _this.findDroppable(x, y);
                    if (_this.currendDropable && !dr) {
                        _this.currendDropable.unsetActive();
                    }
                    if (!_this.currendDropable && dr) {
                        dr.setActive();
                    }
                    _this.currendDropable = dr;
                });
                item.setOnDragEnded(function (item) {
                    if (_this.currendDropable) {
                        var newIndex = _this.currendDropable.index;
                        item.setIndex(newIndex);
                        item.template.remove();
                        _this.reorderItems();
                    }
                    else {
                        item.template.remove();
                        _this.reorderItems();
                    }
                });
                var dropableEl = new DropableElement(this_1.items.length);
                this_1.dropableElements.push(dropableEl);
                this_1.items.push(item);
                this_1.itemsContainer.append(dropableEl.template);
                this_1.itemsContainer.append(item.template);
                item.eventsListen();
            };
            var this_1 = this;
            for (var i in this.data.items) {
                _loop_1(i);
            }
        };
        ObjectsArray.prototype.findDroppable = function (x, y) {
            for (var _i = 0, _a = this.dropableElements; _i < _a.length; _i++) {
                var dr = _a[_i];
                var rect = dr.getRectangle();
                if (rect.left < x && rect.right > x && rect.top < y && rect.bottom > y) {
                    return dr;
                }
            }
            return null;
        };
        ObjectsArray.prototype.reorderItems = function () {
            var sortedItems = this.items.sort(function (a, b) {
                var d = a.getIndex() - b.getIndex();
                return (d == 0) ? -1 : d;
            });
            this.data.items = [];
            this.items = [];
            this.dropableElements = [];
            for (var _i = 0, sortedItems_1 = sortedItems; _i < sortedItems_1.length; _i++) {
                var item = sortedItems_1[_i];
                this.data.items.push(item.getData());
            }
            this.renderItems();
        };
        ObjectsArray.prototype.showErrors = function () {
            for (var _i = 0, _a = this.items; _i < _a.length; _i++) {
                var item = _a[_i];
                item.showErrors();
            }
        };
        ObjectsArray.prototype.clearErrors = function () {
            for (var _i = 0, _a = this.items; _i < _a.length; _i++) {
                var item = _a[_i];
                item.clearErrors();
            }
        };
        ObjectsArray.prototype.serialize = function () {
            return this.data;
        };
        ObjectsArray.prototype.deepClone = function (obj) {
            if (Array.isArray(obj)) {
                var result = [];
                for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
                    var item = obj_1[_i];
                    if (typeof item === 'object') {
                        result.push(this.deepClone(item));
                    }
                    else {
                        result.push(item);
                    }
                }
                return result;
            }
            else {
                var result = {};
                for (var key in obj) {
                    if (typeof obj[key] === 'object' && obj[key] !== null && key !== 'container') {
                        result[key] = this.deepClone(obj[key]);
                    }
                    else {
                        result[key] = obj[key];
                    }
                }
                return result;
            }
        };
        ObjectsArray.prototype.eventsListen = function () {
            var _this = this;
            this.addItemBtn.onclick = function (e) {
                _this.typesDropdown.classList.toggle('show');
            };
            this.typesDropdown.querySelectorAll('.js-dropdown-type').forEach(function (el, i) {
                el.onclick = function (e) {
                    e.preventDefault();
                    _this.typesDropdown.classList.remove('show');
                    var type = el.getAttribute('type');
                    var proto = _this.data.item_proto[type].proto;
                    if (_this.data.item_proto[type].proto.composite) {
                        _this.objectBus.renderForm(_this.deepClone(proto), _this.formKey)
                            .then(function (newItem) {
                            _this.data.items.push(newItem);
                            _this.objectBus.back(_this.formKey);
                        });
                    }
                    else {
                        _this.objectBus.execObjectModal(_this.deepClone(proto))
                            .then(function (newItem) {
                            _this.data.items.push(newItem);
                            _this.objectBus.rerender(_this.formKey);
                        });
                    }
                };
            });
            this.renderItems();
        };
        return ObjectsArray;
    }());
    exports.ObjectsArray = ObjectsArray;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Select.ts":
/*!****************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Select.ts ***!
  \****************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Select = void 0;
    var Select = /** @class */ (function () {
        function Select() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <select class=\"form-control js-select\">\n                \n            </select>\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.select = this._template.querySelector('.js-select');
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        Select.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Select.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Select.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.select.value = data.value;
            this.select.innerHTML = '';
            for (var _i = 0, _a = data.options; _i < _a.length; _i++) {
                var option = _a[_i];
                var isSelected = (data.value == option.value) ? 'selected' : '';
                var div = document.createElement('div');
                div.innerHTML = '<option value="' + option.value + '" ' + isSelected + '>' + option.title + '</option>';
                var opt = div.firstChild;
                this.select.append(opt);
            }
        };
        Select.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.select.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        Select.prototype.clearErrors = function () {
            this.select.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        Select.prototype.serialize = function () {
            return this.data;
        };
        Select.prototype.eventsListen = function () {
            var _this = this;
            this.select.oninput = function (e) {
                _this.data.value = _this.select.value;
            };
        };
        return Select;
    }());
    exports.Select = Select;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/String.ts":
/*!****************************************************************!*\
  !*** ../../../Common/assets/object-input/components/String.ts ***!
  \****************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.String = void 0;
    var String = /** @class */ (function () {
        function String() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <input type=\"text\" class=\"form-control js-input\">\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        String.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(String.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        String.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.value = data.value;
        };
        String.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        String.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        String.prototype.serialize = function () {
            return this.data;
        };
        String.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function (e) {
                _this.data.value = _this.input.value;
            };
        };
        return String;
    }());
    exports.String = String;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/Text.ts":
/*!**************************************************************!*\
  !*** ../../../Common/assets/object-input/components/Text.ts ***!
  \**************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Text = void 0;
    var Text = /** @class */ (function () {
        function Text() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <textarea class=\"form-control text-area js-input\"></textarea>\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        Text.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        Object.defineProperty(Text.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Text.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.value = data.value;
        };
        Text.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
            }
        };
        Text.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
        };
        Text.prototype.serialize = function () {
            return this.data;
        };
        Text.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function () {
                _this.data.value = _this.input.value;
            };
        };
        return Text;
    }());
    exports.Text = Text;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/BrowserModal.ts":
/*!*********************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/BrowserModal.ts ***!
  \*********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../../types/TFilesBrowserIcon */ "../../../Common/assets/object-input/types/TFilesBrowserIcon.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, TFilesBrowserIcon_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.BrowserModal = void 0;
    var BrowserModal = /** @class */ (function () {
        function BrowserModal() {
            this.html = "\n        <div class=\"fb-modal modal fade\">\n            <div class=\"modal-dialog modal-xl\" role=\"document\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header\">\n                        <h5 class=\"modal-title\" id=\"exampleModalLabel\">\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B</h5>\n                        <button type=\"button\" class=\"js-close-btn close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                            <span aria-hidden=\"true\">&times;</span>\n                        </button>\n                    </div>\n                    <div class=\"modal-body js-body\">\n                        <div class=\"files-container js-files-container\"></div>\n                    </div>\n                    <div class=\"modal-footer\">\n                        <input type=\"file\" id=\"fb-file-input\" class=\"fb-file-input js-file-input\" />\n                        <label for=\"fb-file-input\" class=\"btn btn-primary js-file-input-label\">\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u0430\u0439\u043B</label>\n                        <button type=\"button\" class=\"btn btn-primary js-create-dir-button\">\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443</button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    ";
            this.icons = [];
            this.currentPath = '';
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.body = this._template.querySelector('.js-body');
            this.jsContainer = this._template.querySelector('.js-files-container');
            this.createDirButton = this._template.querySelector('.js-create-dir-button');
            this.fileInput = this._template.querySelector('.js-file-input');
            this.closeBtn = this._template.querySelector('.js-close-btn');
        }
        BrowserModal.prototype.setItemCreator = function (creator) {
            this.createItem = creator;
        };
        BrowserModal.prototype.setFileInputBus = function (bus) {
            this.bus = bus;
        };
        BrowserModal.prototype.setCurrentPath = function (path) {
            var segments = path.split('/');
            var stack = [];
            for (var i in segments) {
                if (segments[i] == '' && +i > 0) {
                    continue;
                }
                if (segments[i] == '..') {
                    // Ignore this segment, remove last segment from stack
                    stack.pop();
                    continue;
                }
                if (segments[i] == '.') {
                    // Ignore this segment
                    continue;
                }
                stack.push(segments[i]);
            }
            this.currentPath = stack.join('/');
        };
        Object.defineProperty(BrowserModal.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        BrowserModal.prototype.setFilesBrowserCommands = function (commands) {
            this.filesBrowserCommands = commands;
        };
        BrowserModal.prototype.show = function () {
            var _this = this;
            return new Promise(function (resolve, reject) {
                _this.resolve = resolve;
                _this.reject = reject;
                _this.filesBrowserCommands.getDir('')
                    .then(function (resp) {
                    _this.jsContainer.innerHTML = '';
                    _this.icons = [];
                    for (var _i = 0, resp_1 = resp; _i < resp_1.length; _i++) {
                        var data = resp_1[_i];
                        if (data.name == '.') {
                            continue;
                        }
                        _this.newItem(data);
                    }
                });
                _this._template.classList.add('show');
                _this._template.style.display = 'block';
            });
        };
        BrowserModal.prototype.hide = function () {
            this._template.classList.remove('show');
            this._template.style.display = 'none';
            this.bus.hideItemContextMenu();
        };
        BrowserModal.prototype.eventsListen = function () {
            var _this = this;
            this._template.onclick = function (e) {
                _this.bus.hideItemContextMenu();
            };
            this.closeBtn.onclick = function () {
                _this.hide();
            };
            this.createDirButton.onclick = function (e) {
                var dirName = '';
                _this.bus.execItemModal()
                    .then(function (name) {
                    dirName = name;
                    return _this.filesBrowserCommands.createDir(_this.currentPath + '/' + name);
                })
                    .then(function (resp) {
                    if (resp.success) {
                        _this.bus.createdDir(_this.currentPath, dirName);
                    }
                });
            };
            this.fileInput.onchange = function (e) {
                e.preventDefault();
                if (event.target.files.length >= 1) {
                    var file = event.target.files[0];
                    _this.filesBrowserCommands.uploadFile(_this.currentPath + '/' + file.name, file)
                        .then(function (resp) {
                        if (resp.success && resp.type == TFilesBrowserIcon_1.TFileType.file) {
                            _this.bus.uploadedFile(_this.currentPath, resp.fileName);
                        }
                        if (resp.success && resp.type == TFilesBrowserIcon_1.TFileType.img) {
                            _this.bus.uploadedImg(_this.currentPath, resp.fileName);
                        }
                    });
                }
            };
        };
        BrowserModal.prototype.update = function (icons) {
            this.jsContainer.innerHTML = '';
            this.icons = [];
            for (var _i = 0, icons_1 = icons; _i < icons_1.length; _i++) {
                var data = icons_1[_i];
                if (data.name == '.') {
                    continue;
                }
                this.newItem(data);
            }
        };
        BrowserModal.prototype.deleteFile = function (path) {
            for (var i in this.icons) {
                if (this.icons[i].getData().path + '/' + this.icons[i].getData().name == path) {
                    this.icons[i].template.remove();
                    this.icons.splice(+i, 1);
                    break;
                }
            }
        };
        BrowserModal.prototype.renameFile = function (path, newName) {
            for (var i in this.icons) {
                if (this.icons[i].getData().path + '/' + this.icons[i].getData().name == path) {
                    this.icons[i].rename(newName);
                    break;
                }
            }
        };
        BrowserModal.prototype.newItem = function (data) {
            var _this = this;
            var item = this.createItem();
            item.setOnSelectedFile(function (fileName) {
                _this.resolve(fileName);
                _this.hide();
            });
            item.load(data);
            this.jsContainer.append(item.template);
            item.eventsListen();
            this.icons.push(item);
        };
        return BrowserModal;
    }());
    exports.BrowserModal = BrowserModal;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/EmbeddedFileInput.ts":
/*!**************************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/EmbeddedFileInput.ts ***!
  \**************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.EmbeddedFileInput = void 0;
    var EmbeddedFileInput = /** @class */ (function () {
        function EmbeddedFileInput() {
        }
        EmbeddedFileInput.prototype.setOnInput = function (callback) {
            this.onInput = callback;
        };
        EmbeddedFileInput.prototype.setValue = function (fileName) {
            this.input.value = fileName;
        };
        EmbeddedFileInput.prototype.init = function (input) {
            this.input = input;
            var html = "\n            <div class=\"input-group-append\">\n                <a href=\"#\" class=\"input-group-text btn-info js-browser-btn\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                        <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                        <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                    </svg>\n                </a>\n            </div>\n        ";
            var div = document.createElement('div');
            div.innerHTML = html.trim();
            this.browserBtn = div.firstChild;
            this.input.classList.add('form-control');
            this.wrap(this.input, '<div class="input-group"></div>');
            this.input.parentElement.append(this.browserBtn);
        };
        EmbeddedFileInput.prototype.wrap = function (element, wrapperHtml) {
            var div = document.createElement('div');
            div.innerHTML = wrapperHtml.trim();
            var wrapper = div.firstChild;
            element.parentNode.insertBefore(wrapper, element);
            wrapper.appendChild(element);
        };
        EmbeddedFileInput.prototype.setBus = function (bus) {
            this.bus = bus;
        };
        EmbeddedFileInput.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function () {
                if (_this.onInput) {
                    _this.onInput(_this.input.value);
                }
            };
            this.browserBtn.onclick = function (e) {
                e.preventDefault();
                _this.bus.execBrowserModal()
                    .then(function (fileName) {
                    _this.input.value = fileName;
                    if (_this.onInput) {
                        _this.onInput(fileName);
                    }
                });
            };
        };
        return EmbeddedFileInput;
    }());
    exports.EmbeddedFileInput = EmbeddedFileInput;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/EmbeddedImageInput.ts":
/*!***************************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/EmbeddedImageInput.ts ***!
  \***************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.EmbeddedImageInput = void 0;
    var EmbeddedImageInput = /** @class */ (function () {
        function EmbeddedImageInput() {
        }
        EmbeddedImageInput.prototype.setOnInput = function (callback) {
            this.onInput = callback;
        };
        EmbeddedImageInput.prototype.setValue = function (fileName) {
            this.input.value = fileName;
            this.previewImg(fileName);
        };
        EmbeddedImageInput.prototype.init = function (input) {
            this.input = input;
            var html = "\n            <div class=\"input-group-append\">\n                <a href=\"#\" class=\"input-group-text btn-info js-browser-btn\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                        <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                        <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                    </svg>\n                </a>\n            </div>\n        ";
            var div = document.createElement('div');
            div.innerHTML = html.trim();
            this.browserBtn = div.firstChild;
            this.input.classList.add('form-control');
            this.wrap(this.input, '<div class="input-group"></div>');
            this.input.parentElement.append(this.browserBtn);
            html = "\n            <div class=\"prev-container\">\n                <canvas class=\"img-prev js-canvas\"></canvas>\n                <div class=\"preloader js-preloader\">\n                    <div class=\"lds-dual-ring\"></div>\n                </div>\n            </div>\n        ";
            div = document.createElement('div');
            div.innerHTML = html.trim();
            this.prevImg = div.firstChild;
            this.input.parentElement.parentElement.append(this.prevImg);
            this.preloader = this.input.parentElement.querySelector('.js-preloader');
            this.canvasContext = this.prevImg.querySelector('.js-canvas').getContext('2d');
        };
        EmbeddedImageInput.prototype.wrap = function (element, wrapperHtml) {
            var div = document.createElement('div');
            div.innerHTML = wrapperHtml.trim();
            var wrapper = div.firstChild;
            element.parentNode.insertBefore(wrapper, element);
            wrapper.appendChild(element);
        };
        EmbeddedImageInput.prototype.setBus = function (bus) {
            this.bus = bus;
        };
        EmbeddedImageInput.prototype.eventsListen = function () {
            var _this = this;
            var w = this.input.getAttribute('data-previwWidth') || this.input.parentElement.clientWidth;
            var ar = this.input.getAttribute('data-ar');
            this.prevImg.querySelector('.js-canvas').setAttribute('width', w.toString());
            if (ar) {
                var h = +w / +ar;
                this.prevImg.querySelector('.js-canvas').setAttribute('height', h.toString());
            }
            else {
                this.prevImg.querySelector('.js-canvas').setAttribute('height', w.toString());
            }
            if (this.input.value) {
                this.previewImg(this.input.value);
            }
            this.input.oninput = function (e) {
                var val = _this.input.value;
                _this.previewImg(val);
                if (_this.onInput) {
                    _this.onInput(val);
                }
            };
            this.browserBtn.onclick = function (e) {
                e.preventDefault();
                _this.bus.execBrowserModal()
                    .then(function (fileName) {
                    _this.input.value = fileName;
                    _this.previewImg(fileName);
                    if (_this.onInput) {
                        _this.onInput(fileName);
                    }
                });
            };
        };
        EmbeddedImageInput.prototype.previewImg = function (fileName) {
            var _this = this;
            var canvasWidth = this.prevImg.querySelector('.js-canvas').getAttribute('width');
            var canvasHeight = this.prevImg.querySelector('.js-canvas').getAttribute('height');
            var img = new Image();
            this.preloader.style.display = 'block';
            var ar = this.input.getAttribute('data-ar');
            var path = this.input.getAttribute('data-path');
            img.onload = function () {
                _this.canvasContext.clearRect(0, 0, canvasWidth, canvasHeight);
                var imgH = img.height;
                var imgW = img.width;
                if (+ar == 0) {
                    _this.canvasContext.drawImage(img, 0, 0, imgW, imgH, 0, 0, canvasWidth, canvasHeight);
                    _this.preloader.style.display = 'none';
                    return;
                }
                var dx = 0;
                var dy = 0;
                if (+imgW / +imgH > +ar) {
                    // изображение вытянуто по ширине
                    var scale = imgH / +canvasHeight;
                    dx = (imgW - +canvasWidth * scale) / 2;
                }
                else {
                    // изображение вытянуто по высоте
                    var scale = imgW / +canvasWidth;
                    dy = (imgH - +canvasHeight * scale) / 2;
                }
                _this.canvasContext.drawImage(img, dx, dy, imgW - 2 * dx, imgH - 2 * dy, 0, 0, canvasWidth, canvasHeight);
                _this.preloader.style.display = 'none';
            };
            img.src = path + fileName;
        };
        return EmbeddedImageInput;
    }());
    exports.EmbeddedImageInput = EmbeddedImageInput;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/Factory.ts":
/*!****************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/Factory.ts ***!
  \****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./FileInput */ "../../../Common/assets/object-input/components/file-input/FileInput.ts"), __webpack_require__(/*! ./EmbeddedFileInput */ "../../../Common/assets/object-input/components/file-input/EmbeddedFileInput.ts"), __webpack_require__(/*! ./EmbeddedImageInput */ "../../../Common/assets/object-input/components/file-input/EmbeddedImageInput.ts"), __webpack_require__(/*! ./ImageInput */ "../../../Common/assets/object-input/components/file-input/ImageInput.ts"), __webpack_require__(/*! ./BrowserModal */ "../../../Common/assets/object-input/components/file-input/BrowserModal.ts"), __webpack_require__(/*! ./Item */ "../../../Common/assets/object-input/components/file-input/Item.ts"), __webpack_require__(/*! ./FileContextMenu */ "../../../Common/assets/object-input/components/file-input/FileContextMenu.ts"), __webpack_require__(/*! ../../../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, FileInput_1, EmbeddedFileInput_1, EmbeddedImageInput_1, ImageInput_1, BrowserModal_1, Item_1, FileContextMenu_1, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.browserModal = null;
            this.fileContextMenu = null;
        }
        Factory.prototype.init = function (conf) {
            this.conf = {
                fileInput: null,
                embededFileInput: null,
                embededImageInput: null,
                imageInput: null,
                browserModal: null,
                item: null,
                fileContextMenu: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        Factory.prototype.createFileInput = function () {
            var fileInput = this.conf.fileInput || new FileInput_1.FileInput();
            var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
            fileInput.setBus(bus);
            return fileInput;
        };
        Factory.prototype.createEmbeddedFileInput = function () {
            var fileInput = this.conf.embededFileInput || new EmbeddedFileInput_1.EmbeddedFileInput();
            var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
            fileInput.setBus(bus);
            return fileInput;
        };
        Factory.prototype.createImageInput = function () {
            var imageInput = this.conf.imageInput || new ImageInput_1.ImageInput();
            var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
            imageInput.setBus(bus);
            return imageInput;
        };
        Factory.prototype.createEmbeddedImageInput = function () {
            var fileInput = this.conf.embededImageInput || new EmbeddedImageInput_1.EmbeddedImageInput();
            var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
            fileInput.setBus(bus);
            return fileInput;
        };
        Factory.prototype.getBrowserModal = function () {
            var _this = this;
            if (this.browserModal === null) {
                this.browserModal = this.conf.browserModal || new BrowserModal_1.BrowserModal();
                var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
                this.browserModal.setFileInputBus(bus);
                this.browserModal.setItemCreator(function () {
                    return _this.createItem();
                });
                var commands = this.componentsFactory.getAppFactory().getCommandsFactory().getFilesBrowserCommands();
                this.browserModal.setFilesBrowserCommands(commands);
                document.querySelector('body').append(this.browserModal.template);
                this.browserModal.eventsListen();
            }
            return this.browserModal;
        };
        Factory.prototype.createItem = function () {
            var item = this.conf.item || new Item_1.Item();
            var commands = this.componentsFactory.getAppFactory().getCommandsFactory().getFilesBrowserCommands();
            item.setFBCommands(commands);
            var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
            item.setFBBus(bus);
            return item;
        };
        Factory.prototype.getFileContextMenu = function () {
            if (this.fileContextMenu === null) {
                this.fileContextMenu = this.conf.fileContextMenu || new FileContextMenu_1.FileContextMenu();
                var commands = this.componentsFactory.getAppFactory().getCommandsFactory().getFilesBrowserCommands();
                this.fileContextMenu.setFilesBrowserCommands(commands);
                var bus = this.componentsFactory.getAppFactory().getBusFactory().getFileInputBus();
                this.fileContextMenu.setFileBrowserBus(bus);
                document.querySelector('body').append(this.fileContextMenu.template);
                this.fileContextMenu.eventsListen();
            }
            return this.fileContextMenu;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/FileContextMenu.ts":
/*!************************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/FileContextMenu.ts ***!
  \************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.FileContextMenu = void 0;
    var FileContextMenu = /** @class */ (function () {
        function FileContextMenu() {
            this.html = "\n        <div class=\"fb-context-menu\">\n            <div class=\"fb-context-menu-item js-rename-button\">\n                \u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C\n            </div>\n            <div class=\"fb-context-menu-item js-delete-button\">\n                \u0423\u0434\u0430\u043B\u0438\u0442\u044C\n            </div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.renameButton = this._template.querySelector('.js-rename-button');
            this.deleteButton = this._template.querySelector('.js-delete-button');
        }
        FileContextMenu.prototype.setFilesBrowserCommands = function (commands) {
            this.fileBrowserCommands = commands;
        };
        FileContextMenu.prototype.setFileBrowserBus = function (bus) {
            this.fileBrowserBus = bus;
        };
        Object.defineProperty(FileContextMenu.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        FileContextMenu.prototype.eventsListen = function () {
            var _this = this;
            this.deleteButton.onclick = function (e) {
                if (confirm('Удалить ' + _this.data.name + '?')) {
                    _this.fileBrowserCommands.deleteFile(_this.data.path + '/' + _this.data.name)
                        .then(function (resp) {
                        if (resp.success) {
                            _this.fileBrowserBus.deletedFile(_this.data.path + '/' + _this.data.name);
                        }
                    });
                    _this.hide();
                }
            };
            this.renameButton.onclick = function (e) {
                var newName = '';
                _this.fileBrowserBus.execItemModal(_this.data.name)
                    .then(function (name) {
                    newName = name;
                    return _this.fileBrowserCommands.renameFile(_this.data.path + '/' + _this.data.name, _this.data.path + '/' + name);
                })
                    .then(function (resp) {
                    if (resp.success) {
                        _this.fileBrowserBus.renamedFile(_this.data.path + '/' + _this.data.name, newName);
                    }
                });
                _this.hide();
            };
        };
        FileContextMenu.prototype.show = function (x, y, data) {
            this.data = data;
            this._template.style.top = y.toString() + 'px';
            this._template.style.left = x.toString() + 'px';
            this._template.style.display = 'block';
        };
        FileContextMenu.prototype.hide = function () {
            this._template.style.display = 'none';
        };
        return FileContextMenu;
    }());
    exports.FileContextMenu = FileContextMenu;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/FileInput.ts":
/*!******************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/FileInput.ts ***!
  \******************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.FileInput = void 0;
    var FileInput = /** @class */ (function () {
        function FileInput() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <div class=\"input-group\">\n                <input type=\"text\" class=\"form-control js-input\">\n                <div class=\"input-group-append\">\n                    <a href=\"#\" class=\"input-group-text btn-info js-browser-btn\">\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                            <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                            <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                        </svg>\n                    </a>\n                </div>\n            </div>\n            <div class=\"invalid-feedback js-error-message\"></div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            this.browserBtn = this._template.querySelector('.js-browser-btn');
            this.errorMessage = this._template.querySelector('.js-error-message');
        }
        FileInput.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        FileInput.prototype.setBus = function (bus) {
            this.bus = bus;
        };
        Object.defineProperty(FileInput.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        FileInput.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.value = data.value;
        };
        FileInput.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
                this.errorMessage.style.display = 'block';
            }
        };
        FileInput.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
            this.errorMessage.style.display = 'none';
        };
        FileInput.prototype.serialize = function () {
            return this.data;
        };
        FileInput.prototype.eventsListen = function () {
            var _this = this;
            this.input.oninput = function (e) {
                var val = _this.input.value;
                _this.data.value = val;
            };
            this.browserBtn.onclick = function (e) {
                e.preventDefault();
                _this.bus.execBrowserModal()
                    .then(function (fileName) {
                    _this.data.value = fileName;
                    _this.input.value = fileName;
                });
            };
        };
        return FileInput;
    }());
    exports.FileInput = FileInput;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/ImageInput.ts":
/*!*******************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/ImageInput.ts ***!
  \*******************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.ImageInput = void 0;
    var ImageInput = /** @class */ (function () {
        function ImageInput() {
            this.html = "\n        <div class=\"object-field\">\n            <label class=\"form-label js-label\"></label>\n            <div class=\"input-group\">\n                <input type=\"text\" class=\"form-control js-input\">\n                <div class=\"input-group-append\">\n                    <a href=\"#\" class=\"input-group-text btn-info js-browser-btn\">\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                            <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                            <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                        </svg>\n                    </a>\n                </div>\n            </div>\n            <div class=\"invalid-feedback js-error-message\"></div>\n            <div class=\"prev-container\">\n                <canvas class=\"img-prev js-canvas\"></canvas>\n                <div class=\"preloader js-preloader\">\n                    <div class=\"lds-dual-ring\"></div>\n                </div>\n            </div>\n        </div>\n    ";
            var div = document.createElement('div');
            div.innerHTML = this.html.trim();
            this._template = div.firstChild;
            this.label = this._template.querySelector('.js-label');
            this.input = this._template.querySelector('.js-input');
            this.browserBtn = this._template.querySelector('.js-browser-btn');
            this.errorMessage = this._template.querySelector('.js-error-message');
            this.preloader = this._template.querySelector('.js-preloader');
            this.prevImg = this._template.querySelector('.js-canvas');
            this.canvasContext = this.prevImg.getContext('2d');
        }
        ImageInput.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        ImageInput.prototype.setBus = function (bus) {
            this.bus = bus;
        };
        Object.defineProperty(ImageInput.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        ImageInput.prototype.loadData = function (data) {
            this.data = data;
            this.label.innerText = data.description;
            this.input.value = data.value;
        };
        ImageInput.prototype.showErrors = function () {
            if (this.data.errors.length) {
                this.input.classList.add('is-invalid');
                this.errorMessage.innerText = this.data.errors[0];
                this.errorMessage.style.display = 'block';
            }
        };
        ImageInput.prototype.clearErrors = function () {
            this.input.classList.remove('is-invalid');
            this.errorMessage.innerText = '';
            this.errorMessage.style.display = 'none';
        };
        ImageInput.prototype.serialize = function () {
            return this.data;
        };
        ImageInput.prototype.eventsListen = function () {
            var _this = this;
            var w = this._template.clientWidth || 300;
            this.prevImg.setAttribute('width', w.toString());
            if (this.data.ar) {
                var h = w / this.data.ar;
                this.prevImg.setAttribute('height', h.toString());
            }
            else {
                this.prevImg.setAttribute('height', w.toString());
            }
            if (this.data.value) {
                this.previewImg(this.data.value);
            }
            this.input.oninput = function (e) {
                var val = _this.input.value;
                _this.data.value = val;
                _this.previewImg(val);
            };
            this.browserBtn.onclick = function (e) {
                e.preventDefault();
                _this.bus.execBrowserModal()
                    .then(function (fileName) {
                    _this.data.value = fileName;
                    _this.input.value = fileName;
                    _this.previewImg(fileName);
                });
            };
        };
        ImageInput.prototype.previewImg = function (fileName) {
            var _this = this;
            var canvasWidth = this.prevImg.getAttribute('width');
            var canvasHeight = this.prevImg.getAttribute('height');
            var img = new Image();
            this.preloader.style.display = 'none';
            img.onload = function () {
                _this.canvasContext.clearRect(0, 0, canvasWidth, canvasHeight);
                var imgH = img.height;
                var imgW = img.width;
                if (_this.data.ar == 0) {
                    _this.canvasContext.drawImage(img, 0, 0, imgW, imgH, 0, 0, canvasWidth, canvasHeight);
                    _this.preloader.style.display = 'none';
                    return;
                }
                var dx = 0;
                var dy = 0;
                if (imgW / imgH > _this.data.ar) {
                    // изображение вытянуто по ширине
                    var scale = imgH / +canvasHeight;
                    dx = (imgW - +canvasWidth * scale) / 2;
                }
                else {
                    // изображение вытянуто по высоте
                    var scale = imgW / +canvasWidth;
                    dy = (imgH - +canvasHeight * scale) / 2;
                }
                _this.canvasContext.drawImage(img, dx, dy, imgW - 2 * dx, imgH - 2 * dy, 0, 0, canvasWidth, canvasHeight);
                _this.preloader.style.display = 'none';
            };
            img.src = this.data.path + fileName;
        };
        return ImageInput;
    }());
    exports.ImageInput = ImageInput;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/file-input/Item.ts":
/*!*************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/file-input/Item.ts ***!
  \*************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../../types/TFilesBrowserIcon */ "../../../Common/assets/object-input/types/TFilesBrowserIcon.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, TFilesBrowserIcon_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Item = void 0;
    var Item = /** @class */ (function () {
        function Item() {
            this.dirHtml = "\n        <div class=\"fb-item\">\n            <div class=\"fb-item-icon\">\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"80\" fill=\"currentColor\" class=\"bi bi-folder\" viewBox=\"0 0 16 16\">\n                    <path d=\"M.54 3.87.5 3a2 2 0 0 1 2-2h3.672a2 2 0 0 1 1.414.586l.828.828A2 2 0 0 0 9.828 3h3.982a2 2 0 0 1 1.992 2.181l-.637 7A2 2 0 0 1 13.174 14H2.826a2 2 0 0 1-1.991-1.819l-.637-7a1.99 1.99 0 0 1 .342-1.31zM2.19 4a1 1 0 0 0-.996 1.09l.637 7a1 1 0 0 0 .995.91h10.348a1 1 0 0 0 .995-.91l.637-7A1 1 0 0 0 13.81 4H2.19zm4.69-1.707A1 1 0 0 0 6.172 2H2.5a1 1 0 0 0-1 .981l.006.139C1.72 3.042 1.95 3 2.19 3h5.396l-.707-.707z\"/>\n                </svg>\n            </div>\n            <div class=\"fb-item-name js-name\">\n            </div>\n            <div class=\"fb-item-date js-date\">\n            </div>\n        </div>\n    ";
            this.itemHtml = "\n        <div class=\"fb-item\">\n            <div class=\"fb-item-icon\">\n                <svg width=\"80\" height=\"80\" viewBox=\"0 0 16 16\" class=\"bi bi-card-text\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <path fill-rule=\"evenodd\" d=\"M14.5 3h-13a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5zm-13-1A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-13z\"/>\n                    <path fill-rule=\"evenodd\" d=\"M3 5.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zM3 8a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 8zm0 2.5a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5z\"/>\n                </svg>\n            </div>\n            <div class=\"fb-item-name js-name\">\n            </div>\n            <div class=\"fb-item-date js-date\">\n            </div>\n        </div>\n    ";
            this.itemImg = "\n        <div class=\"fb-item\">\n            <div class=\"fb-item-icon\">\n                <img src=\"\" class=\"js-img-prev\">\n            </div>\n            <div class=\"fb-item-name js-name\">\n            </div>\n            <div class=\"fb-item-date js-date\">\n            </div>\n        </div>\n    ";
        }
        Item.prototype.setFBCommands = function (commands) {
            this.commands = commands;
        };
        Item.prototype.setFBBus = function (bus) {
            this.bus = bus;
        };
        Item.prototype.setOnSelectedFile = function (callcack) {
            this.selectFile = callcack;
        };
        Object.defineProperty(Item.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        Item.prototype.load = function (data) {
            this.data = data;
            if (data.type == TFilesBrowserIcon_1.TFileType.dir) {
                var div = document.createElement('div');
                div.innerHTML = this.dirHtml.trim();
                this._template = div.firstChild;
            }
            if (data.type == TFilesBrowserIcon_1.TFileType.file) {
                var div = document.createElement('div');
                div.innerHTML = this.itemHtml.trim();
                this._template = div.firstChild;
            }
            if (data.type == TFilesBrowserIcon_1.TFileType.img) {
                var div = document.createElement('div');
                div.innerHTML = this.itemImg.trim();
                this._template = div.firstChild;
                this.imgPrev = this._template.querySelector('.js-img-prev');
                this.imgPrev.setAttribute('src', '/img-prev/' + data.path + '/80x80_' + data.name);
            }
            this.name = this._template.querySelector('.js-name');
            this.name.innerText = data.name;
            this.date = this._template.querySelector('.js-date');
            this.date.innerText = data.filemtime;
        };
        Item.prototype.rename = function (name) {
            this.data.name = name;
            this.name.innerText = name;
        };
        Item.prototype.getData = function () {
            return this.data;
        };
        Item.prototype.eventsListen = function () {
            var _this = this;
            this._template.onclick = function (e) {
                e.preventDefault();
                if (_this.data.type == TFilesBrowserIcon_1.TFileType.dir) {
                    _this.openDir();
                }
                else {
                    _this.selectFile(_this.data.path + '/' + _this.data.name);
                }
            };
            this._template.oncontextmenu = function (e) {
                e.preventDefault();
                _this.bus.execItemContextMenu(e.pageX, e.pageY, _this.data);
            };
        };
        Item.prototype.openDir = function () {
            var _this = this;
            this.commands.getDir(this.data.path + '/' + this.data.name)
                .then(function (resp) {
                _this.bus.updateFileBrowser(resp, _this.data.path + '/' + _this.data.name);
            });
        };
        return Item;
    }());
    exports.Item = Item;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/tree-select/DropdownItem.ts":
/*!**********************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/tree-select/DropdownItem.ts ***!
  \**********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.DropdownItem = void 0;
    var DropdownItem = /** @class */ (function () {
        function DropdownItem(container) {
            this.subitems = {};
            this.isCollapsed = true;
            this.container = container;
            var div = document.createElement('div');
            div.innerHTML = this.getHtml().trim();
            this._template = div.firstChild;
            this.expandBtn = this._template.querySelector('.js-expand-btn');
            this.title = this._template.querySelector('.js-title');
            this.subitemsContainer = this._template.querySelector('.js-subitems');
        }
        DropdownItem.prototype.getHtml = function () {
            return "\n            <li>\n                <div style=\"display: flex;\">\n                    <span class=\"js-expand-btn\" style=\"display: none;\">\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-plus\" viewBox=\"0 0 16 16\">\n                            <path d=\"M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z\"/>\n                        </svg>\n                    </span>\n                    <span class=\"js-title\"></span>\n                </div>\n                <ul class=\"tree-dropdown-ul js-subitems\" style=\"display:none;\">\n                </ul>\n            </li>\n        ";
        };
        DropdownItem.prototype.setSubitemCreator = function (callback) {
            this.subitemCreator = callback;
        };
        DropdownItem.prototype.setOnClick = function (callback) {
            this.onClick = callback;
        };
        Object.defineProperty(DropdownItem.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        DropdownItem.prototype.loadData = function (data) {
            this.data = data;
            this.title.innerText = data.title;
            this.subitemsContainer.innerHTML = '';
            this.subitems = {};
            if (data.childs && Object.keys(data.childs).length > 0) {
                this.expandBtn.style.display = 'initial';
            }
            for (var i in data.childs) {
                var item = this.subitemCreator(this.container);
                item.loadData(data.childs[i]);
                this.subitems[i] = item;
                this.subitemsContainer.appendChild(item.template);
            }
        };
        DropdownItem.prototype.getData = function () {
            return this.data;
        };
        DropdownItem.prototype.eventsListen = function () {
            var _this = this;
            this.expandBtn.onclick = function () {
                _this.toggleExpand();
            };
            this.title.onclick = function () {
                _this.onClick(_this);
            };
            for (var i in this.subitems) {
                this.subitems[i].eventsListen();
            }
        };
        DropdownItem.prototype.toggleExpand = function () {
            if (this.isCollapsed) {
                this.subitemsContainer.style.display = 'block';
            }
            else {
                this.subitemsContainer.style.display = 'none';
            }
            this.isCollapsed = !this.isCollapsed;
        };
        DropdownItem.prototype.getAlias = function (val) {
            if (this.data.value == val) {
                return this.data.alias;
            }
            for (var i in this.subitems) {
                var alias = this.subitems[i].getAlias(val);
                if (alias) {
                    return alias;
                }
            }
            return '';
        };
        return DropdownItem;
    }());
    exports.DropdownItem = DropdownItem;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/tree-select/EmbeddedTreeSelect.ts":
/*!****************************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/tree-select/EmbeddedTreeSelect.ts ***!
  \****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.EmbeddedTreeSelect = void 0;
    var EmbeddedTreeSelect = /** @class */ (function () {
        function EmbeddedTreeSelect() {
            this.value = '';
            this.alias = '';
            this.dropItems = {};
        }
        EmbeddedTreeSelect.prototype.getHtml = function () {
            return "\n            <div class=\"form-group dropdown\">\n                <label class=\"form-label js-label\"></label>\n                <div class=\"input-group\">\n                    <input type=\"text\" class=\"form-control js-input\" disabled>\n                    <div class=\"input-group-append\">\n                        <a href=\"#\" class=\"input-group-text btn-info js-dropdown-btn\">\n                            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                                <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                                <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                            </svg>\n                        </a>\n                    </div>\n                </div>\n                <div class=\"js-dropdown-menu tree-dropdown dropdown-menu\">\n                    <ul class=\"tree-dropdown-ul js-tree-dropdown-ul\">\n                        \n                    </ul>\n                </div>\n                <div class=\"invalid-feedback js-error-message\"></div>\n            </div>\n        ";
        };
        EmbeddedTreeSelect.prototype.setDropdownItemCreator = function (callback) {
            this.dropdownItemCreator = callback;
        };
        EmbeddedTreeSelect.prototype.init = function (input) {
            var div = document.createElement('div');
            div.innerHTML = this.getHtml().trim();
            this._template = div.firstChild;
            input.parentNode.replaceChild(this._template, input);
            this.dropdownBtn = this._template.querySelector('.js-dropdown-btn');
            this.dropdownMenu = this._template.querySelector('.js-dropdown-menu');
            this.dropdownMenuUl = this.dropdownMenu.querySelector('.js-tree-dropdown-ul');
            this.input = this._template.querySelector('.js-input');
            this.eventsListen();
        };
        EmbeddedTreeSelect.prototype.loadData = function (data) {
            this.dropItems = {};
            this.dropdownMenuUl.innerHTML = '';
            for (var i in data) {
                var item = this.dropdownItemCreator(this);
                item.loadData(data[i]);
                this.dropItems[i] = item;
                this.dropdownMenuUl.appendChild(item.template);
                item.eventsListen();
            }
        };
        EmbeddedTreeSelect.prototype.eventsListen = function () {
            var _this = this;
            this.dropdownBtn.onclick = function () {
                _this.dropdownMenu.classList.toggle('show');
            };
            for (var i in this.dropItems) {
                this.dropItems[i].eventsListen();
            }
        };
        EmbeddedTreeSelect.prototype.hideDropdown = function () {
            this.dropdownMenu.classList.remove('show');
        };
        EmbeddedTreeSelect.prototype.setValue = function (val) {
            this.value = val;
            this.alias = this.getAlias(val);
            this.input.value = this.alias;
        };
        EmbeddedTreeSelect.prototype.getAlias = function (val) {
            for (var i in this.dropItems) {
                var alias = this.dropItems[i].getAlias(val);
                if (alias) {
                    return alias;
                }
            }
            return '';
        };
        EmbeddedTreeSelect.prototype.setAlias = function (align) {
            this.input.value = align;
            this.alias = align;
        };
        EmbeddedTreeSelect.prototype.getValue = function () {
            return this.value;
        };
        return EmbeddedTreeSelect;
    }());
    exports.EmbeddedTreeSelect = EmbeddedTreeSelect;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/tree-select/Factory.ts":
/*!*****************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/tree-select/Factory.ts ***!
  \*****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../../../admin/Helpers */ "../../../Common/assets/admin/Helpers.ts"), __webpack_require__(/*! ../../components/tree-select/TreeSelect */ "../../../Common/assets/object-input/components/tree-select/TreeSelect.ts"), __webpack_require__(/*! ../../components/tree-select/DropdownItem */ "../../../Common/assets/object-input/components/tree-select/DropdownItem.ts"), __webpack_require__(/*! ../../components/tree-select/EmbeddedTreeSelect */ "../../../Common/assets/object-input/components/tree-select/EmbeddedTreeSelect.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Helpers_1, TreeSelect_1, DropdownItem_1, EmbeddedTreeSelect_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
        }
        Factory.prototype.setComponentsFactory = function (factory) {
            this.componentsFactory = factory;
        };
        Factory.prototype.init = function (conf) {
            this.conf = {
                treeSelect: null,
                dropdownItem: null,
                embeddedTreeSelect: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.createTreeSelect = function () {
            var select = this.conf.treeSelect || new TreeSelect_1.TreeSelect();
            select.setDropdownItemCreator(this.createDropdownItem.bind(this));
            return select;
        };
        Factory.prototype.createDropdownItem = function (treeSelect) {
            var item = this.conf.dropdownItem || new DropdownItem_1.DropdownItem(treeSelect);
            item.setSubitemCreator(this.createDropdownItem.bind(this));
            item.setOnClick(function (item) {
                if (item.getData().value) {
                    treeSelect.hideDropdown();
                    treeSelect.setValue(item.getData().value);
                    treeSelect.setAlias(item.getData().alias || item.getData().value);
                }
                else {
                    item.toggleExpand();
                }
            });
            return item;
        };
        Factory.prototype.createEmbeddedTreeSelect = function () {
            var select = this.conf.embeddedTreeSelect || new EmbeddedTreeSelect_1.EmbeddedTreeSelect();
            select.setDropdownItemCreator(this.createDropdownItem.bind(this));
            return select;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/components/tree-select/TreeSelect.ts":
/*!********************************************************************************!*\
  !*** ../../../Common/assets/object-input/components/tree-select/TreeSelect.ts ***!
  \********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.TreeSelect = void 0;
    var TreeSelect = /** @class */ (function () {
        function TreeSelect() {
            this.dropItems = {};
            var div = document.createElement('div');
            div.innerHTML = this.getHtml().trim();
            this._template = div.firstChild;
            this.input = this._template.querySelector('.js-input');
            this.dropdownBtn = this._template.querySelector('.js-dropdown-btn');
            this.dropdownMenu = this._template.querySelector('.js-dropdown-menu');
            this.dropdownMenuUl = this.dropdownMenu.querySelector('.js-tree-dropdown-ul');
        }
        TreeSelect.prototype.getHtml = function () {
            return "\n            <div class=\"object-field dropdown\">\n                <label class=\"form-label js-label\"></label>\n                <div class=\"input-group\">\n                    <input type=\"text\" class=\"form-control js-input\" disabled>\n                    <div class=\"input-group-append\">\n                        <a href=\"#\" class=\"input-group-text btn-info js-dropdown-btn\">\n                            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-file-earmark-arrow-down\" viewBox=\"0 0 16 16\">\n                                <path d=\"M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z\"/>\n                                <path d=\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"/>\n                            </svg>\n                        </a>\n                    </div>\n                </div>\n                <div class=\"js-dropdown-menu tree-dropdown dropdown-menu\">\n                    <ul class=\"tree-dropdown-ul js-tree-dropdown-ul\">\n                        \n                    </ul>\n                </div>\n                <div class=\"invalid-feedback js-error-message\"></div>\n            </div>\n        ";
        };
        Object.defineProperty(TreeSelect.prototype, "template", {
            get: function () {
                return this._template;
            },
            enumerable: false,
            configurable: true
        });
        TreeSelect.prototype.setDropdownItemCreator = function (callback) {
            this.dropdownItemCreator = callback;
        };
        TreeSelect.prototype.loadData = function (data) {
            this.data = data;
            this.dropdownMenuUl.innerHTML = '';
            for (var i in this.data.childs) {
                var dropItem = this.dropdownItemCreator(this);
                dropItem.loadData(this.data.childs[i]);
                this.dropItems[i] = dropItem;
                this.dropdownMenuUl.appendChild(dropItem.template);
            }
        };
        TreeSelect.prototype.showErrors = function () {
        };
        TreeSelect.prototype.clearErrors = function () {
        };
        TreeSelect.prototype.serialize = function () {
            return this.data;
        };
        TreeSelect.prototype.eventsListen = function () {
            var _this = this;
            this.dropdownBtn.onclick = function () {
                _this.dropdownMenu.classList.toggle('show');
            };
            for (var i in this.dropItems) {
                this.dropItems[i].eventsListen();
            }
        };
        TreeSelect.prototype.setFormKey = function (key) {
            this.formKey = key;
        };
        TreeSelect.prototype.hideDropdown = function () {
            this.dropdownMenu.classList.remove('show');
        };
        TreeSelect.prototype.setValue = function (val) {
            this.data.value = val;
        };
        TreeSelect.prototype.setAlias = function (align) {
            this.input.value = align;
            this.data.alias = align;
        };
        return TreeSelect;
    }());
    exports.TreeSelect = TreeSelect;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/types/EInputTypes.ts":
/*!****************************************************************!*\
  !*** ../../../Common/assets/object-input/types/EInputTypes.ts ***!
  \****************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.EInputTypes = void 0;
    var EInputTypes;
    (function (EInputTypes) {
        EInputTypes["text"] = "text";
        EInputTypes["html"] = "html";
        EInputTypes["string"] = "string";
        EInputTypes["array"] = "array";
        EInputTypes["file"] = "file";
        EInputTypes["image"] = "image";
        EInputTypes["treeSelect"] = "treeSelect";
        EInputTypes["color"] = "color";
        EInputTypes["bool"] = "bool";
        EInputTypes["select"] = "select";
        // composite = 'composite',
    })(EInputTypes || (exports.EInputTypes = EInputTypes = {}));
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "../../../Common/assets/object-input/types/TFilesBrowserIcon.ts":
/*!**********************************************************************!*\
  !*** ../../../Common/assets/object-input/types/TFilesBrowserIcon.ts ***!
  \**********************************************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.TFileType = void 0;
    var TFileType;
    (function (TFileType) {
        TFileType[TFileType["dir"] = 1] = "dir";
        TFileType[TFileType["file"] = 2] = "file";
        TFileType[TFileType["img"] = 3] = "img";
    })(TFileType || (exports.TFileType = TFileType = {}));
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./node_modules/axios/dist/browser/axios.cjs":
/*!***************************************************!*\
  !*** ./node_modules/axios/dist/browser/axios.cjs ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/*! Axios v1.10.0 Copyright (c) 2025 Matt Zabriskie and contributors */


function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// utils is a library of generic helper functions non-specific to axios

const {toString} = Object.prototype;
const {getPrototypeOf} = Object;
const {iterator, toStringTag} = Symbol;

const kindOf = (cache => thing => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(Object.create(null));

const kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type
};

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is an Array
 *
 * @param {Object} val The value to test
 *
 * @returns {boolean} True if value is an Array, otherwise false
 */
const {isArray} = Array;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

/**
 * Determine if a value is a Buffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Buffer, otherwise false
 */
function isBuffer(val) {
  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}

/**
 * Determine if a value is an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
 */
const isArrayBuffer = kindOfTest('ArrayBuffer');


/**
 * Determine if a value is a view on an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
 */
function isArrayBufferView(val) {
  let result;
  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
    result = ArrayBuffer.isView(val);
  } else {
    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
  }
  return result;
}

/**
 * Determine if a value is a String
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a String, otherwise false
 */
const isString = typeOfTest('string');

/**
 * Determine if a value is a Function
 *
 * @param {*} val The value to test
 * @returns {boolean} True if value is a Function, otherwise false
 */
const isFunction = typeOfTest('function');

/**
 * Determine if a value is a Number
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Number, otherwise false
 */
const isNumber = typeOfTest('number');

/**
 * Determine if a value is an Object
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an Object, otherwise false
 */
const isObject = (thing) => thing !== null && typeof thing === 'object';

/**
 * Determine if a value is a Boolean
 *
 * @param {*} thing The value to test
 * @returns {boolean} True if value is a Boolean, otherwise false
 */
const isBoolean = thing => thing === true || thing === false;

/**
 * Determine if a value is a plain Object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a plain Object, otherwise false
 */
const isPlainObject = (val) => {
  if (kindOf(val) !== 'object') {
    return false;
  }

  const prototype = getPrototypeOf(val);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);
};

/**
 * Determine if a value is a Date
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Date, otherwise false
 */
const isDate = kindOfTest('Date');

/**
 * Determine if a value is a File
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFile = kindOfTest('File');

/**
 * Determine if a value is a Blob
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Blob, otherwise false
 */
const isBlob = kindOfTest('Blob');

/**
 * Determine if a value is a FileList
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFileList = kindOfTest('FileList');

/**
 * Determine if a value is a Stream
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Stream, otherwise false
 */
const isStream = (val) => isObject(val) && isFunction(val.pipe);

/**
 * Determine if a value is a FormData
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an FormData, otherwise false
 */
const isFormData = (thing) => {
  let kind;
  return thing && (
    (typeof FormData === 'function' && thing instanceof FormData) || (
      isFunction(thing.append) && (
        (kind = kindOf(thing)) === 'formdata' ||
        // detect form-data instance
        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
      )
    )
  )
};

/**
 * Determine if a value is a URLSearchParams object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
 */
const isURLSearchParams = kindOfTest('URLSearchParams');

const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);

/**
 * Trim excess whitespace off the beginning and end of a string
 *
 * @param {String} str The String to trim
 *
 * @returns {String} The String freed of excess whitespace
 */
const trim = (str) => str.trim ?
  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');

/**
 * Iterate over an Array or an Object invoking a function for each item.
 *
 * If `obj` is an Array callback will be called passing
 * the value, index, and complete array for each item.
 *
 * If 'obj' is an Object callback will be called passing
 * the value, key, and complete object for each property.
 *
 * @param {Object|Array} obj The object to iterate
 * @param {Function} fn The callback to invoke for each item
 *
 * @param {Boolean} [allOwnKeys = false]
 * @returns {any}
 */
function forEach(obj, fn, {allOwnKeys = false} = {}) {
  // Don't bother if no value provided
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  let i;
  let l;

  // Force an array if not already something iterable
  if (typeof obj !== 'object') {
    /*eslint no-param-reassign:0*/
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    for (i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;

    for (i = 0; i < len; i++) {
      key = keys[i];
      fn.call(null, obj[key], key, obj);
    }
  }
}

function findKey(obj, key) {
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i = keys.length;
  let _key;
  while (i-- > 0) {
    _key = keys[i];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}

const _global = (() => {
  /*eslint no-undef:0*/
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : __webpack_require__.g)
})();

const isContextDefined = (context) => !isUndefined(context) && context !== _global;

/**
 * Accepts varargs expecting each argument to be an object, then
 * immutably merges the properties of each object and returns result.
 *
 * When multiple objects contain the same key the later object in
 * the arguments list will take precedence.
 *
 * Example:
 *
 * ```js
 * var result = merge({foo: 123}, {foo: 456});
 * console.log(result.foo); // outputs 456
 * ```
 *
 * @param {Object} obj1 Object to merge
 *
 * @returns {Object} Result of all merge properties
 */
function merge(/* obj1, obj2, obj3, ... */) {
  const {caseless} = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray(val)) {
      result[targetKey] = val.slice();
    } else {
      result[targetKey] = val;
    }
  };

  for (let i = 0, l = arguments.length; i < l; i++) {
    arguments[i] && forEach(arguments[i], assignValue);
  }
  return result;
}

/**
 * Extends object a by mutably adding to it the properties of object b.
 *
 * @param {Object} a The object to be extended
 * @param {Object} b The object to copy properties from
 * @param {Object} thisArg The object to bind function to
 *
 * @param {Boolean} [allOwnKeys]
 * @returns {Object} The resulting value of object a
 */
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
  forEach(b, (val, key) => {
    if (thisArg && isFunction(val)) {
      a[key] = bind(val, thisArg);
    } else {
      a[key] = val;
    }
  }, {allOwnKeys});
  return a;
};

/**
 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
 *
 * @param {string} content with BOM
 *
 * @returns {string} content value without BOM
 */
const stripBOM = (content) => {
  if (content.charCodeAt(0) === 0xFEFF) {
    content = content.slice(1);
  }
  return content;
};

/**
 * Inherit the prototype methods from one constructor into another
 * @param {function} constructor
 * @param {function} superConstructor
 * @param {object} [props]
 * @param {object} [descriptors]
 *
 * @returns {void}
 */
const inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};

/**
 * Resolve object with deep prototype chain to a flat object
 * @param {Object} sourceObj source object
 * @param {Object} [destObj]
 * @param {Function|Boolean} [filter]
 * @param {Function} [propFilter]
 *
 * @returns {Object}
 */
const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
  let props;
  let i;
  let prop;
  const merged = {};

  destObj = destObj || {};
  // eslint-disable-next-line no-eq-null,eqeqeq
  if (sourceObj == null) return destObj;

  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i = props.length;
    while (i-- > 0) {
      prop = props[i];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);

  return destObj;
};

/**
 * Determines whether a string ends with the characters of a specified string
 *
 * @param {String} str
 * @param {String} searchString
 * @param {Number} [position= 0]
 *
 * @returns {boolean}
 */
const endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};


/**
 * Returns new array from array like object or null if failed
 *
 * @param {*} [thing]
 *
 * @returns {?Array}
 */
const toArray = (thing) => {
  if (!thing) return null;
  if (isArray(thing)) return thing;
  let i = thing.length;
  if (!isNumber(i)) return null;
  const arr = new Array(i);
  while (i-- > 0) {
    arr[i] = thing[i];
  }
  return arr;
};

/**
 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
 * thing passed in is an instance of Uint8Array
 *
 * @param {TypedArray}
 *
 * @returns {Array}
 */
// eslint-disable-next-line func-names
const isTypedArray = (TypedArray => {
  // eslint-disable-next-line func-names
  return thing => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

/**
 * For each entry in the object, call the function with the key and value.
 *
 * @param {Object<any, any>} obj - The object to iterate over.
 * @param {Function} fn - The function to call for each entry.
 *
 * @returns {void}
 */
const forEachEntry = (obj, fn) => {
  const generator = obj && obj[iterator];

  const _iterator = generator.call(obj);

  let result;

  while ((result = _iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};

/**
 * It takes a regular expression and a string, and returns an array of all the matches
 *
 * @param {string} regExp - The regular expression to match against.
 * @param {string} str - The string to search.
 *
 * @returns {Array<boolean>}
 */
const matchAll = (regExp, str) => {
  let matches;
  const arr = [];

  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }

  return arr;
};

/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
const isHTMLForm = kindOfTest('HTMLFormElement');

const toCamelCase = str => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
    function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    }
  );
};

/* Creating a function that will check if an object has a property. */
const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);

/**
 * Determine if a value is a RegExp object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a RegExp object, otherwise false
 */
const isRegExp = kindOfTest('RegExp');

const reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};

  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });

  Object.defineProperties(obj, reducedDescriptors);
};

/**
 * Makes all methods read-only
 * @param {Object} obj
 */

const freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    // skip restricted props in strict mode
    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
      return false;
    }

    const value = obj[name];

    if (!isFunction(value)) return;

    descriptor.enumerable = false;

    if ('writable' in descriptor) {
      descriptor.writable = false;
      return;
    }

    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error('Can not rewrite read-only method \'' + name + '\'');
      };
    }
  });
};

const toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};

  const define = (arr) => {
    arr.forEach(value => {
      obj[value] = true;
    });
  };

  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));

  return obj;
};

const noop = () => {};

const toFiniteNumber = (value, defaultValue) => {
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};

/**
 * If the thing is a FormData object, return true, otherwise return false.
 *
 * @param {unknown} thing - The thing to check.
 *
 * @returns {boolean}
 */
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
}

const toJSONObject = (obj) => {
  const stack = new Array(10);

  const visit = (source, i) => {

    if (isObject(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }

      if(!('toJSON' in source)) {
        stack[i] = source;
        const target = isArray(source) ? [] : {};

        forEach(source, (value, key) => {
          const reducedValue = visit(value, i + 1);
          !isUndefined(reducedValue) && (target[key] = reducedValue);
        });

        stack[i] = undefined;

        return target;
      }
    }

    return source;
  };

  return visit(obj, 0);
};

const isAsyncFn = kindOfTest('AsyncFunction');

const isThenable = (thing) =>
  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);

// original code
// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34

const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
  if (setImmediateSupported) {
    return setImmediate;
  }

  return postMessageSupported ? ((token, callbacks) => {
    _global.addEventListener("message", ({source, data}) => {
      if (source === _global && data === token) {
        callbacks.length && callbacks.shift()();
      }
    }, false);

    return (cb) => {
      callbacks.push(cb);
      _global.postMessage(token, "*");
    }
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
})(
  typeof setImmediate === 'function',
  isFunction(_global.postMessage)
);

const asap = typeof queueMicrotask !== 'undefined' ?
  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);

// *********************


const isIterable = (thing) => thing != null && isFunction(thing[iterator]);


var utils$1 = {
  isArray,
  isArrayBuffer,
  isBuffer,
  isFormData,
  isArrayBufferView,
  isString,
  isNumber,
  isBoolean,
  isObject,
  isPlainObject,
  isReadableStream,
  isRequest,
  isResponse,
  isHeaders,
  isUndefined,
  isDate,
  isFile,
  isBlob,
  isRegExp,
  isFunction,
  isStream,
  isURLSearchParams,
  isTypedArray,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable,
  setImmediate: _setImmediate,
  asap,
  isIterable
};

/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */
function AxiosError(message, code, config, request, response) {
  Error.call(this);

  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor);
  } else {
    this.stack = (new Error()).stack;
  }

  this.message = message;
  this.name = 'AxiosError';
  code && (this.code = code);
  config && (this.config = config);
  request && (this.request = request);
  if (response) {
    this.response = response;
    this.status = response.status ? response.status : null;
  }
}

utils$1.inherits(AxiosError, Error, {
  toJSON: function toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils$1.toJSONObject(this.config),
      code: this.code,
      status: this.status
    };
  }
});

const prototype$1 = AxiosError.prototype;
const descriptors = {};

[
  'ERR_BAD_OPTION_VALUE',
  'ERR_BAD_OPTION',
  'ECONNABORTED',
  'ETIMEDOUT',
  'ERR_NETWORK',
  'ERR_FR_TOO_MANY_REDIRECTS',
  'ERR_DEPRECATED',
  'ERR_BAD_RESPONSE',
  'ERR_BAD_REQUEST',
  'ERR_CANCELED',
  'ERR_NOT_SUPPORT',
  'ERR_INVALID_URL'
// eslint-disable-next-line func-names
].forEach(code => {
  descriptors[code] = {value: code};
});

Object.defineProperties(AxiosError, descriptors);
Object.defineProperty(prototype$1, 'isAxiosError', {value: true});

// eslint-disable-next-line func-names
AxiosError.from = (error, code, config, request, response, customProps) => {
  const axiosError = Object.create(prototype$1);

  utils$1.toFlatObject(error, axiosError, function filter(obj) {
    return obj !== Error.prototype;
  }, prop => {
    return prop !== 'isAxiosError';
  });

  AxiosError.call(axiosError, error.message, code, config, request, response);

  axiosError.cause = error;

  axiosError.name = error.name;

  customProps && Object.assign(axiosError, customProps);

  return axiosError;
};

// eslint-disable-next-line strict
var httpAdapter = null;

/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */
function isVisitable(thing) {
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
}

/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */
function removeBrackets(key) {
  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
}

/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */
function renderKey(path, key, dots) {
  if (!path) return key;
  return path.concat(key).map(function each(token, i) {
    // eslint-disable-next-line no-param-reassign
    token = removeBrackets(token);
    return !dots && i ? '[' + token + ']' : token;
  }).join(dots ? '.' : '');
}

/**
 * If the array is an array and none of its elements are visitable, then it's a flat array.
 *
 * @param {Array<any>} arr - The array to check
 *
 * @returns {boolean}
 */
function isFlatArray(arr) {
  return utils$1.isArray(arr) && !arr.some(isVisitable);
}

const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});

/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **/

/**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */
function toFormData(obj, formData, options) {
  if (!utils$1.isObject(obj)) {
    throw new TypeError('target must be an object');
  }

  // eslint-disable-next-line no-param-reassign
  formData = formData || new (FormData)();

  // eslint-disable-next-line no-param-reassign
  options = utils$1.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    return !utils$1.isUndefined(source[option]);
  });

  const metaTokens = options.metaTokens;
  // eslint-disable-next-line no-use-before-define
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);

  if (!utils$1.isFunction(visitor)) {
    throw new TypeError('visitor must be a function');
  }

  function convertValue(value) {
    if (value === null) return '';

    if (utils$1.isDate(value)) {
      return value.toISOString();
    }

    if (utils$1.isBoolean(value)) {
      return value.toString();
    }

    if (!useBlob && utils$1.isBlob(value)) {
      throw new AxiosError('Blob is not supported. Use a Buffer instead.');
    }

    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
    }

    return value;
  }

  /**
   * Default visitor.
   *
   * @param {*} value
   * @param {String|Number} key
   * @param {Array<String|Number>} path
   * @this {FormData}
   *
   * @returns {boolean} return true to visit the each prop of the value recursively
   */
  function defaultVisitor(value, key, path) {
    let arr = value;

    if (value && !path && typeof value === 'object') {
      if (utils$1.endsWith(key, '{}')) {
        // eslint-disable-next-line no-param-reassign
        key = metaTokens ? key : key.slice(0, -2);
        // eslint-disable-next-line no-param-reassign
        value = JSON.stringify(value);
      } else if (
        (utils$1.isArray(value) && isFlatArray(value)) ||
        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
        )) {
        // eslint-disable-next-line no-param-reassign
        key = removeBrackets(key);

        arr.forEach(function each(el, index) {
          !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
            convertValue(el)
          );
        });
        return false;
      }
    }

    if (isVisitable(value)) {
      return true;
    }

    formData.append(renderKey(path, key, dots), convertValue(value));

    return false;
  }

  const stack = [];

  const exposedHelpers = Object.assign(predicates, {
    defaultVisitor,
    convertValue,
    isVisitable
  });

  function build(value, path) {
    if (utils$1.isUndefined(value)) return;

    if (stack.indexOf(value) !== -1) {
      throw Error('Circular reference detected in ' + path.join('.'));
    }

    stack.push(value);

    utils$1.forEach(value, function each(el, key) {
      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
      );

      if (result === true) {
        build(el, path ? path.concat(key) : [key]);
      }
    });

    stack.pop();
  }

  if (!utils$1.isObject(obj)) {
    throw new TypeError('data must be an object');
  }

  build(obj);

  return formData;
}

/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */
function encode$1(str) {
  const charMap = {
    '!': '%21',
    "'": '%27',
    '(': '%28',
    ')': '%29',
    '~': '%7E',
    '%20': '+',
    '%00': '\x00'
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}

/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */
function AxiosURLSearchParams(params, options) {
  this._pairs = [];

  params && toFormData(params, this, options);
}

const prototype = AxiosURLSearchParams.prototype;

prototype.append = function append(name, value) {
  this._pairs.push([name, value]);
};

prototype.toString = function toString(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode$1);
  } : encode$1;

  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + '=' + _encode(pair[1]);
  }, '').join('&');
};

/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */
function encode(val) {
  return encodeURIComponent(val).
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

/**
 * Build a URL by appending params to the end
 *
 * @param {string} url The base of the url (e.g., http://www.google.com)
 * @param {object} [params] The params to be appended
 * @param {?(object|Function)} options
 *
 * @returns {string} The formatted url
 */
function buildURL(url, params, options) {
  /*eslint no-param-reassign:0*/
  if (!params) {
    return url;
  }
  
  const _encode = options && options.encode || encode;

  if (utils$1.isFunction(options)) {
    options = {
      serialize: options
    };
  } 

  const serializeFn = options && options.serialize;

  let serializedParams;

  if (serializeFn) {
    serializedParams = serializeFn(params, options);
  } else {
    serializedParams = utils$1.isURLSearchParams(params) ?
      params.toString() :
      new AxiosURLSearchParams(params, options).toString(_encode);
  }

  if (serializedParams) {
    const hashmarkIndex = url.indexOf("#");

    if (hashmarkIndex !== -1) {
      url = url.slice(0, hashmarkIndex);
    }
    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
  }

  return url;
}

class InterceptorManager {
  constructor() {
    this.handlers = [];
  }

  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }

  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }

  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }

  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils$1.forEach(this.handlers, function forEachHandler(h) {
      if (h !== null) {
        fn(h);
      }
    });
  }
}

var InterceptorManager$1 = InterceptorManager;

var transitionalDefaults = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false
};

var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;

var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;

var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;

var platform$1 = {
  isBrowser: true,
  classes: {
    URLSearchParams: URLSearchParams$1,
    FormData: FormData$1,
    Blob: Blob$1
  },
  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
};

const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

const _navigator = typeof navigator === 'object' && navigator || undefined;

/**
 * Determine if we're running in a standard browser environment
 *
 * This allows axios to run in a web worker, and react-native.
 * Both environments support XMLHttpRequest, but not fully standard globals.
 *
 * web workers:
 *  typeof window -> undefined
 *  typeof document -> undefined
 *
 * react-native:
 *  navigator.product -> 'ReactNative'
 * nativescript
 *  navigator.product -> 'NativeScript' or 'NS'
 *
 * @returns {boolean}
 */
const hasStandardBrowserEnv = hasBrowserEnv &&
  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);

/**
 * Determine if we're running in a standard browser webWorker environment
 *
 * Although the `isStandardBrowserEnv` method indicates that
 * `allows axios to run in a web worker`, the WebWorker will still be
 * filtered out due to its judgment standard
 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 * This leads to a problem when axios post `FormData` in webWorker
 */
const hasStandardBrowserWebWorkerEnv = (() => {
  return (
    typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope &&
    typeof self.importScripts === 'function'
  );
})();

const origin = hasBrowserEnv && window.location.href || 'http://localhost';

var utils = /*#__PURE__*/Object.freeze({
  __proto__: null,
  hasBrowserEnv: hasBrowserEnv,
  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
  hasStandardBrowserEnv: hasStandardBrowserEnv,
  navigator: _navigator,
  origin: origin
});

var platform = {
  ...utils,
  ...platform$1
};

function toURLEncodedForm(data, options) {
  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
    visitor: function(value, key, path, helpers) {
      if (platform.isNode && utils$1.isBuffer(value)) {
        this.append(key, value.toString('base64'));
        return false;
      }

      return helpers.defaultVisitor.apply(this, arguments);
    }
  }, options));
}

/**
 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
 *
 * @param {string} name - The name of the property to get.
 *
 * @returns An array of strings.
 */
function parsePropPath(name) {
  // foo[x][y][z]
  // foo.x.y.z
  // foo-x-y-z
  // foo x y z
  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
    return match[0] === '[]' ? '' : match[1] || match[0];
  });
}

/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i;
  const len = keys.length;
  let key;
  for (i = 0; i < len; i++) {
    key = keys[i];
    obj[key] = arr[key];
  }
  return obj;
}

/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */
function formDataToJSON(formData) {
  function buildPath(path, value, target, index) {
    let name = path[index++];

    if (name === '__proto__') return true;

    const isNumericKey = Number.isFinite(+name);
    const isLast = index >= path.length;
    name = !name && utils$1.isArray(target) ? target.length : name;

    if (isLast) {
      if (utils$1.hasOwnProp(target, name)) {
        target[name] = [target[name], value];
      } else {
        target[name] = value;
      }

      return !isNumericKey;
    }

    if (!target[name] || !utils$1.isObject(target[name])) {
      target[name] = [];
    }

    const result = buildPath(path, value, target[name], index);

    if (result && utils$1.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }

    return !isNumericKey;
  }

  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
    const obj = {};

    utils$1.forEachEntry(formData, (name, value) => {
      buildPath(parsePropPath(name), value, obj, 0);
    });

    return obj;
  }

  return null;
}

/**
 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
 * of the input
 *
 * @param {any} rawValue - The value to be stringified.
 * @param {Function} parser - A function that parses a string into a JavaScript object.
 * @param {Function} encoder - A function that takes a value and returns a string.
 *
 * @returns {string} A stringified version of the rawValue.
 */
function stringifySafely(rawValue, parser, encoder) {
  if (utils$1.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils$1.trim(rawValue);
    } catch (e) {
      if (e.name !== 'SyntaxError') {
        throw e;
      }
    }
  }

  return (encoder || JSON.stringify)(rawValue);
}

const defaults = {

  transitional: transitionalDefaults,

  adapter: ['xhr', 'http', 'fetch'],

  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || '';
    const hasJSONContentType = contentType.indexOf('application/json') > -1;
    const isObjectPayload = utils$1.isObject(data);

    if (isObjectPayload && utils$1.isHTMLForm(data)) {
      data = new FormData(data);
    }

    const isFormData = utils$1.isFormData(data);

    if (isFormData) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
    }

    if (utils$1.isArrayBuffer(data) ||
      utils$1.isBuffer(data) ||
      utils$1.isStream(data) ||
      utils$1.isFile(data) ||
      utils$1.isBlob(data) ||
      utils$1.isReadableStream(data)
    ) {
      return data;
    }
    if (utils$1.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils$1.isURLSearchParams(data)) {
      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
      return data.toString();
    }

    let isFileList;

    if (isObjectPayload) {
      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }

      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
        const _FormData = this.env && this.env.FormData;

        return toFormData(
          isFileList ? {'files[]': data} : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }

    if (isObjectPayload || hasJSONContentType ) {
      headers.setContentType('application/json', false);
      return stringifySafely(data);
    }

    return data;
  }],

  transformResponse: [function transformResponse(data) {
    const transitional = this.transitional || defaults.transitional;
    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    const JSONRequested = this.responseType === 'json';

    if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
      return data;
    }

    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
      const silentJSONParsing = transitional && transitional.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;

      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e;
        }
      }
    }

    return data;
  }],

  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,

  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',

  maxContentLength: -1,
  maxBodyLength: -1,

  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },

  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },

  headers: {
    common: {
      'Accept': 'application/json, text/plain, */*',
      'Content-Type': undefined
    }
  }
};

utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
  defaults.headers[method] = {};
});

var defaults$1 = defaults;

// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
const ignoreDuplicateOf = utils$1.toObjectSet([
  'age', 'authorization', 'content-length', 'content-type', 'etag',
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
  'referer', 'retry-after', 'user-agent'
]);

/**
 * Parse headers into an object
 *
 * ```
 * Date: Wed, 27 Aug 2014 08:58:49 GMT
 * Content-Type: application/json
 * Connection: keep-alive
 * Transfer-Encoding: chunked
 * ```
 *
 * @param {String} rawHeaders Headers needing to be parsed
 *
 * @returns {Object} Headers parsed into an object
 */
var parseHeaders = rawHeaders => {
  const parsed = {};
  let key;
  let val;
  let i;

  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
    i = line.indexOf(':');
    key = line.substring(0, i).trim().toLowerCase();
    val = line.substring(i + 1).trim();

    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
      return;
    }

    if (key === 'set-cookie') {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
    }
  });

  return parsed;
};

const $internals = Symbol('internals');

function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}

function normalizeValue(value) {
  if (value === false || value == null) {
    return value;
  }

  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
}

function parseTokens(str) {
  const tokens = Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;

  while ((match = tokensRE.exec(str))) {
    tokens[match[1]] = match[2];
  }

  return tokens;
}

const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());

function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
  if (utils$1.isFunction(filter)) {
    return filter.call(this, value, header);
  }

  if (isHeaderNameFilter) {
    value = header;
  }

  if (!utils$1.isString(value)) return;

  if (utils$1.isString(filter)) {
    return value.indexOf(filter) !== -1;
  }

  if (utils$1.isRegExp(filter)) {
    return filter.test(value);
  }
}

function formatHeader(header) {
  return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}

function buildAccessors(obj, header) {
  const accessorName = utils$1.toCamelCase(' ' + header);

  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}

class AxiosHeaders {
  constructor(headers) {
    headers && this.set(headers);
  }

  set(header, valueOrRewrite, rewrite) {
    const self = this;

    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);

      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }

      const key = utils$1.findKey(self, lHeader);

      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }

    const setHeaders = (headers, _rewrite) =>
      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));

    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else if (utils$1.isObject(header) && utils$1.isIterable(header)) {
      let obj = {}, dest, key;
      for (const entry of header) {
        if (!utils$1.isArray(entry)) {
          throw TypeError('Object iterator must return a key-value pair');
        }

        obj[key = entry[0]] = (dest = obj[key]) ?
          (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];
      }

      setHeaders(obj, valueOrRewrite);
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }

    return this;
  }

  get(header, parser) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      if (key) {
        const value = this[key];

        if (!parser) {
          return value;
        }

        if (parser === true) {
          return parseTokens(value);
        }

        if (utils$1.isFunction(parser)) {
          return parser.call(this, value, key);
        }

        if (utils$1.isRegExp(parser)) {
          return parser.exec(value);
        }

        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }

  has(header, matcher) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }

    return false;
  }

  delete(header, matcher) {
    const self = this;
    let deleted = false;

    function deleteHeader(_header) {
      _header = normalizeHeader(_header);

      if (_header) {
        const key = utils$1.findKey(self, _header);

        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
          delete self[key];

          deleted = true;
        }
      }
    }

    if (utils$1.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }

    return deleted;
  }

  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }

  normalize(format) {
    const self = this;
    const headers = {};

    utils$1.forEach(this, (value, header) => {
      const key = utils$1.findKey(headers, header);

      if (key) {
        self[key] = normalizeValue(value);
        delete self[header];
        return;
      }

      const normalized = format ? formatHeader(header) : String(header).trim();

      if (normalized !== header) {
        delete self[header];
      }

      self[normalized] = normalizeValue(value);

      headers[normalized] = true;
    });

    return this;
  }

  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }

  toJSON(asStrings) {
    const obj = Object.create(null);

    utils$1.forEach(this, (value, header) => {
      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
    });

    return obj;
  }

  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }

  toString() {
    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
  }

  getSetCookie() {
    return this.get("set-cookie") || [];
  }

  get [Symbol.toStringTag]() {
    return 'AxiosHeaders';
  }

  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }

  static concat(first, ...targets) {
    const computed = new this(first);

    targets.forEach((target) => computed.set(target));

    return computed;
  }

  static accessor(header) {
    const internals = this[$internals] = (this[$internals] = {
      accessors: {}
    });

    const accessors = internals.accessors;
    const prototype = this.prototype;

    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);

      if (!accessors[lHeader]) {
        buildAccessors(prototype, _header);
        accessors[lHeader] = true;
      }
    }

    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);

    return this;
  }
}

AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

// reserved names hotfix
utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  }
});

utils$1.freezeMethods(AxiosHeaders);

var AxiosHeaders$1 = AxiosHeaders;

/**
 * Transform the data for a request or a response
 *
 * @param {Array|Function} fns A single function or Array of functions
 * @param {?Object} response The response object
 *
 * @returns {*} The resulting transformed data
 */
function transformData(fns, response) {
  const config = this || defaults$1;
  const context = response || config;
  const headers = AxiosHeaders$1.from(context.headers);
  let data = context.data;

  utils$1.forEach(fns, function transform(fn) {
    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
  });

  headers.normalize();

  return data;
}

function isCancel(value) {
  return !!(value && value.__CANCEL__);
}

/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */
function CanceledError(message, config, request) {
  // eslint-disable-next-line no-eq-null,eqeqeq
  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
  this.name = 'CanceledError';
}

utils$1.inherits(CanceledError, AxiosError, {
  __CANCEL__: true
});

/**
 * Resolve or reject a Promise based on response status.
 *
 * @param {Function} resolve A function that resolves the promise.
 * @param {Function} reject A function that rejects the promise.
 * @param {object} response The response.
 *
 * @returns {object} The response.
 */
function settle(resolve, reject, response) {
  const validateStatus = response.config.validateStatus;
  if (!response.status || !validateStatus || validateStatus(response.status)) {
    resolve(response);
  } else {
    reject(new AxiosError(
      'Request failed with status code ' + response.status,
      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

function parseProtocol(url) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
  return match && match[1] || '';
}

/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;

  min = min !== undefined ? min : 1000;

  return function push(chunkLength) {
    const now = Date.now();

    const startedAt = timestamps[tail];

    if (!firstSampleTS) {
      firstSampleTS = now;
    }

    bytes[head] = chunkLength;
    timestamps[head] = now;

    let i = tail;
    let bytesCount = 0;

    while (i !== head) {
      bytesCount += bytes[i++];
      i = i % samplesCount;
    }

    head = (head + 1) % samplesCount;

    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }

    if (now - firstSampleTS < min) {
      return;
    }

    const passed = startedAt && now - startedAt;

    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
  };
}

/**
 * Throttle decorator
 * @param {Function} fn
 * @param {Number} freq
 * @return {Function}
 */
function throttle(fn, freq) {
  let timestamp = 0;
  let threshold = 1000 / freq;
  let lastArgs;
  let timer;

  const invoke = (args, now = Date.now()) => {
    timestamp = now;
    lastArgs = null;
    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
    fn.apply(null, args);
  };

  const throttled = (...args) => {
    const now = Date.now();
    const passed = now - timestamp;
    if ( passed >= threshold) {
      invoke(args, now);
    } else {
      lastArgs = args;
      if (!timer) {
        timer = setTimeout(() => {
          timer = null;
          invoke(lastArgs);
        }, threshold - passed);
      }
    }
  };

  const flush = () => lastArgs && invoke(lastArgs);

  return [throttled, flush];
}

const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer(50, 250);

  return throttle(e => {
    const loaded = e.loaded;
    const total = e.lengthComputable ? e.total : undefined;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;

    bytesNotified = loaded;

    const data = {
      loaded,
      total,
      progress: total ? (loaded / total) : undefined,
      bytes: progressBytes,
      rate: rate ? rate : undefined,
      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
      event: e,
      lengthComputable: total != null,
      [isDownloadStream ? 'download' : 'upload']: true
    };

    listener(data);
  }, freq);
};

const progressEventDecorator = (total, throttled) => {
  const lengthComputable = total != null;

  return [(loaded) => throttled[0]({
    lengthComputable,
    total,
    loaded
  }), throttled[1]];
};

const asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));

var isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
  url = new URL(url, platform.origin);

  return (
    origin.protocol === url.protocol &&
    origin.host === url.host &&
    (isMSIE || origin.port === url.port)
  );
})(
  new URL(platform.origin),
  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
) : () => true;

var cookies = platform.hasStandardBrowserEnv ?

  // Standard browser envs support document.cookie
  {
    write(name, value, expires, path, domain, secure) {
      const cookie = [name + '=' + encodeURIComponent(value)];

      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

      utils$1.isString(path) && cookie.push('path=' + path);

      utils$1.isString(domain) && cookie.push('domain=' + domain);

      secure === true && cookie.push('secure');

      document.cookie = cookie.join('; ');
    },

    read(name) {
      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return (match ? decodeURIComponent(match[3]) : null);
    },

    remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  }

  :

  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {},
    read() {
      return null;
    },
    remove() {}
  };

/**
 * Determines whether the specified URL is absolute
 *
 * @param {string} url The URL to test
 *
 * @returns {boolean} True if the specified URL is absolute, otherwise false
 */
function isAbsoluteURL(url) {
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
  // by any combination of letters, digits, plus, period, or hyphen.
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
}

/**
 * Creates a new URL by combining the specified URLs
 *
 * @param {string} baseURL The base URL
 * @param {string} relativeURL The relative URL
 *
 * @returns {string} The combined URL
 */
function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
    : baseURL;
}

/**
 * Creates a new URL by combining the baseURL with the requestedURL,
 * only when the requestedURL is not already an absolute URL.
 * If the requestURL is absolute, this function returns the requestedURL untouched.
 *
 * @param {string} baseURL The base URL
 * @param {string} requestedURL Absolute or relative URL to combine
 *
 * @returns {string} The combined full path
 */
function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;

/**
 * Config-specific merge-function which creates a new config-object
 * by merging two configuration objects together.
 *
 * @param {Object} config1
 * @param {Object} config2
 *
 * @returns {Object} New object resulting from merging config2 to config1
 */
function mergeConfig(config1, config2) {
  // eslint-disable-next-line no-param-reassign
  config2 = config2 || {};
  const config = {};

  function getMergedValue(target, source, prop, caseless) {
    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
      return utils$1.merge.call({caseless}, target, source);
    } else if (utils$1.isPlainObject(source)) {
      return utils$1.merge({}, source);
    } else if (utils$1.isArray(source)) {
      return source.slice();
    }
    return source;
  }

  // eslint-disable-next-line consistent-return
  function mergeDeepProperties(a, b, prop , caseless) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(a, b, prop , caseless);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a, prop , caseless);
    }
  }

  // eslint-disable-next-line consistent-return
  function valueFromConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    }
  }

  // eslint-disable-next-line consistent-return
  function defaultToConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a);
    }
  }

  // eslint-disable-next-line consistent-return
  function mergeDirectKeys(a, b, prop) {
    if (prop in config2) {
      return getMergedValue(a, b);
    } else if (prop in config1) {
      return getMergedValue(undefined, a);
    }
  }

  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
  };

  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
    const merge = mergeMap[prop] || mergeDeepProperties;
    const configValue = merge(config1[prop], config2[prop], prop);
    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
  });

  return config;
}

var resolveConfig = (config) => {
  const newConfig = mergeConfig({}, config);

  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;

  newConfig.headers = headers = AxiosHeaders$1.from(headers);

  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);

  // HTTP basic authentication
  if (auth) {
    headers.set('Authorization', 'Basic ' +
      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
    );
  }

  let contentType;

  if (utils$1.isFormData(data)) {
    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(undefined); // Let the browser set it
    } else if ((contentType = headers.getContentType()) !== false) {
      // fix semicolon duplication issue for ReactNative FormData implementation
      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
    }
  }

  // Add xsrf header
  // This is only done if running in a standard browser environment.
  // Specifically not if we're in a web worker, or react-native.

  if (platform.hasStandardBrowserEnv) {
    withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));

    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
      // Add xsrf header
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);

      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }

  return newConfig;
};

const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';

var xhrAdapter = isXHRAdapterSupported && function (config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    const _config = resolveConfig(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
    let {responseType, onUploadProgress, onDownloadProgress} = _config;
    let onCanceled;
    let uploadThrottled, downloadThrottled;
    let flushUpload, flushDownload;

    function done() {
      flushUpload && flushUpload(); // flush events
      flushDownload && flushDownload(); // flush events

      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);

      _config.signal && _config.signal.removeEventListener('abort', onCanceled);
    }

    let request = new XMLHttpRequest();

    request.open(_config.method.toUpperCase(), _config.url, true);

    // Set the request timeout in MS
    request.timeout = _config.timeout;

    function onloadend() {
      if (!request) {
        return;
      }
      // Prepare the response
      const responseHeaders = AxiosHeaders$1.from(
        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
        request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };

      settle(function _resolve(value) {
        resolve(value);
        done();
      }, function _reject(err) {
        reject(err);
        done();
      }, response);

      // Clean up request
      request = null;
    }

    if ('onloadend' in request) {
      // Use onloadend if available
      request.onloadend = onloadend;
    } else {
      // Listen for ready state to emulate onloadend
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }

        // The request errored out and we didn't get a response, this will be
        // handled by onerror instead
        // With one exception: request that using file: protocol, most browsers
        // will return status as 0 even though it's a successful request
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
          return;
        }
        // readystate handler is calling before onerror or ontimeout handlers,
        // so we should call onloadend on the next 'tick'
        setTimeout(onloadend);
      };
    }

    // Handle browser request cancellation (as opposed to a manual cancellation)
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }

      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));

      // Clean up request
      request = null;
    };

    // Handle low level network errors
    request.onerror = function handleError() {
      // Real errors are hidden from us by the browser
      // onerror should only fire if it's a network error
      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));

      // Clean up request
      request = null;
    };

    // Handle timeout
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
      const transitional = _config.transitional || transitionalDefaults;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError(
        timeoutErrorMessage,
        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
        config,
        request));

      // Clean up request
      request = null;
    };

    // Remove Content-Type if data is undefined
    requestData === undefined && requestHeaders.setContentType(null);

    // Add headers to the request
    if ('setRequestHeader' in request) {
      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }

    // Add withCredentials to request if needed
    if (!utils$1.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }

    // Add responseType to request if needed
    if (responseType && responseType !== 'json') {
      request.responseType = _config.responseType;
    }

    // Handle progress if needed
    if (onDownloadProgress) {
      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));
      request.addEventListener('progress', downloadThrottled);
    }

    // Not all browsers support upload events
    if (onUploadProgress && request.upload) {
      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));

      request.upload.addEventListener('progress', uploadThrottled);

      request.upload.addEventListener('loadend', flushUpload);
    }

    if (_config.cancelToken || _config.signal) {
      // Handle cancellation
      // eslint-disable-next-line func-names
      onCanceled = cancel => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
        request.abort();
        request = null;
      };

      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
      }
    }

    const protocol = parseProtocol(_config.url);

    if (protocol && platform.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
      return;
    }


    // Send the request
    request.send(requestData || null);
  });
};

const composeSignals = (signals, timeout) => {
  const {length} = (signals = signals ? signals.filter(Boolean) : []);

  if (timeout || length) {
    let controller = new AbortController();

    let aborted;

    const onabort = function (reason) {
      if (!aborted) {
        aborted = true;
        unsubscribe();
        const err = reason instanceof Error ? reason : this.reason;
        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
      }
    };

    let timer = timeout && setTimeout(() => {
      timer = null;
      onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
    }, timeout);

    const unsubscribe = () => {
      if (signals) {
        timer && clearTimeout(timer);
        timer = null;
        signals.forEach(signal => {
          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);
        });
        signals = null;
      }
    };

    signals.forEach((signal) => signal.addEventListener('abort', onabort));

    const {signal} = controller;

    signal.unsubscribe = () => utils$1.asap(unsubscribe);

    return signal;
  }
};

var composeSignals$1 = composeSignals;

const streamChunk = function* (chunk, chunkSize) {
  let len = chunk.byteLength;

  if (!chunkSize || len < chunkSize) {
    yield chunk;
    return;
  }

  let pos = 0;
  let end;

  while (pos < len) {
    end = pos + chunkSize;
    yield chunk.slice(pos, end);
    pos = end;
  }
};

const readBytes = async function* (iterable, chunkSize) {
  for await (const chunk of readStream(iterable)) {
    yield* streamChunk(chunk, chunkSize);
  }
};

const readStream = async function* (stream) {
  if (stream[Symbol.asyncIterator]) {
    yield* stream;
    return;
  }

  const reader = stream.getReader();
  try {
    for (;;) {
      const {done, value} = await reader.read();
      if (done) {
        break;
      }
      yield value;
    }
  } finally {
    await reader.cancel();
  }
};

const trackStream = (stream, chunkSize, onProgress, onFinish) => {
  const iterator = readBytes(stream, chunkSize);

  let bytes = 0;
  let done;
  let _onFinish = (e) => {
    if (!done) {
      done = true;
      onFinish && onFinish(e);
    }
  };

  return new ReadableStream({
    async pull(controller) {
      try {
        const {done, value} = await iterator.next();

        if (done) {
         _onFinish();
          controller.close();
          return;
        }

        let len = value.byteLength;
        if (onProgress) {
          let loadedBytes = bytes += len;
          onProgress(loadedBytes);
        }
        controller.enqueue(new Uint8Array(value));
      } catch (err) {
        _onFinish(err);
        throw err;
      }
    },
    cancel(reason) {
      _onFinish(reason);
      return iterator.return();
    }
  }, {
    highWaterMark: 2
  })
};

const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';

// used only inside the fetch adapter
const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
    async (str) => new Uint8Array(await new Response(str).arrayBuffer())
);

const test = (fn, ...args) => {
  try {
    return !!fn(...args);
  } catch (e) {
    return false
  }
};

const supportsRequestStream = isReadableStreamSupported && test(() => {
  let duplexAccessed = false;

  const hasContentType = new Request(platform.origin, {
    body: new ReadableStream(),
    method: 'POST',
    get duplex() {
      duplexAccessed = true;
      return 'half';
    },
  }).headers.has('Content-Type');

  return duplexAccessed && !hasContentType;
});

const DEFAULT_CHUNK_SIZE = 64 * 1024;

const supportsResponseStream = isReadableStreamSupported &&
  test(() => utils$1.isReadableStream(new Response('').body));


const resolvers = {
  stream: supportsResponseStream && ((res) => res.body)
};

isFetchSupported && (((res) => {
  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
    !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
      (_, config) => {
        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
      });
  });
})(new Response));

const getBodyLength = async (body) => {
  if (body == null) {
    return 0;
  }

  if(utils$1.isBlob(body)) {
    return body.size;
  }

  if(utils$1.isSpecCompliantForm(body)) {
    const _request = new Request(platform.origin, {
      method: 'POST',
      body,
    });
    return (await _request.arrayBuffer()).byteLength;
  }

  if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
    return body.byteLength;
  }

  if(utils$1.isURLSearchParams(body)) {
    body = body + '';
  }

  if(utils$1.isString(body)) {
    return (await encodeText(body)).byteLength;
  }
};

const resolveBodyLength = async (headers, body) => {
  const length = utils$1.toFiniteNumber(headers.getContentLength());

  return length == null ? getBodyLength(body) : length;
};

var fetchAdapter = isFetchSupported && (async (config) => {
  let {
    url,
    method,
    data,
    signal,
    cancelToken,
    timeout,
    onDownloadProgress,
    onUploadProgress,
    responseType,
    headers,
    withCredentials = 'same-origin',
    fetchOptions
  } = resolveConfig(config);

  responseType = responseType ? (responseType + '').toLowerCase() : 'text';

  let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);

  let request;

  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
      composedSignal.unsubscribe();
  });

  let requestContentLength;

  try {
    if (
      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
      (requestContentLength = await resolveBodyLength(headers, data)) !== 0
    ) {
      let _request = new Request(url, {
        method: 'POST',
        body: data,
        duplex: "half"
      });

      let contentTypeHeader;

      if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
        headers.setContentType(contentTypeHeader);
      }

      if (_request.body) {
        const [onProgress, flush] = progressEventDecorator(
          requestContentLength,
          progressEventReducer(asyncDecorator(onUploadProgress))
        );

        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
      }
    }

    if (!utils$1.isString(withCredentials)) {
      withCredentials = withCredentials ? 'include' : 'omit';
    }

    // Cloudflare Workers throws when credentials are defined
    // see https://github.com/cloudflare/workerd/issues/902
    const isCredentialsSupported = "credentials" in Request.prototype;
    request = new Request(url, {
      ...fetchOptions,
      signal: composedSignal,
      method: method.toUpperCase(),
      headers: headers.normalize().toJSON(),
      body: data,
      duplex: "half",
      credentials: isCredentialsSupported ? withCredentials : undefined
    });

    let response = await fetch(request, fetchOptions);

    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');

    if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
      const options = {};

      ['status', 'statusText', 'headers'].forEach(prop => {
        options[prop] = response[prop];
      });

      const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));

      const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
        responseContentLength,
        progressEventReducer(asyncDecorator(onDownloadProgress), true)
      ) || [];

      response = new Response(
        trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
          flush && flush();
          unsubscribe && unsubscribe();
        }),
        options
      );
    }

    responseType = responseType || 'text';

    let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);

    !isStreamResponse && unsubscribe && unsubscribe();

    return await new Promise((resolve, reject) => {
      settle(resolve, reject, {
        data: responseData,
        headers: AxiosHeaders$1.from(response.headers),
        status: response.status,
        statusText: response.statusText,
        config,
        request
      });
    })
  } catch (err) {
    unsubscribe && unsubscribe();

    if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
      throw Object.assign(
        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
        {
          cause: err.cause || err
        }
      )
    }

    throw AxiosError.from(err, err && err.code, config, request);
  }
});

const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter,
  fetch: fetchAdapter
};

utils$1.forEach(knownAdapters, (fn, value) => {
  if (fn) {
    try {
      Object.defineProperty(fn, 'name', {value});
    } catch (e) {
      // eslint-disable-next-line no-empty
    }
    Object.defineProperty(fn, 'adapterName', {value});
  }
});

const renderReason = (reason) => `- ${reason}`;

const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;

var adapters = {
  getAdapter: (adapters) => {
    adapters = utils$1.isArray(adapters) ? adapters : [adapters];

    const {length} = adapters;
    let nameOrAdapter;
    let adapter;

    const rejectedReasons = {};

    for (let i = 0; i < length; i++) {
      nameOrAdapter = adapters[i];
      let id;

      adapter = nameOrAdapter;

      if (!isResolvedHandle(nameOrAdapter)) {
        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];

        if (adapter === undefined) {
          throw new AxiosError(`Unknown adapter '${id}'`);
        }
      }

      if (adapter) {
        break;
      }

      rejectedReasons[id || '#' + i] = adapter;
    }

    if (!adapter) {

      const reasons = Object.entries(rejectedReasons)
        .map(([id, state]) => `adapter ${id} ` +
          (state === false ? 'is not supported by the environment' : 'is not available in the build')
        );

      let s = length ?
        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
        'as no adapter specified';

      throw new AxiosError(
        `There is no suitable adapter to dispatch the request ` + s,
        'ERR_NOT_SUPPORT'
      );
    }

    return adapter;
  },
  adapters: knownAdapters
};

/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }

  if (config.signal && config.signal.aborted) {
    throw new CanceledError(null, config);
  }
}

/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 *
 * @returns {Promise} The Promise to be fulfilled
 */
function dispatchRequest(config) {
  throwIfCancellationRequested(config);

  config.headers = AxiosHeaders$1.from(config.headers);

  // Transform request data
  config.data = transformData.call(
    config,
    config.transformRequest
  );

  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
    config.headers.setContentType('application/x-www-form-urlencoded', false);
  }

  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);

  return adapter(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);

    // Transform response data
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );

    response.headers = AxiosHeaders$1.from(response.headers);

    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);

      // Transform response data
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
      }
    }

    return Promise.reject(reason);
  });
}

const VERSION = "1.10.0";

const validators$1 = {};

// eslint-disable-next-line func-names
['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
  validators$1[type] = function validator(thing) {
    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
  };
});

const deprecatedWarnings = {};

/**
 * Transitional option validator
 *
 * @param {function|boolean?} validator - set to false if the transitional option has been removed
 * @param {string?} version - deprecated version / removed since version
 * @param {string?} message - some message with additional info
 *
 * @returns {function}
 */
validators$1.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
  }

  // eslint-disable-next-line func-names
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError(
        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
        AxiosError.ERR_DEPRECATED
      );
    }

    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      // eslint-disable-next-line no-console
      console.warn(
        formatMessage(
          opt,
          ' has been deprecated since v' + version + ' and will be removed in the near future'
        )
      );
    }

    return validator ? validator(value, opt, opts) : true;
  };
};

validators$1.spelling = function spelling(correctSpelling) {
  return (value, opt) => {
    // eslint-disable-next-line no-console
    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
    return true;
  }
};

/**
 * Assert object's properties type
 *
 * @param {object} options
 * @param {object} schema
 * @param {boolean?} allowUnknown
 *
 * @returns {object}
 */

function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== 'object') {
    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i = keys.length;
  while (i-- > 0) {
    const opt = keys[i];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === undefined || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
    }
  }
}

var validator = {
  assertOptions,
  validators: validators$1
};

const validators = validator.validators;

/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */
class Axios {
  constructor(instanceConfig) {
    this.defaults = instanceConfig || {};
    this.interceptors = {
      request: new InterceptorManager$1(),
      response: new InterceptorManager$1()
    };
  }

  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err) {
      if (err instanceof Error) {
        let dummy = {};

        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());

        // slice off the Error: ... line
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
        try {
          if (!err.stack) {
            err.stack = stack;
            // match without the 2 top stack lines
          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
            err.stack += '\n' + stack;
          }
        } catch (e) {
          // ignore the case where "stack" is an un-writable property
        }
      }

      throw err;
    }
  }

  _request(configOrUrl, config) {
    /*eslint no-param-reassign:0*/
    // Allow for axios('example/url'[, config]) a la fetch API
    if (typeof configOrUrl === 'string') {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }

    config = mergeConfig(this.defaults, config);

    const {transitional, paramsSerializer, headers} = config;

    if (transitional !== undefined) {
      validator.assertOptions(transitional, {
        silentJSONParsing: validators.transitional(validators.boolean),
        forcedJSONParsing: validators.transitional(validators.boolean),
        clarifyTimeoutError: validators.transitional(validators.boolean)
      }, false);
    }

    if (paramsSerializer != null) {
      if (utils$1.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator.assertOptions(paramsSerializer, {
          encode: validators.function,
          serialize: validators.function
        }, true);
      }
    }

    // Set config.allowAbsoluteUrls
    if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {
      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
    } else {
      config.allowAbsoluteUrls = true;
    }

    validator.assertOptions(config, {
      baseUrl: validators.spelling('baseURL'),
      withXsrfToken: validators.spelling('withXSRFToken')
    }, true);

    // Set config.method
    config.method = (config.method || this.defaults.method || 'get').toLowerCase();

    // Flatten headers
    let contextHeaders = headers && utils$1.merge(
      headers.common,
      headers[config.method]
    );

    headers && utils$1.forEach(
      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
      (method) => {
        delete headers[method];
      }
    );

    config.headers = AxiosHeaders$1.concat(contextHeaders, headers);

    // filter out skipped interceptors
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
        return;
      }

      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;

      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
    });

    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });

    let promise;
    let i = 0;
    let len;

    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), undefined];
      chain.unshift.apply(chain, requestInterceptorChain);
      chain.push.apply(chain, responseInterceptorChain);
      len = chain.length;

      promise = Promise.resolve(config);

      while (i < len) {
        promise = promise.then(chain[i++], chain[i++]);
      }

      return promise;
    }

    len = requestInterceptorChain.length;

    let newConfig = config;

    i = 0;

    while (i < len) {
      const onFulfilled = requestInterceptorChain[i++];
      const onRejected = requestInterceptorChain[i++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }

    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }

    i = 0;
    len = responseInterceptorChain.length;

    while (i < len) {
      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
    }

    return promise;
  }

  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
}

// Provide aliases for supported request methods
utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
  /*eslint func-names:0*/
  Axios.prototype[method] = function(url, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url,
      data: (config || {}).data
    }));
  };
});

utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  /*eslint func-names:0*/

  function generateHTTPMethod(isForm) {
    return function httpMethod(url, data, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          'Content-Type': 'multipart/form-data'
        } : {},
        url,
        data
      }));
    };
  }

  Axios.prototype[method] = generateHTTPMethod();

  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
});

var Axios$1 = Axios;

/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */
class CancelToken {
  constructor(executor) {
    if (typeof executor !== 'function') {
      throw new TypeError('executor must be a function.');
    }

    let resolvePromise;

    this.promise = new Promise(function promiseExecutor(resolve) {
      resolvePromise = resolve;
    });

    const token = this;

    // eslint-disable-next-line func-names
    this.promise.then(cancel => {
      if (!token._listeners) return;

      let i = token._listeners.length;

      while (i-- > 0) {
        token._listeners[i](cancel);
      }
      token._listeners = null;
    });

    // eslint-disable-next-line func-names
    this.promise.then = onfulfilled => {
      let _resolve;
      // eslint-disable-next-line func-names
      const promise = new Promise(resolve => {
        token.subscribe(resolve);
        _resolve = resolve;
      }).then(onfulfilled);

      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };

      return promise;
    };

    executor(function cancel(message, config, request) {
      if (token.reason) {
        // Cancellation has already been requested
        return;
      }

      token.reason = new CanceledError(message, config, request);
      resolvePromise(token.reason);
    });
  }

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }

  /**
   * Subscribe to the cancel signal
   */

  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }

    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }

  /**
   * Unsubscribe from the cancel signal
   */

  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }

  toAbortSignal() {
    const controller = new AbortController();

    const abort = (err) => {
      controller.abort(err);
    };

    this.subscribe(abort);

    controller.signal.unsubscribe = () => this.unsubscribe(abort);

    return controller.signal;
  }

  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new CancelToken(function executor(c) {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }
}

var CancelToken$1 = CancelToken;

/**
 * Syntactic sugar for invoking a function and expanding an array for arguments.
 *
 * Common use case would be to use `Function.prototype.apply`.
 *
 *  ```js
 *  function f(x, y, z) {}
 *  var args = [1, 2, 3];
 *  f.apply(null, args);
 *  ```
 *
 * With `spread` this example can be re-written.
 *
 *  ```js
 *  spread(function(x, y, z) {})([1, 2, 3]);
 *  ```
 *
 * @param {Function} callback
 *
 * @returns {Function}
 */
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

/**
 * Determines whether the payload is an error thrown by Axios
 *
 * @param {*} payload The value to test
 *
 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
 */
function isAxiosError(payload) {
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
}

const HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
};

Object.entries(HttpStatusCode).forEach(([key, value]) => {
  HttpStatusCode[value] = key;
});

var HttpStatusCode$1 = HttpStatusCode;

/**
 * Create an instance of Axios
 *
 * @param {Object} defaultConfig The default config for the instance
 *
 * @returns {Axios} A new instance of Axios
 */
function createInstance(defaultConfig) {
  const context = new Axios$1(defaultConfig);
  const instance = bind(Axios$1.prototype.request, context);

  // Copy axios.prototype to instance
  utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils$1.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults$1);

// Expose Axios class to allow class inheritance
axios.Axios = Axios$1;

// Expose Cancel & CancelToken
axios.CanceledError = CanceledError;
axios.CancelToken = CancelToken$1;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData;

// Expose AxiosError class
axios.AxiosError = AxiosError;

// alias for CanceledError for backward compatibility
axios.Cancel = axios.CanceledError;

// Expose all/spread
axios.all = function all(promises) {
  return Promise.all(promises);
};

axios.spread = spread;

// Expose isAxiosError
axios.isAxiosError = isAxiosError;

// Expose mergeConfig
axios.mergeConfig = mergeConfig;

axios.AxiosHeaders = AxiosHeaders$1;

axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);

axios.getAdapter = adapters.getAdapter;

axios.HttpStatusCode = HttpStatusCode$1;

axios.default = axios;

module.exports = axios;
//# sourceMappingURL=axios.cjs.map


/***/ }),

/***/ "./src/item/Factory.ts":
/*!*****************************!*\
  !*** ./src/item/Factory.ts ***!
  \*****************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./components/Factory */ "./src/item/components/Factory.ts"), __webpack_require__(/*! ./commands/Factory */ "./src/item/commands/Factory.ts"), __webpack_require__(/*! @common/object-input/Factory */ "../../../Common/assets/object-input/Factory.ts"), __webpack_require__(/*! @common/admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Factory_1, Factory_2, Factory_3, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.componentsFactory = null;
            this.commandsFactory = null;
        }
        Factory.prototype.init = function (container, conf) {
            if (conf === void 0) { conf = {}; }
            this.conf = {
                objectInput: {
                    factory: null,
                },
                components: {
                    factory: null,
                },
                commands: {
                    factory: null,
                }
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
            this.objectInputFactory = this.conf.objectInput.factory || new Factory_3.Factory();
            this.objectInputFactory.init(this.conf.objectInput);
            this.getComponentsFactory().init(container, this.conf.components);
        };
        Factory.prototype.getObjectInputFactory = function () {
            return this.objectInputFactory;
        };
        Factory.prototype.getComponentsFactory = function () {
            if (this.componentsFactory === null) {
                this.componentsFactory = this.conf.components.factory || new Factory_1.Factory();
                this.componentsFactory.setAppFactory(this);
            }
            return this.componentsFactory;
        };
        Factory.prototype.getCommandsFactory = function () {
            if (this.commandsFactory === null) {
                this.commandsFactory = this.conf.commands.factory || new Factory_2.Factory();
                this.commandsFactory.setAppFactory(this);
                this.commandsFactory.init(this.conf.commands);
            }
            return this.commandsFactory;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./src/item/commands/AppCommands.ts":
/*!******************************************!*\
  !*** ./src/item/commands/AppCommands.ts ***!
  \******************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! axios */ "./node_modules/axios/dist/browser/axios.cjs")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, axios_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.AppCommands = void 0;
    var AppCommands = /** @class */ (function () {
        function AppCommands() {
        }
        AppCommands.prototype.editObject = function (key, formData) {
            var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            return axios_1.default.post(settings.editObjUrl, {
                _token: token,
                id: settings.item.id,
                key: key,
                object: formData,
            })
                .then(function (resp) {
                return Promise.resolve(resp.data);
            })
                .catch(function (error) {
                return Promise.reject(error.response.data);
            });
        };
        return AppCommands;
    }());
    exports.AppCommands = AppCommands;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./src/item/commands/Factory.ts":
/*!**************************************!*\
  !*** ./src/item/commands/Factory.ts ***!
  \**************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./AppCommands */ "./src/item/commands/AppCommands.ts"), __webpack_require__(/*! @common/admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, AppCommands_1, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.appCommands = null;
        }
        Factory.prototype.init = function (conf) {
            this.conf = {
                appCommands: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
        };
        Factory.prototype.setAppFactory = function (factory) {
            this.appFactory = factory;
        };
        Factory.prototype.getAppCommands = function () {
            if (this.appCommands === null) {
                this.appCommands = this.conf.appCommands || new AppCommands_1.AppCommands();
            }
            return this.appCommands;
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./src/item/components/AppContainer.ts":
/*!*********************************************!*\
  !*** ./src/item/components/AppContainer.ts ***!
  \*********************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.AppContainer = void 0;
    var AppContainer = /** @class */ (function () {
        function AppContainer() {
        }
        AppContainer.prototype.setCompositeCreator = function (callback) {
            this.compositeCreator = callback;
        };
        AppContainer.prototype.setAppCommands = function (commands) {
            this.appCommands = commands;
        };
        AppContainer.prototype.setObjectBus = function (bus) {
            this.objectBus = bus;
        };
        AppContainer.prototype.setObjectForm = function (form) {
            this.objectForm = form;
        };
        AppContainer.prototype.init = function (container) {
            this.container = container;
            this.keyInput = this.container.querySelector('.js-key-input');
            this.keyError = this.container.querySelector('.js-key-error-message');
            var objectForm = this.container.querySelector('.js-object-form-container');
            this.objectForm.init(objectForm);
            this.submitButton = this.container.querySelector('.js-submit-button');
            this.keyInput.value = settings.item.key;
            this.eventsListen();
        };
        AppContainer.prototype.eventsListen = function () {
            var _this = this;
            this.submitButton.onclick = function (e) {
                e.preventDefault();
                var key = _this.keyInput.value;
                var data = _this.objectForm.getJSON();
                _this.appCommands.editObject(key, data)
                    .then(function (resp) {
                    if (resp.success) {
                        window.location.href = settings.successUrl;
                    }
                })
                    .catch(function (resp) {
                    _this.showErrors(resp.errors);
                    _this.objectForm.setData(resp.item.object);
                    _this.objectForm.rerender();
                });
            };
        };
        ;
        AppContainer.prototype.showErrors = function (errors) {
            if (errors['key']) {
                this.keyError.innerText = errors['key'][0];
                this.keyError.classList.add('is-invalid');
            }
        };
        AppContainer.prototype.renderObjForm = function (data) {
            this.objectForm.render(data);
        };
        return AppContainer;
    }());
    exports.AppContainer = AppContainer;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./src/item/components/Factory.ts":
/*!****************************************!*\
  !*** ./src/item/components/Factory.ts ***!
  \****************************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ./AppContainer */ "./src/item/components/AppContainer.ts"), __webpack_require__(/*! @common/admin/Helpers */ "../../../Common/assets/admin/Helpers.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, AppContainer_1, Helpers_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    exports.Factory = void 0;
    var Factory = /** @class */ (function () {
        function Factory() {
            this.appContainer = null;
            this.objectForms = {};
        }
        Factory.prototype.setAppFactory = function (factory) {
            this.appFactory = factory;
        };
        Factory.prototype.getAppContainer = function () {
            return this.appContainer;
        };
        Factory.prototype.init = function (container, conf) {
            var _this = this;
            this.conf = {
                appContainer: null,
            };
            Helpers_1.Helpers.objectReplaceRecursive(this.conf, conf);
            this.appContainer = this.conf.appContainer || new AppContainer_1.AppContainer();
            this.appContainer.setCompositeCreator(function () {
                return _this.appFactory.getObjectInputFactory().getComponentsFactory().createComposite();
            });
            var appCommands = this.appFactory.getCommandsFactory().getAppCommands();
            this.appContainer.setAppCommands(appCommands);
            var objectBus = this.appFactory.getObjectInputFactory().getBusFactory().getObjectBus();
            this.appContainer.setObjectBus(objectBus);
            var objForm = this.appFactory.getObjectInputFactory().getComponentsFactory().getObjectForm('obj-form-key');
            this.appContainer.setObjectForm(objForm);
            this.appContainer.init(container);
        };
        Factory.prototype.getObjectForm = function (key) {
            return this.appFactory.getObjectInputFactory().getComponentsFactory().getObjectForm(key);
        };
        return Factory;
    }());
    exports.Factory = Factory;
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ }),

/***/ "./src/item/main.ts":
/*!**************************!*\
  !*** ./src/item/main.ts ***!
  \**************************/
/***/ ((module, exports, __webpack_require__) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! @common/admin/Factory */ "../../../Common/assets/admin/Factory.ts"), __webpack_require__(/*! ./Factory */ "./src/item/Factory.ts")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Factory_1, Factory_2) {
    "use strict";
    Object.defineProperty(exports, "__esModule", ({ value: true }));
    document.addEventListener('DOMContentLoaded', function () {
        var adminPanelFactory = new Factory_1.Factory();
        adminPanelFactory.initAdminPanel();
        var factory = new Factory_2.Factory();
        var appContainer = document.querySelector('.js-app-container');
        factory.init(appContainer);
        factory.getComponentsFactory().getAppContainer().renderObjForm(settings.item.object);
        // factory.getComponentsFactory().getObjectForm('obj-form-key').render(settings.item.object);
    });
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module used 'module' so it can't be inlined
/******/ 	var __webpack_exports__ = __webpack_require__("./src/item/main.ts");
/******/ 	
/******/ })()
;
//# sourceMappingURL=json-objects-item.js.map