(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('ngx-bootstrap/dropdown'), require('@wm/components/base'), require('@wm/components/navigation/menu'), require('@wm/core'), require('lodash-es')) :
    typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', 'ngx-bootstrap/dropdown', '@wm/components/base', '@wm/components/navigation/menu', '@wm/core', 'lodash-es'], factory) :
    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.containers = global.wm.components.containers || {}, global.wm.components.containers.panel = {}), global.ng.core, global.ng.common, global.dropdown, global.wm.components.base, global.wm.components.navigation.menu, global.wm.core, global._));
})(this, (function (exports, i0, i2, i1, i4, i3, core, lodashEs) { 'use strict';

    function _interopNamespaceDefault(e) {
        var n = Object.create(null);
        if (e) {
            Object.keys(e).forEach(function (k) {
                if (k !== 'default') {
                    var d = Object.getOwnPropertyDescriptor(e, k);
                    Object.defineProperty(n, k, d.get ? d : {
                        enumerable: true,
                        get: function () { return e[k]; }
                    });
                }
            });
        }
        n.default = e;
        return Object.freeze(n);
    }

    var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
    var i2__namespace = /*#__PURE__*/_interopNamespaceDefault(i2);
    var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
    var i4__namespace = /*#__PURE__*/_interopNamespaceDefault(i4);
    var i3__namespace = /*#__PURE__*/_interopNamespaceDefault(i3);

    const registerProps = () => {
        i4.register('wm-panel', new Map([
            ['actions', {}],
            ['animation', i4.PROP_STRING],
            ['autoclose', i4.PROP_STRING],
            ['badgetype', { value: 'default', ...i4.PROP_STRING }],
            ['badgevalue', i4.PROP_STRING],
            ['class', i4.PROP_STRING],
            ['closable', i4.PROP_BOOLEAN],
            ['collapsible', i4.PROP_BOOLEAN],
            ['conditionalclass', i4.PROP_ANY],
            ['conditionalstyle', i4.PROP_ANY],
            ['content', i4.PROP_STRING],
            ['datafield', i4.PROP_STRING],
            ['enablefullscreen', i4.PROP_BOOLEAN],
            ['expanded', { value: true, ...i4.PROP_BOOLEAN }],
            ['fullscreen', i4.PROP_BOOLEAN],
            ['helptext', i4.PROP_STRING],
            ['iconclass', i4.PROP_STRING],
            ['iconheight', i4.PROP_STRING],
            ['iconmargin', i4.PROP_STRING],
            ['iconurl', i4.PROP_STRING],
            ['iconwidth', i4.PROP_STRING],
            ['itemaction', i4.PROP_STRING],
            ['itemchildren', i4.PROP_STRING],
            ['itemicon', i4.PROP_STRING],
            ['itemlabel', i4.PROP_STRING],
            ['itemlink', i4.PROP_STRING],
            ['name', i4.PROP_STRING],
            ['show', { value: true, ...i4.PROP_BOOLEAN }],
            ['subheading', i4.PROP_STRING],
            ['title', i4.PROP_STRING],
            ['userrole', i4.PROP_STRING],
            ['hint', i4.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__namespace.ɵɵelement(0, "i");
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵclassMapInterpolate1("app-icon panel-icon ", ctx_r1.iconclass, "");
    } }
    function PanelComponent_div_0_img_6_Template(rf, ctx) { if (rf & 1) {
        i0__namespace.ɵɵelement(0, "img", 22);
        i0__namespace.ɵɵpipe(1, "image");
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵproperty("src", i0__namespace.ɵɵpipeBind1(1, 2, ctx_r1.iconurl), i0__namespace.ɵɵsanitizeUrl)("ngStyle", i0__namespace.ɵɵ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__namespace.ɵɵelementStart(0, "span");
        i0__namespace.ɵɵtext(1);
        i0__namespace.ɵɵelementEnd();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵclassMapInterpolate1("app-badge label label-", ctx_r1.badgetype, "");
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵtextInterpolate(ctx_r1.badgevalue);
    } }
    function PanelComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
        i0__namespace.ɵɵelement(0, "div", 23);
    } }
    function PanelComponent_div_0_button_13_Template(rf, ctx) { if (rf & 1) {
        const _r3 = i0__namespace.ɵɵgetCurrentView();
        i0__namespace.ɵɵelementStart(0, "button", 24);
        i0__namespace.ɵɵlistener("click", function PanelComponent_div_0_button_13_Template_button_click_0_listener() { i0__namespace.ɵɵrestoreView(_r3); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.toggleHelp()); });
        i0__namespace.ɵɵelement(1, "i", 25);
        i0__namespace.ɵɵelementEnd();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵproperty("title", ctx_r1.appLocale.LABEL_HELP);
    } }
    function PanelComponent_div_0_button_14_Template(rf, ctx) { if (rf & 1) {
        const _r4 = i0__namespace.ɵɵgetCurrentView();
        i0__namespace.ɵɵelementStart(0, "button", 26);
        i0__namespace.ɵɵlistener("click", function PanelComponent_div_0_button_14_Template_button_click_0_listener($event) { i0__namespace.ɵɵrestoreView(_r4); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.toggle($event)); });
        i0__namespace.ɵɵelement(1, "i", 27);
        i0__namespace.ɵɵelementEnd();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵproperty("title", ctx_r1.expandCollapseTitle);
        i0__namespace.ɵɵattribute("aria-expanded", !!ctx_r1.expanded);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngClass", ctx_r1.expanded ? "wi-minus" : "wi-plus");
    } }
    function PanelComponent_div_0_button_15_Template(rf, ctx) { if (rf & 1) {
        const _r5 = i0__namespace.ɵɵgetCurrentView();
        i0__namespace.ɵɵelementStart(0, "button", 28);
        i0__namespace.ɵɵlistener("click", function PanelComponent_div_0_button_15_Template_button_click_0_listener($event) { i0__namespace.ɵɵrestoreView(_r5); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.toggleFullScreen($event)); });
        i0__namespace.ɵɵelement(1, "i", 27);
        i0__namespace.ɵɵelementEnd();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵproperty("title", ctx_r1.fullScreenTitle);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵ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__namespace.ɵɵgetCurrentView();
        i0__namespace.ɵɵelementStart(0, "button", 29);
        i0__namespace.ɵɵlistener("click", function PanelComponent_div_0_button_16_Template_button_click_0_listener($event) { i0__namespace.ɵɵrestoreView(_r6); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.close($event)); });
        i0__namespace.ɵɵelement(1, "i", 30);
        i0__namespace.ɵɵelementEnd();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext(2);
        i0__namespace.ɵɵpropertyInterpolate("title", ctx_r1.appLocale.LABEL_CLOSE);
    } }
    function PanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
        const _r1 = i0__namespace.ɵɵgetCurrentView();
        i0__namespace.ɵɵelementStart(0, "div", null, 2)(2, "div", 10)(3, "a", 11);
        i0__namespace.ɵɵlistener("click", function PanelComponent_div_0_Template_a_click_3_listener($event) { i0__namespace.ɵɵrestoreView(_r1); const ctx_r1 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r1.toggle($event)); });
        i0__namespace.ɵɵelementStart(4, "div", 12);
        i0__namespace.ɵɵtemplate(5, PanelComponent_div_0_i_5_Template, 1, 3, "i", 3)(6, PanelComponent_div_0_img_6_Template, 2, 8, "img", 13);
        i0__namespace.ɵɵelementEnd();
        i0__namespace.ɵɵelementStart(7, "div", 12);
        i0__namespace.ɵɵelement(8, "div", 14)(9, "div", 15);
        i0__namespace.ɵɵelementEnd()();
        i0__namespace.ɵɵelementStart(10, "div", 16);
        i0__namespace.ɵɵ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__namespace.ɵɵelementEnd()()();
    } if (rf & 2) {
        const ctx_r1 = i0__namespace.ɵɵnextContext();
        i0__namespace.ɵɵclassMapInterpolate1("panel-heading ", ctx_r1.helpClass, "");
        i0__namespace.ɵɵadvance(3);
        i0__namespace.ɵɵattribute("aria-expanded", !!ctx_r1.expanded);
        i0__namespace.ɵɵadvance(2);
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.iconclass && !ctx_r1.iconurl);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.iconurl);
        i0__namespace.ɵɵadvance(2);
        i0__namespace.ɵɵproperty("innerHTML", ctx_r1.title, i0__namespace.ɵɵsanitizeHtml)("title", ctx_r1.title);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("innerHTML", ctx_r1.subheading, i0__namespace.ɵɵsanitizeHtml);
        i0__namespace.ɵɵadvance(2);
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.badgevalue);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.actions);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.helptext);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.collapsible);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.enablefullscreen);
        i0__namespace.ɵɵadvance();
        i0__namespace.ɵɵproperty("ngIf", ctx_r1.closable);
    } }
    const DEFAULT_CLS = 'app-panel panel';
    const WIDGET_CONFIG = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };
    class PanelComponent extends i3.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 = core.noop;
            this.expanded = true;
            this.helpClass = '';
            this.helptext = '';
            i4.styler(this.nativeElement, this, i4.APPLY_STYLES_TYPE.SHELL);
            this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;
            this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;
            core.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;
                core.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';
            core.toggleClass(this.nativeElement, 'show-help', !!this.helpClass);
            core.$appDigest();
        }
        // On action item click
        menuActionItemClick($event, $item) {
            this.selectedAction = lodashEs.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 || '';
            }
            core.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]');
            i4.styler(this.panelBody.nativeElement, this, i4.APPLY_STYLES_TYPE.INNER_SHELL);
        }
        static { this.ɵfac = function PanelComponent_Factory(t) { return new (t || PanelComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
        static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: PanelComponent, selectors: [["", "wmPanel", ""]], contentQueries: function PanelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
                i0__namespace.ɵɵcontentQuery(dirIndex, i4.RedrawableDirective, 5);
            } if (rf & 2) {
                let _t;
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.reDrawableComponents = _t);
            } }, viewQuery: function PanelComponent_Query(rf, ctx) { if (rf & 1) {
                i0__namespace.ɵɵviewQuery(_c0, 5);
                i0__namespace.ɵɵviewQuery(_c1, 7);
                i0__namespace.ɵɵviewQuery(_c2, 7);
            } if (rf & 2) {
                let _t;
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.panelHeader = _t.first);
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.panelContent = _t.first);
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.panelBody = _t.first);
            } }, exportAs: ["wmPanel"], features: [i0__namespace.ɵɵProvidersFeature([
                    i4.provideAsWidgetRef(PanelComponent)
                ]), i0__namespace.ɵɵ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__namespace.ɵɵprojectionDef(_c4);
                i0__namespace.ɵɵtemplate(0, PanelComponent_div_0_Template, 17, 15, "div", 3);
                i0__namespace.ɵɵelementStart(1, "div", 4, 0)(3, "div", 5, 1);
                i0__namespace.ɵɵprojection(5);
                i0__namespace.ɵɵelementEnd();
                i0__namespace.ɵɵelementStart(6, "aside", 6);
                i0__namespace.ɵɵelement(7, "h5", 7)(8, "div", 8);
                i0__namespace.ɵɵpipe(9, "trustAs");
                i0__namespace.ɵɵelementEnd()();
                i0__namespace.ɵɵelementStart(10, "div", 9);
                i0__namespace.ɵɵprojection(11, 1);
                i0__namespace.ɵɵelementEnd();
            } if (rf & 2) {
                i0__namespace.ɵɵproperty("ngIf", ctx.showHeader);
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("hidden", !ctx.expanded);
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c6, ctx.helpClass));
                i0__namespace.ɵɵadvance(3);
                i0__namespace.ɵɵproperty("ngClass", ctx.helpClass);
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("textContent", ctx.appLocale.LABEL_HELP);
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("innerHTML", i0__namespace.ɵɵpipeBind2(9, 7, ctx.helptext, "html"), i0__namespace.ɵɵsanitizeHtml);
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵproperty("hidden", ctx.hideFooter);
            } }, dependencies: [i1__namespace.BsDropdownDirective, i2__namespace.NgClass, i2__namespace.NgIf, i2__namespace.NgStyle, i3__namespace.MenuComponent, i4__namespace.TextContentDirective, i4__namespace.TrustAsPipe, i4__namespace.ImagePipe], encapsulation: 2 }); }
    }
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(PanelComponent, [{
            type: i0.Component,
            args: [{ selector: '[wmPanel]', providers: [
                        i4.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__namespace.Injector }, { type: undefined, decorators: [{
                    type: i0.Inject,
                    args: ['EXPLICIT_CONTEXT']
                }, {
                    type: i0.Optional
                }] }], { panelHeader: [{
                type: i0.ViewChild,
                args: ['panelHeading', { static: false }]
            }], panelContent: [{
                type: i0.ViewChild,
                args: ['panelContent', { static: true }]
            }], panelBody: [{
                type: i0.ViewChild,
                args: ['panelBody', { static: true }]
            }], reDrawableComponents: [{
                type: i0.ContentChildren,
                args: [i4.RedrawableDirective, { descendants: true }]
            }] }); })();
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵ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__namespace.ɵɵdefineNgModule({ type: PanelModule }); }
        static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [i1.BsDropdownModule,
                i2.CommonModule,
                i3.MenuModule,
                i4.WmComponentsModule] }); }
    }
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(PanelModule, [{
            type: i0.NgModule,
            args: [{
                    imports: [
                        i1.BsDropdownModule,
                        i2.CommonModule,
                        i3.MenuModule,
                        i4.WmComponentsModule
                    ],
                    declarations: [...components],
                    exports: [...components]
                }]
        }], null, null); })();
    (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(PanelModule, { declarations: [PanelComponent], imports: [i1.BsDropdownModule,
            i2.CommonModule,
            i3.MenuModule,
            i4.WmComponentsModule], exports: [PanelComponent] }); })();

    exports.PanelComponent = PanelComponent;
    exports.PanelModule = PanelModule;

}));
