import * as i0 from '@angular/core';
import { Component, Inject, Optional, ViewChild, ContentChildren, NgModule } from '@angular/core';
import * as i2 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i1 from 'ngx-bootstrap/dropdown';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import * as i4 from '@wm/components/base';
import { PROP_STRING, PROP_BOOLEAN, PROP_ANY, register, APPLY_STYLES_TYPE, styler, RedrawableDirective, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
import * as i3 from '@wm/components/navigation/menu';
import { MenuAdapterComponent, MenuModule } from '@wm/components/navigation/menu';
import { noop, removeAttr, toggleClass, $appDigest, setCSS } from '@wm/core';
import { omit } from 'lodash-es';

const registerProps = () => {
    register('wm-panel', new Map([
        ['actions', {}],
        ['animation', PROP_STRING],
        ['autoclose', PROP_STRING],
        ['badgetype', { value: 'default', ...PROP_STRING }],
        ['badgevalue', PROP_STRING],
        ['class', PROP_STRING],
        ['closable', PROP_BOOLEAN],
        ['collapsible', PROP_BOOLEAN],
        ['conditionalclass', PROP_ANY],
        ['conditionalstyle', PROP_ANY],
        ['content', PROP_STRING],
        ['datafield', PROP_STRING],
        ['enablefullscreen', PROP_BOOLEAN],
        ['expanded', { value: true, ...PROP_BOOLEAN }],
        ['fullscreen', PROP_BOOLEAN],
        ['helptext', PROP_STRING],
        ['iconclass', PROP_STRING],
        ['iconheight', PROP_STRING],
        ['iconmargin', PROP_STRING],
        ['iconurl', PROP_STRING],
        ['iconwidth', PROP_STRING],
        ['itemaction', PROP_STRING],
        ['itemchildren', PROP_STRING],
        ['itemicon', PROP_STRING],
        ['itemlabel', PROP_STRING],
        ['itemlink', PROP_STRING],
        ['name', PROP_STRING],
        ['show', { value: true, ...PROP_BOOLEAN }],
        ['subheading', PROP_STRING],
        ['title', PROP_STRING],
        ['userrole', PROP_STRING],
        ['hint', PROP_STRING]
    ]));
};

const _c0 = ["panelHeading"];
const _c1 = ["panelContent"];
const _c2 = ["panelBody"];
const _c3 = ["wmPanel", ""];
const _c4 = ["*", [["", "wmPanelFooter", ""]]];
const _c5 = ["*", "[wmPanelFooter]"];
const _c6 = a0 => ["panel-body", a0];
const _c7 = (a0, a1, a2) => ({ width: a0, height: a1, margin: a2 });
function PanelComponent_div_0_i_5_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelement(0, "i");
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵclassMapInterpolate1("app-icon panel-icon ", ctx_r1.iconclass, "");
} }
function PanelComponent_div_0_img_6_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelement(0, "img", 22);
    i0.ɵɵpipe(1, "image");
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 2, ctx_r1.iconurl), i0.ɵɵsanitizeUrl)("ngStyle", i0.ɵɵpureFunction3(4, _c7, ctx_r1.iconwidth, ctx_r1.iconheight, ctx_r1.iconmargin));
} }
function PanelComponent_div_0_span_11_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "span");
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵclassMapInterpolate1("app-badge label label-", ctx_r1.badgetype, "");
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate(ctx_r1.badgevalue);
} }
function PanelComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelement(0, "div", 23);
} }
function PanelComponent_div_0_button_13_Template(rf, ctx) { if (rf & 1) {
    const _r3 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "button", 24);
    i0.ɵɵlistener("click", function PanelComponent_div_0_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleHelp()); });
    i0.ɵɵelement(1, "i", 25);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵproperty("title", ctx_r1.appLocale.LABEL_HELP);
} }
function PanelComponent_div_0_button_14_Template(rf, ctx) { if (rf & 1) {
    const _r4 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "button", 26);
    i0.ɵɵlistener("click", function PanelComponent_div_0_button_14_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggle($event)); });
    i0.ɵɵelement(1, "i", 27);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵproperty("title", ctx_r1.expandCollapseTitle);
    i0.ɵɵattribute("aria-expanded", !!ctx_r1.expanded);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngClass", ctx_r1.expanded ? "wi-minus" : "wi-plus");
} }
function PanelComponent_div_0_button_15_Template(rf, ctx) { if (rf & 1) {
    const _r5 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "button", 28);
    i0.ɵɵlistener("click", function PanelComponent_div_0_button_15_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleFullScreen($event)); });
    i0.ɵɵelement(1, "i", 27);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵproperty("title", ctx_r1.fullScreenTitle);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngClass", ctx_r1.fullscreen ? "wi-fullscreen-exit" : "wi-fullscreen");
} }
function PanelComponent_div_0_button_16_Template(rf, ctx) { if (rf & 1) {
    const _r6 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "button", 29);
    i0.ɵɵlistener("click", function PanelComponent_div_0_button_16_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.close($event)); });
    i0.ɵɵelement(1, "i", 30);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext(2);
    i0.ɵɵpropertyInterpolate("title", ctx_r1.appLocale.LABEL_CLOSE);
} }
function PanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
    const _r1 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", null, 2)(2, "div", 10)(3, "a", 11);
    i0.ɵɵlistener("click", function PanelComponent_div_0_Template_a_click_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggle($event)); });
    i0.ɵɵelementStart(4, "div", 12);
    i0.ɵɵtemplate(5, PanelComponent_div_0_i_5_Template, 1, 3, "i", 3)(6, PanelComponent_div_0_img_6_Template, 2, 8, "img", 13);
    i0.ɵɵelementEnd();
    i0.ɵɵelementStart(7, "div", 12);
    i0.ɵɵelement(8, "div", 14)(9, "div", 15);
    i0.ɵɵelementEnd()();
    i0.ɵɵelementStart(10, "div", 16);
    i0.ɵɵtemplate(11, PanelComponent_div_0_span_11_Template, 2, 4, "span", 3)(12, PanelComponent_div_0_div_12_Template, 1, 0, "div", 17)(13, PanelComponent_div_0_button_13_Template, 2, 1, "button", 18)(14, PanelComponent_div_0_button_14_Template, 2, 3, "button", 19)(15, PanelComponent_div_0_button_15_Template, 2, 2, "button", 20)(16, PanelComponent_div_0_button_16_Template, 2, 1, "button", 21);
    i0.ɵɵelementEnd()()();
} if (rf & 2) {
    const ctx_r1 = i0.ɵɵnextContext();
    i0.ɵɵclassMapInterpolate1("panel-heading ", ctx_r1.helpClass, "");
    i0.ɵɵadvance(3);
    i0.ɵɵattribute("aria-expanded", !!ctx_r1.expanded);
    i0.ɵɵadvance(2);
    i0.ɵɵproperty("ngIf", ctx_r1.iconclass && !ctx_r1.iconurl);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.iconurl);
    i0.ɵɵadvance(2);
    i0.ɵɵproperty("innerHTML", ctx_r1.title, i0.ɵɵsanitizeHtml)("title", ctx_r1.title);
    i0.ɵɵadvance();
    i0.ɵɵproperty("innerHTML", ctx_r1.subheading, i0.ɵɵsanitizeHtml);
    i0.ɵɵadvance(2);
    i0.ɵɵproperty("ngIf", ctx_r1.badgevalue);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.actions);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.helptext);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.collapsible);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.enablefullscreen);
    i0.ɵɵadvance();
    i0.ɵɵproperty("ngIf", ctx_r1.closable);
} }
const DEFAULT_CLS = 'app-panel panel';
const WIDGET_CONFIG = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };
class PanelComponent extends MenuAdapterComponent {
    static { this.initializeProps = registerProps(); }
    // conditions to show the footer
    get hideFooter() {
        return !this.hasFooter || !this.expanded;
    }
    // conditions to show header
    get showHeader() {
        return this.iconurl || this.iconclass || this.collapsible || this.actions || this.title || this.subheading || this.enablefullscreen;
    }
    constructor(inj, explicitContext) {
        super(inj, WIDGET_CONFIG, explicitContext);
        this.$lazyLoad = noop;
        this.expanded = true;
        this.helpClass = '';
        this.helptext = '';
        styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);
        this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;
        this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;
        removeAttr(this.nativeElement, 'title');
    }
    // toggle the panel state between collapsed - expanded. invoke the respective callbacks
    toggle($event) {
        if (this.collapsible) {
            this.invokeEventCallback(this.expanded ? 'collapse' : 'expand', { $event });
            this.expanded = !this.expanded;
            if (this.expanded) {
                this.$lazyLoad();
                this.reDrawChildren();
            }
        }
    }
    expand($event) {
        if (!this.expanded) {
            this.toggle($event);
        }
    }
    collapse($event) {
        if (this.expanded) {
            this.toggle($event);
        }
    }
    // toggle the fullscreen state of the panel. invoke the respective callbacks
    toggleFullScreen($event) {
        if (this.enablefullscreen) {
            this.invokeEventCallback(this.fullscreen ? 'exitfullscreen' : 'fullscreen', { $event });
            this.fullscreen = !this.fullscreen;
            toggleClass(this.nativeElement, 'fullscreen', this.fullscreen);
            // Re-plot the widgets inside panel
            this.reDrawChildren();
        }
        this.computeDimensions();
    }
    // show/hide help
    toggleHelp() {
        this.helpClass = this.helpClass ? '' : 'show-help';
        toggleClass(this.nativeElement, 'show-help', !!this.helpClass);
        $appDigest();
    }
    // On action item click
    menuActionItemClick($event, $item) {
        this.selectedAction = omit($item, ['children', 'value']);
        this.invokeEventCallback('actionsclick', { $event, $item: this.selectedAction });
    }
    // hide the panel and invoke the respective event handler
    close($event) {
        this.getWidget().show = false;
        this.invokeEventCallback('close', { $event });
    }
    // calculation of dimensions when the panel the panel state changes from/to fullscreen
    computeDimensions() {
        const headerHeight = this.panelHeader.nativeElement.offsetHeight;
        const footer = this.nativeElement.querySelector('.panel-footer');
        const content = this.panelContent.nativeElement;
        const vHeight = window.innerHeight;
        let inlineHeight;
        if (this.fullscreen) {
            inlineHeight = this.hideFooter ? (vHeight - headerHeight) : vHeight - (footer.offsetHeight + headerHeight);
        }
        else {
            inlineHeight = this.height || '';
        }
        setCSS(content, 'height', inlineHeight);
    }
    // notify the redrawable components(charts, grid)
    reDrawChildren() {
        setTimeout(() => {
            if (this.reDrawableComponents) {
                this.reDrawableComponents.forEach(c => c.redraw());
            }
        }, 100);
    }
    onPropertyChange(key, nv, ov) {
        if (key === 'expanded') {
            this.expanded = nv;
        }
        else if (key === 'content') {
            setTimeout(() => {
                if (this.expanded || !this.collapsible) {
                    this.$lazyLoad();
                }
            }, 20);
        }
        else {
            super.onPropertyChange(key, nv, ov);
        }
    }
    ngAfterContentInit() {
        super.ngAfterContentInit();
        this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');
        styler(this.panelBody.nativeElement, this, APPLY_STYLES_TYPE.INNER_SHELL);
    }
    static { this.ɵfac = function PanelComponent_Factory(t) { return new (t || PanelComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
    static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelComponent, selectors: [["", "wmPanel", ""]], contentQueries: function PanelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
            i0.ɵɵcontentQuery(dirIndex, RedrawableDirective, 5);
        } if (rf & 2) {
            let _t;
            i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reDrawableComponents = _t);
        } }, viewQuery: function PanelComponent_Query(rf, ctx) { if (rf & 1) {
            i0.ɵɵviewQuery(_c0, 5);
            i0.ɵɵviewQuery(_c1, 7);
            i0.ɵɵviewQuery(_c2, 7);
        } if (rf & 2) {
            let _t;
            i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panelHeader = _t.first);
            i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panelContent = _t.first);
            i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panelBody = _t.first);
        } }, exportAs: ["wmPanel"], features: [i0.ɵɵProvidersFeature([
                provideAsWidgetRef(PanelComponent)
            ]), i0.ɵɵInheritDefinitionFeature], attrs: _c3, ngContentSelectors: _c5, decls: 12, vars: 12, consts: [["panelContent", ""], ["panelBody", ""], ["panelHeading", ""], [3, "class", 4, "ngIf"], [1, "panel-content", 3, "hidden"], ["partial-container-target", "", 3, "ngClass"], [1, "panel-help-message", 3, "ngClass"], [1, "panel-help-header", 3, "textContent"], [1, "panel-help-content", 3, "innerHTML"], [1, "app-panel-footer", "panel-footer", "clearfix", 3, "hidden"], [1, "panel-title"], ["href", "javascript:void(0)", 1, "panel-toggle", 3, "click"], [1, "pull-left"], ["data-identifier", "img", "title", "iconurl", "alt", "Panel icon", "class", "panel-image-icon", 3, "src", "ngStyle", 4, "ngIf"], [1, "heading", 3, "innerHTML", "title"], [1, "description", 3, "innerHTML"], [1, "panel-actions"], ["wmMenu", "", "aria-label", "dropdown", "dropdown", "", "type", "anchor", "class", "panel-action", "dataset.bind", "actions", "caption", "", "menuposition", "down,left", "iconclass", "wi wi-more-vert", "autoclose.bind", "autoclose", "datafield.bind", "datafield", "select.event", "menuActionItemClick($event,$item)", 4, "ngIf"], ["type", "button", "aria-label", "Help", "class", "app-icon panel-action wi", 3, "title", "click", 4, "ngIf"], ["type", "button", "aria-label", "Collapse/Expand", "class", "app-icon wi panel-action", 3, "title", "click", 4, "ngIf"], ["type", "button", "aria-label", "Fullscreen/Exit", "class", "app-icon panel-action wi", 3, "title", "click", 4, "ngIf"], ["type", "button", "aria-label", "Close button", "class", "app-icon panel-action", 3, "title", "click", 4, "ngIf"], ["data-identifier", "img", "title", "iconurl", "alt", "Panel icon", 1, "panel-image-icon", 3, "src", "ngStyle"], ["wmMenu", "", "aria-label", "dropdown", "dropdown", "", "type", "anchor", "dataset.bind", "actions", "caption", "", "menuposition", "down,left", "iconclass", "wi wi-more-vert", "autoclose.bind", "autoclose", "datafield.bind", "datafield", "select.event", "menuActionItemClick($event,$item)", 1, "panel-action"], ["type", "button", "aria-label", "Help", 1, "app-icon", "panel-action", "wi", 3, "click", "title"], [1, "wi-question"], ["type", "button", "aria-label", "Collapse/Expand", 1, "app-icon", "wi", "panel-action", 3, "click", "title"], [3, "ngClass"], ["type", "button", "aria-label", "Fullscreen/Exit", 1, "app-icon", "panel-action", "wi", 3, "click", "title"], ["type", "button", "aria-label", "Close button", 1, "app-icon", "panel-action", 3, "click", "title"], [1, "wi", "wi-close"]], template: function PanelComponent_Template(rf, ctx) { if (rf & 1) {
            i0.ɵɵprojectionDef(_c4);
            i0.ɵɵtemplate(0, PanelComponent_div_0_Template, 17, 15, "div", 3);
            i0.ɵɵelementStart(1, "div", 4, 0)(3, "div", 5, 1);
            i0.ɵɵprojection(5);
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(6, "aside", 6);
            i0.ɵɵelement(7, "h5", 7)(8, "div", 8);
            i0.ɵɵpipe(9, "trustAs");
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(10, "div", 9);
            i0.ɵɵprojection(11, 1);
            i0.ɵɵelementEnd();
        } if (rf & 2) {
            i0.ɵɵproperty("ngIf", ctx.showHeader);
            i0.ɵɵadvance();
            i0.ɵɵproperty("hidden", !ctx.expanded);
            i0.ɵɵadvance(2);
            i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c6, ctx.helpClass));
            i0.ɵɵadvance(3);
            i0.ɵɵproperty("ngClass", ctx.helpClass);
            i0.ɵɵadvance();
            i0.ɵɵproperty("textContent", ctx.appLocale.LABEL_HELP);
            i0.ɵɵadvance();
            i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(9, 7, ctx.helptext, "html"), i0.ɵɵsanitizeHtml);
            i0.ɵɵadvance(2);
            i0.ɵɵproperty("hidden", ctx.hideFooter);
        } }, dependencies: [i1.BsDropdownDirective, i2.NgClass, i2.NgIf, i2.NgStyle, i3.MenuComponent, i4.TextContentDirective, i4.TrustAsPipe, i4.ImagePipe], encapsulation: 2 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelComponent, [{
        type: Component,
        args: [{ selector: '[wmPanel]', providers: [
                    provideAsWidgetRef(PanelComponent)
                ], exportAs: 'wmPanel', template: "<div class=\"panel-heading {{helpClass}}\"  *ngIf=\"showHeader\" #panelHeading>\n    <div class=\"panel-title\">\n        <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n            <div class=\"pull-left\">\n                <i class=\"app-icon panel-icon {{iconclass}}\" *ngIf=\"iconclass && !iconurl\"></i>\n                <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n                     [src]=\"iconurl | image\" *ngIf=\"iconurl\"\n                     [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n            </div>\n            <div class=\"pull-left\">\n                <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n                <div class=\"description\" [innerHTML]=\"subheading\"></div>\n            </div>\n        </a>\n        <div class=\"panel-actions\">\n            <span *ngIf=\"badgevalue\"\n                  class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n            <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n                 *ngIf=\"actions\" caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n                 autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n            </div>\n            <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n                    *ngIf=\"helptext\" (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n            <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\" *ngIf=\"collapsible\"\n                    [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n                   [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n            <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\" *ngIf=\"enablefullscreen\"\n                    [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n                   [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n            <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n                    title=\"{{appLocale.LABEL_CLOSE}}\" *ngIf=\"closable\" (click)=\"close($event)\"><i\n                   class=\"wi wi-close\"></i></button>\n        </div>\n    </div>\n</div>\n<div class=\"panel-content\"  [hidden]=\"!expanded\" #panelContent>\n    <!-- Todo Bandhavya - implement smooth scroll -->\n    <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n        <ng-content></ng-content>\n    </div>\n    <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n        <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n        <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n    </aside>\n</div>\n<div class=\"app-panel-footer panel-footer clearfix\"  [hidden]=\"hideFooter\">\n    <ng-content select=\"[wmPanelFooter]\"></ng-content>\n</div>\n" }]
    }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
                type: Inject,
                args: ['EXPLICIT_CONTEXT']
            }, {
                type: Optional
            }] }], { panelHeader: [{
            type: ViewChild,
            args: ['panelHeading', { static: false }]
        }], panelContent: [{
            type: ViewChild,
            args: ['panelContent', { static: true }]
        }], panelBody: [{
            type: ViewChild,
            args: ['panelBody', { static: true }]
        }], reDrawableComponents: [{
            type: ContentChildren,
            args: [RedrawableDirective, { descendants: true }]
        }] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelComponent, { className: "PanelComponent", filePath: "panel.component.ts", lineNumber: 31 }); })();

const components = [
    PanelComponent
];
class PanelModule {
    static { this.ɵfac = function PanelModule_Factory(t) { return new (t || PanelModule)(); }; }
    static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PanelModule }); }
    static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BsDropdownModule,
            CommonModule,
            MenuModule,
            WmComponentsModule] }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelModule, [{
        type: NgModule,
        args: [{
                imports: [
                    BsDropdownModule,
                    CommonModule,
                    MenuModule,
                    WmComponentsModule
                ],
                declarations: [...components],
                exports: [...components]
            }]
    }], null, null); })();
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PanelModule, { declarations: [PanelComponent], imports: [BsDropdownModule,
        CommonModule,
        MenuModule,
        WmComponentsModule], exports: [PanelComponent] }); })();

/**
 * Generated bundle index. Do not edit.
 */

export { PanelComponent, PanelModule };
//# sourceMappingURL=index.mjs.map
