/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { __decorate } from "tslib";
import { attachShadowTemplate, CustomElement } from '@tylertech/forge-core';
import { BaseDrawerAdapter, BaseDrawerComponent, BaseDrawerFoundation } from '../base';
import { MINI_DRAWER_CONSTANTS } from './mini-drawer-constants';
const template = '<template><div class=\"forge-drawer__root\" part=\"root\"><div class=\"forge-drawer forge-drawer--mini\" part=\"container\"><slot name=\"header\"></slot><div class=\"forge-drawer__content\" part=\"content\"><slot></slot></div><slot name=\"footer\"></slot></div></div></template>';
const styles = '.forge-drawer{width:var(--forge-drawer-width,256px);background-color:var(--forge-theme-surface,#fff);border-color:var(--forge-theme-outline,#e0e0e0);height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:var(--forge-animation-duration-medium1, 250ms);transition-duration:var(--forge-animation-duration-medium1, 250ms);-webkit-transition-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));transition-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer__content{overflow-x:auto;-webkit-overflow-scrolling:\"touch\";display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;grid-row:2}.forge-drawer__content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer__content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer__content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer__content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer--left{border-right-width:var(--forge-border-thin,1px);border-right-style:solid}.forge-drawer--right{border-left-width:var(--forge-border-thin,1px);border-left-style:solid}.forge-drawer--right.forge-drawer--closing{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:var(--forge-animation-duration-short4, 200ms);transition-duration:var(--forge-animation-duration-short4, 200ms)}.forge-drawer--right.forge-drawer--closed{-webkit-transform:translateX(100%);transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer--closing{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;-webkit-transition-duration:var(--forge-animation-duration-short4, 200ms);transition-duration:var(--forge-animation-duration-short4, 200ms)}.forge-drawer--closed{-webkit-transform:translateX(-100%);transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer--no-transition{-webkit-transition:none!important;transition:none!important}.forge-drawer__root{z-index:var(--forge-z-index-surface,1);height:100%}.forge-drawer--mini{width:var(--forge-drawer-mini-width,56px);z-index:var(--forge-z-index-surface,1);-webkit-transition:width var(--forge-animation-duration-short4, 200ms) var(--forge-animation-easing-standard, cubic-bezier(.2, 0, 0, 1));transition:width var(--forge-animation-duration-short4, 200ms) var(--forge-animation-easing-standard, cubic-bezier(.2, 0, 0, 1))}.forge-drawer--mini .forge-drawer__content{overflow:hidden}.forge-drawer--closed{width:0}:host{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;overflow:hidden!important;width:var(--forge-drawer-mini-width,56px);overflow:visible!important;--forge-divider-margin:4px 0}:host([direction=right]){min-width:var(--forge-drawer-mini-width,56px);width:auto}:host([direction=right]) .forge-drawer__root{position:relative}:host(:not([open])){display:none}:host([hover]) .forge-drawer--right{position:absolute;right:0}:host([hover]) .forge-drawer:hover{width:var(--forge-drawer-width,256px)!important;-webkit-transition:width var(--forge-animation-duration-medium2, 300ms) var(--forge-animation-easing-standard, cubic-bezier(.2, 0, 0, 1)) .3s;transition:width var(--forge-animation-duration-medium2, 300ms) var(--forge-animation-easing-standard, cubic-bezier(.2, 0, 0, 1)) .3s}:host([hover]) .forge-drawer:hover .forge-drawer__content{overflow:auto;overflow:overlay}';
/**
 * The web component class behind the `<forge-mini-drawer>` custom element.
 *
 * @tag forge-mini-drawer
 */
let MiniDrawerComponent = class MiniDrawerComponent extends BaseDrawerComponent {
    constructor() {
        super();
        attachShadowTemplate(this, template, styles);
        this._foundation = new BaseDrawerFoundation(new BaseDrawerAdapter(this));
    }
};
MiniDrawerComponent = __decorate([
    CustomElement({
        name: MINI_DRAWER_CONSTANTS.elementName
    })
], MiniDrawerComponent);
export { MiniDrawerComponent };
