(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@wm/core'), require('lodash-es')) :
    typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@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.accordion = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core, global._));
})(this, (function (exports, i0, i2, i3, i1, 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 i3__namespace = /*#__PURE__*/_interopNamespaceDefault(i3);
    var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);

    const registerProps$1 = () => {
        i3.register('wm-accordion', new Map([
            ['class', i3.PROP_STRING],
            ['closeothers', { value: true, ...i3.PROP_BOOLEAN }],
            ['dataset', i3.PROP_ANY],
            ['defaultpaneindex', { value: 0, ...i3.PROP_NUMBER }],
            ['name', i3.PROP_STRING],
            ['nodatamessage', { value: 'No Data Found', ...i3.PROP_STRING }],
            ['show', { value: true, ...i3.PROP_BOOLEAN }],
            ['statehandler', { value: 'none', ...i3.PROP_STRING }],
            ['tabindex', { value: 0, ...i3.PROP_NUMBER }],
            ['type', i3.PROP_STRING]
        ]));
    };

    const registerProps = () => {
        i3.register('wm-accordionpane', new Map([
            ['active', i3.PROP_BOOLEAN], // internal property
            ['badgetype', { value: 'default', ...i3.PROP_STRING }],
            ['badgevalue', i3.PROP_STRING],
            ['class', i3.PROP_STRING],
            ['content', i3.PROP_STRING],
            ['dynamicPaneIndex', i3.PROP_NUMBER], // internal property
            ['iconclass', i3.PROP_STRING],
            ['isdefaultpane', i3.PROP_BOOLEAN],
            ['isdynamic', i3.PROP_STRING], // internal property
            ['name', i3.PROP_STRING],
            ['show', { value: true, ...i3.PROP_BOOLEAN }],
            ['smoothscroll', { value: false, ...i3.PROP_BOOLEAN }],
            ['subheading', i3.PROP_STRING],
            ['tabindex', { value: 0, ...i3.PROP_NUMBER }],
            ['title', { value: 'Title', ...i3.PROP_STRING }]
        ]));
    };

    const _c0 = ["wmAccordionPane", ""];
    const _c1 = ["*"];
    const _c2 = a0 => ({ active: a0 });
    const DEFAULT_CLS$1 = 'app-accordion-panel panel';
    const WIDGET_CONFIG$1 = { widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS$1 };
    class AccordionPaneComponent extends i3.StylableComponent {
        static { this.initializeProps = registerProps(); }
        constructor(inj, accordionRef, explicitContext) {
            super(inj, WIDGET_CONFIG$1, explicitContext);
            this.accordionRef = accordionRef;
            this.isActive = false;
            this.$lazyLoad = i1.noop;
            i3.styler(this.nativeElement, this, i3.APPLY_STYLES_TYPE.SHELL);
            // title property here serves the purpose of heading.
            // remove title property as attribute
            i1.removeAttr(this.nativeElement, 'title');
        }
        /**
         * handles the pane expand
         * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial
         * invoke redraw on the re-drawable children
         * invoke expand callback
         * notify parent about the change
         * @param {Event} evt
         */
        expand(evt) {
            if (this.isActive) {
                return;
            }
            this.isActive = true;
            this.$lazyLoad();
            this.redrawChildren();
            this.invokeEventCallback('expand', { $event: evt });
            this.notifyParent(true, evt);
        }
        /**
         * handles the pane collapse
         * invoke collapse callback
         * notify parent about the change
         * @param {Event} evt
         */
        collapse(evt) {
            if (!this.isActive) {
                return;
            }
            this.isActive = false;
            this.invokeEventCallback('collapse', { $event: evt });
            this.notifyParent(false, evt);
        }
        remove() {
            const paneIndex = this.accordionRef.getPaneIndexByRef(this);
            if (this.isActive && this.accordionRef.panes.length > 1) {
                this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();
            }
            const availablePanes = this.accordionRef.panes.toArray();
            availablePanes.splice(this.accordionRef.getPaneIndexByRef(this), 1);
            this.accordionRef.panes.reset([...availablePanes]);
            this.nativeElement.remove();
        }
        toggle(evt) {
            if (this.isActive) {
                this.collapse(evt);
            }
            else {
                this.expand(evt);
            }
        }
        // Todo - Vinay externalize
        redrawChildren() {
            setTimeout(() => {
                if (this.reDrawableComponents) {
                    this.reDrawableComponents.forEach(c => c.redraw());
                }
            }, 100);
        }
        notifyParent(isExpand, evt) {
            this.accordionRef.notifyChange(this, isExpand, evt);
        }
        onPropertyChange(key, nv, ov) {
            if (key === 'content') {
                if (this.isActive) {
                    setTimeout(() => this.$lazyLoad(), 100);
                }
            }
            else if (key === 'tabindex') {
                return;
            }
            else {
                super.onPropertyChange(key, nv, ov);
            }
        }
        ngAfterViewInit() {
            super.ngAfterViewInit();
            i3.styler(this.nativeElement.querySelector('.panel-body'), this, i3.APPLY_STYLES_TYPE.INNER_SHELL);
            if (this.isdynamic) {
                this.accordionRef.registerDynamicPane(this);
            }
        }
        static { this.ɵfac = function AccordionPaneComponent_Factory(t) { return new (t || AccordionPaneComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(AccordionDirective), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
        static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: AccordionPaneComponent, selectors: [["div", "wmAccordionPane", ""]], contentQueries: function AccordionPaneComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
                i0__namespace.ɵɵcontentQuery(dirIndex, i3.RedrawableDirective, 5);
            } if (rf & 2) {
                let _t;
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.reDrawableComponents = _t);
            } }, exportAs: ["wmAccordionPane"], features: [i0__namespace.ɵɵProvidersFeature([
                    i3.provideAsWidgetRef(AccordionPaneComponent)
                ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c1, decls: 16, vars: 21, consts: [[1, "panel-heading", "clearfix", 3, "click", "ngClass"], [1, "panel-title"], ["href", "javascript:void(0);", "role", "button", 1, "accordion-toggle", "clearfix", 3, "tabindex"], [1, "pull-left"], [3, "hidden"], [1, "heading", 3, "innerHTML"], [1, "description", 3, "innerHTML"], [1, "panel-actions", "pull-right"], [1, "app-icon", "panel-action", "wi", 3, "title"], [3, "ngClass"], [1, "panel-collapse", "collapse", 3, "ngClass"], ["partial-container-target", "", 1, "panel-body", 3, "wmSmoothscroll"]], template: function AccordionPaneComponent_Template(rf, ctx) { if (rf & 1) {
                i0__namespace.ɵɵprojectionDef();
                i0__namespace.ɵɵelementStart(0, "div", 0);
                i0__namespace.ɵɵlistener("click", function AccordionPaneComponent_Template_div_click_0_listener($event) { return ctx.toggle($event); });
                i0__namespace.ɵɵelementStart(1, "h3", 1)(2, "a", 2)(3, "div", 3);
                i0__namespace.ɵɵelement(4, "i", 4);
                i0__namespace.ɵɵelementEnd();
                i0__namespace.ɵɵelementStart(5, "div", 3);
                i0__namespace.ɵɵelement(6, "div", 5)(7, "div", 6);
                i0__namespace.ɵɵelementEnd();
                i0__namespace.ɵɵelementStart(8, "div", 7)(9, "span");
                i0__namespace.ɵɵtext(10);
                i0__namespace.ɵɵelementEnd();
                i0__namespace.ɵɵelementStart(11, "span", 8);
                i0__namespace.ɵɵelement(12, "i", 9);
                i0__namespace.ɵɵelementEnd()()()()();
                i0__namespace.ɵɵelementStart(13, "div", 10)(14, "div", 11);
                i0__namespace.ɵɵprojection(15);
                i0__namespace.ɵɵelementEnd()();
            } if (rf & 2) {
                i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(19, _c2, ctx.isActive));
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵproperty("tabindex", ctx.tabindex);
                i0__namespace.ɵɵattribute("aria-expanded", ctx.isActive);
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵclassMapInterpolate1("app-icon panel-icon ", ctx.iconclass, "");
                i0__namespace.ɵɵproperty("hidden", !ctx.iconclass);
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵproperty("innerHTML", ctx.title, i0__namespace.ɵɵsanitizeHtml);
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("innerHTML", ctx.subheading, i0__namespace.ɵɵsanitizeHtml);
                i0__namespace.ɵɵadvance(2);
                i0__namespace.ɵɵclassMapInterpolate1("label label-", ctx.badgetype, "");
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵtextInterpolate(ctx.badgevalue);
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵpropertyInterpolate2("title", "", ctx.appLocale.LABEL_COLLAPSE, "/", ctx.appLocale.LABEL_EXPAND, "");
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("ngClass", ctx.isActive ? "wi-minus" : "wi-plus");
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("ngClass", ctx.isActive ? "collapse in" : "collapse");
                i0__namespace.ɵɵadvance();
                i0__namespace.ɵɵproperty("wmSmoothscroll", ctx.smoothscroll);
            } }, dependencies: [i2__namespace.NgClass, i3__namespace.SmoothScrollDirective], encapsulation: 2 }); }
    }
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(AccordionPaneComponent, [{
            type: i0.Component,
            args: [{ selector: 'div[wmAccordionPane]', providers: [
                        i3.provideAsWidgetRef(AccordionPaneComponent)
                    ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n    <h3 class=\"panel-title\">\n        <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n           class=\"accordion-toggle clearfix\"\n           href=\"javascript:void(0);\" role=\"button\">\n            <div class=\"pull-left\">\n                <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n            </div>\n            <div class=\"pull-left\">\n                <div class=\"heading\" [innerHTML]=\"title\"></div>\n                <div class=\"description\" [innerHTML]=\"subheading\"></div>\n            </div>\n            <div class=\"panel-actions pull-right\">\n                <span class=\"label label-{{badgetype}}\">{{ badgevalue }}</span>\n                <span class=\"app-icon panel-action wi\"\n                      title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n                <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n            </span>\n            </div>\n        </a>\n    </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n    <div class=\"panel-body\" [wmSmoothscroll]=\"smoothscroll\" partial-container-target>\n        <ng-content></ng-content>\n    </div>\n</div>\n" }]
        }], () => [{ type: i0__namespace.Injector }, { type: AccordionDirective }, { type: undefined, decorators: [{
                    type: i0.Inject,
                    args: ['EXPLICIT_CONTEXT']
                }, {
                    type: i0.Optional
                }] }], { reDrawableComponents: [{
                type: i0.ContentChildren,
                args: [i3.RedrawableDirective, { descendants: true }]
            }] }); })();
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(AccordionPaneComponent, { className: "AccordionPaneComponent", filePath: "accordion-pane/accordion-pane.component.ts", lineNumber: 27 }); })();

    const DEFAULT_CLS = 'app-accordion panel-group';
    const WIDGET_CONFIG = {
        widgetType: 'wm-accordion',
        hostClass: DEFAULT_CLS
    };
    class AccordionDirective extends i3.StylableComponent {
        static { this.initializeProps = registerProps$1(); }
        constructor(inj, statePersistence, dynamicComponentProvider, explicitContext) {
            let resolveFn = i1.noop;
            super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));
            this.promiseResolverFn = resolveFn;
            this.statePersistence = statePersistence;
            this.dynamicComponentProvider = dynamicComponentProvider;
            this.dynamicPanes = [];
            this.dynamicPaneIndex = 0;
            i3.styler(this.nativeElement, this, i3.APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
        }
        /**
         * AccordionPane children components invoke this method to communicate with the parent
         * if isExpand is true and when closeothers is true, all the other panes are collapsed
         * if the evt argument is defined on-change callback will be invoked.
         * updates the activePane index property
         * @param {AccordionPaneComponent} paneRef
         * @param {boolean} isExpand
         * @param {Event} evt
         */
        notifyChange(paneRef, isExpand, evt) {
            if (isExpand) {
                this.closePanesExcept(paneRef);
                const index = this.getPaneIndexByRef(paneRef);
                this.activePane = paneRef.getWidget();
                // if the event is defined invoke the change callback.
                // programmatic invocations of expand/collapse on accordion-pane will not trigger change event
                if (evt) {
                    this.invokeEventCallback('change', {
                        $event: evt,
                        newPaneIndex: index,
                        oldPaneIndex: this.activePaneIndex
                    });
                }
                this.activePaneIndex = index;
            }
            const mode = this.statePersistence.computeMode(this.statehandler);
            if (evt && mode && mode.toLowerCase() !== 'none') {
                const activePanes = [];
                this.panes.forEach(function (pane) {
                    if (pane.isActive) {
                        activePanes.push(pane.name);
                    }
                });
                if (activePanes.length) {
                    this.statePersistence.setWidgetState(this, activePanes);
                }
                else {
                    this.statePersistence.removeWidgetState(this);
                }
            }
        }
        /**
         * This method is used to register the dynamic panes.
         * After all panes are initialzed, update the querylist manually based on index.
         * @param paneRef - refrence of the tabpane
         */
        registerDynamicPane(paneRef) {
            this.dynamicPanes.push(paneRef);
            const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;
            if (isLastPane) {
                for (let i = 0; i < this.dynamicPanes.length; i++) {
                    const newPaneRef = lodashEs.find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);
                    const isDuplicatePane = lodashEs.find(this.panes.toArray(), newPaneRef);
                    if (!isDuplicatePane) {
                        this.panes.reset([...this.panes.toArray(), newPaneRef]);
                        if (newPaneRef.active) {
                            newPaneRef.expand();
                        }
                    }
                }
            }
        }
        /**
         * This method is to add the tabpane dynamically
         * @param tabpanes - list of tabpanes
         */
        addPane(tabpanes) {
            if (!lodashEs.isArray(tabpanes)) {
                tabpanes = [tabpanes];
            }
            const paneNamesList = [];
            lodashEs.forEach(tabpanes, (pane, index) => {
                const isPaneAlreadyCreated = lodashEs.find(this.panes.toArray(), { name: pane.name });
                const isPaneNameExist = lodashEs.indexOf(paneNamesList, pane.name);
                // If user tries to add tabpane with the same name which is already exists then do not create the pane
                if (isPaneAlreadyCreated || isPaneNameExist > 0) {
                    console.warn(`The tab pane with name ${pane.name} already exists`);
                    return;
                }
                let paramMarkup = '';
                let propsTmpl = '';
                this.dynamicPaneIndex++;
                const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;
                paneNamesList.push(name);
                const partialParams = lodashEs.get(pane, 'params');
                lodashEs.forEach(pane, (value, key) => {
                    if (key !== 'params') {
                        propsTmpl = `${propsTmpl} ${key}="${value}"`;
                    }
                });
                lodashEs.forEach(partialParams, (value, key) => {
                    paramMarkup = `${paramMarkup} <wm-param name="${key}" value="${value}"></wm-param>`;
                });
                const markup = `<wm-accordionpane dynamicPaneIndex="${this.dynamicPaneIndex - 1}" isdynamic="true" name="${name}" ${propsTmpl}>
                            ${paramMarkup}
                        </wm-accordionpane>`;
                if (!this._dynamicContext) {
                    this._dynamicContext = Object.create(this.viewParent);
                    this._dynamicContext[this.getAttr('wmAccordian')] = this;
                }
                this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, { inj: this.inj });
            });
            return paneNamesList;
        }
        /**
         * This method is to remove the tabpane
         * @param paneName - name of the pane
         */
        removePane(paneName) {
            const paneRef = this.getPaneRefByName(paneName);
            if (paneRef) {
                paneRef.remove();
            }
        }
        isValidPaneIndex(index) {
            return (index >= 0 && index < this.panes.length);
        }
        getPaneRefByName(name) {
            return lodashEs.find(this.panes.toArray(), { name: name });
        }
        getPaneIndexByRef(paneRef) {
            return this.panes.toArray().indexOf(paneRef);
        }
        getPaneRefByIndex(index) {
            return this.panes.toArray()[index];
        }
        // Except the pane provided close all other panes
        closePanesExcept(paneRef) {
            if (lodashEs.isNumber(paneRef)) {
                paneRef = this.getPaneRefByIndex(paneRef);
            }
            if (this.closeothers) {
                this.panes.forEach(pane => {
                    if (pane !== paneRef) {
                        pane.collapse();
                    }
                });
            }
        }
        expandPane(index) {
            this.closePanesExcept(index);
            this.panes.toArray()[index].expand();
        }
        onDataChange(newVal) {
            this.fieldDefs = i3.createArrayFrom(newVal);
        }
        onPropertyChange(key, nv, ov) {
            if (key === 'defaultpaneindex') {
                this.defaultpaneindex = nv;
            }
            else if (key === 'dataset') {
                this.onDataChange(nv);
            }
            else if (key === 'statehandler') {
                const widgetState = this.statePersistence.getWidgetState(this);
                let paneToSelect = [];
                if (nv !== 'none' && lodashEs.isArray(widgetState)) {
                    widgetState.forEach(paneName => {
                        paneToSelect = this.panes.filter(function (pane) {
                            return paneName === pane.name;
                        });
                        if (!paneToSelect.length) {
                            console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');
                        }
                        else {
                            this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));
                        }
                    });
                }
                else {
                    if (this.isValidPaneIndex(this.defaultpaneindex)) {
                        this.expandPane(this.defaultpaneindex);
                    }
                }
            }
            else if (key === 'tabindex') {
                return;
            }
            else {
                super.onPropertyChange(key, nv, ov);
            }
        }
        ngAfterContentInit() {
            super.ngAfterContentInit();
            this.promiseResolverFn();
            this.panes.changes.subscribe(slides => {
                if (this.panes.length) {
                    this.expandPane(this.defaultpaneindex);
                }
            });
        }
        static { this.ɵfac = function AccordionDirective_Factory(t) { return new (t || AccordionDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.StatePersistence), i0__namespace.ɵɵdirectiveInject(i1__namespace.DynamicComponentRefProvider), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
        static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: AccordionDirective, selectors: [["div", "wmAccordion", ""]], contentQueries: function AccordionDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
                i0__namespace.ɵɵcontentQuery(dirIndex, AccordionPaneComponent, 4);
            } if (rf & 2) {
                let _t;
                i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.panes = _t);
            } }, exportAs: ["wmAccordion"], features: [i0__namespace.ɵɵProvidersFeature([
                    i3.provideAsWidgetRef(AccordionDirective)
                ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
    }
    (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(AccordionDirective, [{
            type: i0.Directive,
            args: [{
                    selector: 'div[wmAccordion]',
                    exportAs: 'wmAccordion',
                    providers: [
                        i3.provideAsWidgetRef(AccordionDirective)
                    ]
                }]
        }], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.StatePersistence }, { type: i1__namespace.DynamicComponentRefProvider }, { type: undefined, decorators: [{
                    type: i0.Inject,
                    args: ['EXPLICIT_CONTEXT']
                }, {
                    type: i0.Optional
                }] }], { panes: [{
                type: i0.ContentChildren,
                args: [AccordionPaneComponent]
            }] }); })();

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

    exports.AccordionDirective = AccordionDirective;
    exports.AccordionModule = AccordionModule;
    exports.AccordionPaneComponent = AccordionPaneComponent;

}));
