/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { __decorate } from "tslib";
import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';
import { BaseComponent } from '../core/base/base-component';
import { SCAFFOLD_CONSTANTS } from './scaffold-constants';
const template = '<template><div class=\"forge-scaffold\" part=\"root\"><slot name=\"left\"></slot><div class=\"forge-scaffold__header\" part=\"header-container\"><slot name=\"header\"></slot></div><div class=\"forge-scaffold__body\" part=\"body-container\"><slot name=\"body-left\"></slot><slot name=\"body-header\"></slot><slot name=\"body\"></slot><slot name=\"body-footer\"></slot><slot name=\"body-right\"></slot></div><slot name=\"footer\"></slot><slot name=\"right\"></slot></div></template>';
const styles = '.forge-scaffold{height:100%;height:var(--forge-scaffold-height,100%);position:relative;position:var(--forge-scaffold-position,relative);overflow:hidden;overflow:var(--forge-scaffold-overflow,hidden);display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto}.forge-scaffold__header{grid-row:1;grid-column:2;min-width:0}.forge-scaffold__body{width:100%;width:var(--forge-scaffold-width,100%);position:relative;position:var(--forge-scaffold-body-position,relative);display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;grid-row:2;grid-column:2;overflow:hidden}.forge-scaffold__body ::slotted([slot=left]){overflow:auto;grid-column:1;grid-row:1/5}.forge-scaffold__body ::slotted([slot=right]){overflow:auto;grid-column:3;grid-row:1/5}.forge-scaffold__body ::slotted([slot=body-left]){overflow:auto;grid-column:1;grid-row:1/4}.forge-scaffold__body ::slotted([slot=body-right]){overflow:auto;grid-column:3;grid-row:1/4}.forge-scaffold__body ::slotted([slot=body-header]){grid-row:1;grid-column:2}.forge-scaffold__body ::slotted([slot=body]){overflow:auto;grid-row:2;grid-column:2}.forge-scaffold__body ::slotted([slot=body-footer]){grid-row:3;grid-column:2}.forge-scaffold ::slotted([slot=body-left]),.forge-scaffold ::slotted([slot=body-right]),.forge-scaffold ::slotted([slot=left]),.forge-scaffold ::slotted([slot=right]){overflow:auto}.forge-scaffold ::slotted([slot=body-left]){grid-column:1;grid-row:1/4}.forge-scaffold ::slotted([slot=body-right]){grid-column:3;grid-row:1/4}.forge-scaffold ::slotted([slot=footer]){grid-row:3;grid-column:2}.forge-scaffold ::slotted([slot=left]){grid-column:1;grid-row:1/5}.forge-scaffold ::slotted([slot=right]){grid-column:3;grid-row:1/5}:host{display:block;height:100%;width:100%}:host([hidden]){display:none}:host([viewport]){width:100vw;width:var(--forge-scaffold-width,100vw);height:100vh;height:var(--forge-scaffold-height,100vh);--forge-scaffold-height:100vh;--forge-scaffold-width:100vw}:host([viewport]) .forge-scaffold{height:100vh;height:var(--forge-scaffold-height,100vh);--forge-scaffold-height:100vh}:host([viewport]) .forge-scaffold__body{width:100vw;width:var(--forge-scaffold-width,100vw);--forge-scaffold-width:100vw}';
/**
 * The custom element class behind the `<forge-scaffold>` element.
 *
 * @tag forge-scaffold
 */
let ScaffoldComponent = class ScaffoldComponent extends BaseComponent {
    constructor() {
        super();
        attachShadowTemplate(this, template, styles);
    }
};
ScaffoldComponent = __decorate([
    CustomElement({
        name: SCAFFOLD_CONSTANTS.elementName
    })
], ScaffoldComponent);
export { ScaffoldComponent };
