var __extends = (this && this.__extends) || (function () {
    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 (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(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 __assign.apply(this, arguments);
};
(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define(["require", "exports", "@web-atoms/core/src/web/images/close-button-hover.svg", "../styles/AtomStyle"], factory);
    }
})(function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.AtomWindowStyle = void 0;
    var close_button_hover_svg_1 = require("@web-atoms/core/src/web/images/close-button-hover.svg");
    var AtomStyle_1 = require("../styles/AtomStyle");
    /**
     * Represents Window Style, in order to add more subclasses
     * you can override content style
     */
    var AtomWindowStyle = /** @class */ (function (_super) {
        __extends(AtomWindowStyle, _super);
        function AtomWindowStyle() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        Object.defineProperty(AtomWindowStyle.prototype, "root", {
            get: function () {
                return __assign(__assign({}, this.frameHost), { subclasses: {
                        " .close-button": this.closeButton,
                        " .command-bar-presenter": this.commandBarPresenter,
                        " .command-bar": this.commandBar,
                        " .content-presenter": this.contentPresenter,
                        " .content": this.content,
                        " .frame": this.frame,
                        " .title": this.title,
                        " .title-host": this.titleHost,
                        " .title-presenter": this.titlePresenter,
                    } });
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "frameHost", {
            get: function () {
                return {
                    position: "absolute",
                    left: 0,
                    right: 0,
                    top: 0,
                    bottom: 0,
                    backgroundColor: "#50505080"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "frame", {
            get: function () {
                return {
                    position: "absolute",
                    minHeight: "100px",
                    minWidth: "300px",
                    margin: "auto",
                    border: "solid 1px #808080",
                    borderRadius: "5px",
                    backgroundColor: "white"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "titlePresenter", {
            get: function () {
                return {
                    position: "relative",
                    left: 0,
                    right: 0,
                    top: 0,
                    height: "37px"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "titleHost", {
            get: function () {
                return {
                    position: "absolute",
                    left: 0,
                    right: 0,
                    padding: "7px",
                    minHeight: "32px",
                    backgroundColor: "#404040",
                    color: "white",
                    top: 0,
                    borderTopRightRadius: "4px",
                    borderTopLeftRadius: "4px"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "title", {
            get: function () {
                return {
                    margin: "auto"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "closeButton", {
            get: function () {
                return {
                    position: "absolute",
                    right: "6px",
                    top: "7px",
                    width: "0",
                    height: "0",
                    padding: "9px",
                    border: "none",
                    backgroundColor: "transparent",
                    backgroundImage: close_button_hover_svg_1.default
                    // As suggested by srikanth sir
                    //  subclasses: {
                    //      ":hover": {
                    //          backgroundImage: closeButtonHover
                    //      }
                    // }
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "content", {
            get: function () {
                return {};
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "contentPresenter", {
            get: function () {
                return {
                    position: "relative",
                    padding: "10px",
                    background: "white"
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "commandBarPresenter", {
            get: function () {
                return {
                    left: 0,
                    right: 0,
                    bottom: 0,
                    padding: "5px",
                    backgroundColor: "#d4d4d4",
                    textAlign: "right",
                    borderBottomRightRadius: "4px",
                    borderBottomLeftRadius: "4px",
                };
            },
            enumerable: false,
            configurable: true
        });
        Object.defineProperty(AtomWindowStyle.prototype, "commandBar", {
            get: function () {
                return {
                    subclasses: {
                        " button": {
                            borderRadius: "3px",
                            marginLeft: "5px",
                            marginRight: "5px",
                            padding: "4px 16px",
                            backgroundColor: "whitesmoke",
                            border: "1px solid gray"
                        }
                    },
                };
            },
            enumerable: false,
            configurable: true
        });
        return AtomWindowStyle;
    }(AtomStyle_1.AtomStyle));
    exports.AtomWindowStyle = AtomWindowStyle;
});
//# sourceMappingURL=AtomWindowStyle.js.map