var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (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 (_) 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 };
    }
};
import { r as registerInstance, h, g as getElement } from './chunk-82a2445c.js';
import './chunk-d7ac2f15.js';
import { U as Util, D as DomUtil } from './chunk-18ca1c85.js';
var Modal = /** @class */ (function () {
    function Modal(hostRef) {
        registerInstance(this, hostRef);
        this.fadeDuration = 150;
        this.html = '';
        this.width = '80%';
        this.centerVertical = true;
        this.centerContent = false;
        this.allowClose = 'true';
        this.id = Util.getUUID();
    }
    Modal.prototype.show = function (html) {
        return __awaiter(this, void 0, void 0, function () {
            return __generator(this, function (_a) {
                this.host.querySelectorAll('.modal-check')[0]['checked'] = true;
                if (html)
                    this.html = html;
                this.postRender();
                // this.modalWrapper.style.opacity = '0';
                // this.host.style.opacity = '0';
                setTimeout(function () {
                    // fixme:
                    // DomUtil.fadeIn(this.modalWrapper, this.fadeDuration,0,'block' );
                    // DomUtil.fadeIn(this.host, this.fadeDuration,0,'block' );
                }, 210);
                return [2 /*return*/];
            });
        });
    };
    Modal.prototype.hide = function () {
        return __awaiter(this, void 0, void 0, function () {
            return __generator(this, function (_a) {
                this.host.querySelectorAll('.modal-check')[0]['checked'] = false;
                return [2 /*return*/];
            });
        });
    };
    Modal.prototype.modalContentChangeHandler = function () {
        this.html = this.modalContent;
    };
    Modal.prototype.componentWillLoad = function () {
        if (this.modalContent)
            this.html = this.modalContent;
    };
    Modal.prototype.componentDidLoad = function () {
        this.postRender();
    };
    Modal.prototype.componentDidUpdate = function () {
        this.postRender();
    };
    Modal.prototype.postRender = function () {
        var _this = this;
        this.modalWrapper = this.host.querySelector('.modal-wrapper');
        this.modalHeader = this.host.querySelector('.modal-header');
        this.modal = this.host.querySelector('.modal');
        this.modalBackground = this.host.querySelector('.modal-background');
        this.content = this.host.querySelector('.modal-content-render');
        if (this.html) {
            this.host.getElementsByClassName('html-render')[0].innerHTML = this.html;
        }
        // this.modal.style.display = 'none';
        // this.modalBackground.style.display = 'none';
        // DomUtil.fadeOut(this.modalBackground, 0);
        // DomUtil.fadeOut(this.modal, 0);
        // DomUtil.fadeIn(this.modalBackground, 150 );
        // DomUtil.fadeIn(this.modal, 150 );
        setTimeout(function () {
            // DomUtil.fadeIn(this.modalBackground, 150 );
            // DomUtil.fadeIn(this.modal, 150 );
            var headerH = _this.modalHeader['offsetHeight'];
            if (_this.modal['offsetHeight'] > (_this.content['offsetHeight'] + headerH)) {
                var correction = _this.modal['offsetHeight'] - (_this.content['offsetHeight'] + headerH);
                _this.modal['style'].height = (_this.modal['offsetHeight'] - correction) + 'px';
            }
            _this.modal['style'].width = _this.width;
            if (_this.height) {
                _this.modal['style'].height = _this.height;
            }
            if (_this.centerContent) {
                DomUtil.addClass(_this.content, 'modal-content-centered');
                DomUtil.addClass(_this.modalHeader, 'modal-header-centered');
            }
            if (!_this.centerVertical) {
                DomUtil.addClass(_this.modal, 'modal-align-top');
            }
            if (!_this.modalTitle) {
                DomUtil.addClass(_this.modalHeader, 'modal-header-no-title');
            }
            if (_this.allowClose == 'false') {
                _this.host.querySelectorAll('.modal-background')[0].setAttribute('for', '');
            }
            else {
                _this.host.querySelectorAll('.modal-background')[0].setAttribute('for', 'modal-' + _this.id);
            }
        }, 100);
    };
    Modal.prototype.render = function () {
        return (h("div", { class: 'modal-wrapper' }, h("input", { type: "checkbox", id: 'modal-' + this.id, class: 'modal-check' }), h("label", { htmlFor: 'modal-' + this.id, class: "modal-background" }), h("div", { class: "modal" }, h("div", { class: "modal-header" }, this.modalTitle &&
            h("div", { class: "modal-title" }, this.modalTitle), this.allowClose == 'true' &&
            h("label", { htmlFor: 'modal-' + this.id }, h("img", { src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAdVBMVEUAAABNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU0N3NIOAAAAJnRSTlMAAQIDBAUGBwgRFRYZGiEjQ3l7hYaqtLm8vsDFx87a4uvv8fP1+bbY9ZEAAAB8SURBVBhXXY5LFoJAAMOCIP4VBRXEv5j7H9HFDOizu2TRFljedgCQHeocWHVaAWStXnKyl2oVWI+kd1XLvFV1D7Ng3qrWKYMZ+MdEhk3gbhw59KvlH0eTnf2mgiRwvQ7NW6aqNmncukKhnvo/zzlQ2PR/HgsAJkncH6XwAcr0FUY5BVeFAAAAAElFTkSuQmCC", width: "16", height: "16", alt: "" }))), h("div", { class: "modal-content-render" }, this.html !== '' ? (h("span", { class: 'html-render' })) : (h("slot", null))))));
    };
    Object.defineProperty(Modal.prototype, "host", {
        get: function () { return getElement(this); },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Modal, "watchers", {
        get: function () {
            return {
                "modalContent": ["modalContentChangeHandler"]
            };
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Modal, "style", {
        get: function () { return ":root{--ema-color:#343a40;--ema-primary:#007bff;--ema-secondary:#6c757d;--ema-success:#28a745;--ema-info:#17a2b8;--ema-warning:#ffc107;--ema-danger:#dc3545;--ema-light:#f8f9fa;--ema-dark:#343a40;--ema-background:#fff;--ema-background-diap:rgba(29,29,29,0.97);--ema-border-color:#c5c9cd;--ema-border:1px solid #c5c9cd;--ema-border-radius:3px 3px 3px 3px;--ema-box-shadow:1px 1px 10px 1px #ccc;--ema-margin:0.25rem;--ema-margin-sm:0.5rem;--ema-margin-md:1rem;--ema-margin-lg:1.5rem;--ema-margin-xl:2rem;--ema-padding:0.25rem;--ema-padding-sm:0.5rem;--ema-padding-md:1rem;--ema-padding-lg:1.5rem;--ema-padding-xl:2rem;--ema-gray-100:#f8f9fa;--ema-gray-200:#e9ecef;--ema-gray-300:#dee2e6;--ema-gray-400:#ced4da;--ema-gray-500:#adb5bd;--ema-gray-600:#868e96;--ema-gray-700:#495057;--ema-gray-800:#343a40;--ema-gray-900:#212529}ema-modal input[type=checkbox]{display:none}ema-modal input[type=checkbox]:checked~.modal,ema-modal input[type=checkbox]:checked~.modal-background{display:block;opacity:1}ema-modal .modal-wrapper{z-index:9996;display:block}ema-modal .modal-background{width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:9998}ema-modal .modal,ema-modal .modal-background{opacity:0;position:fixed;top:0;left:0;display:none;-webkit-transition:opacity .2s;transition:opacity .2s}ema-modal .modal{border-radius:var(--ema-border-radius,3px);background:var(--ema-background,#fff);right:0;bottom:0;margin:auto;min-height:180px;min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:9999;overflow-y:auto}ema-modal .modal-align-top{margin:var(--ema-paddig,15px) auto}ema-modal .modal-header{background-color:var(--ema-background,#fff);border-bottom:var(--ema-border,1px solid #c5c9cd);-webkit-box-sizing:border-box;box-sizing:border-box;padding:var(--ema-padding-md,1rem)}ema-modal .modal-header .modal-title{margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;font-weight:700}ema-modal .modal-header label{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:var(--ema-padding-md,1rem);right:var(--ema-padding-md,1rem);line-height:50px;padding:0 var(--ema-padding-md,1rem) 0 var(--ema-padding-md,1rem);margin-top:-1rem;margin-right:-.8rem;cursor:pointer;z-index:1}ema-modal .modal-header label:hover img{opacity:.6}ema-modal .modal-header.modal-header-centered{text-align:center}ema-modal .modal-header.modal-header-centered .modal-title{text-align:center;padding-top:var(--ema-padding-xl,2rem);margin:0 auto}ema-modal .modal-header.modal-header-centered label{right:50%;margin-left:-8px}ema-modal .modal-header.modal-header-no-title{border-bottom:none}ema-modal .modal-header.modal-header-no-title label{top:var(--ema-padding-sm,.5rem)}ema-modal .modal-content-render{padding:var(--ema-padding-md,1rem)}ema-modal .modal-content-render.modal-content-centered{text-align:center;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}"; },
        enumerable: true,
        configurable: true
    });
    return Modal;
}());
export { Modal as ema_modal };
