/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Angular2 */
import * as ng from "@angular/core";
import { ScrollableContainerConfig } from "../page/page";
import { PageSection } from "../pageSection/pageSection";
/**
* @whatItDoes
*
* This component creates sections in the page.
* Each section can be expanded/collapsed to show its contents.
* It also supports for auto loading while scrolling: it loads only the last visible
* section header (from the bottom), where the scroll stops.
*
* By default, it reads all the sections inside and shows a quick jump menu in the right.
* Also, the load on scroll is disable.
*
* For more options, see PageSection component.
*
* @howToUse
*
* ### Inputs
* `PageSection[]` : **scrollSections** - List of PageSections to be used in the quick-jump menu. This overrides the list
* `boolean` : **hideMargin** - Hides the margin
* `boolean` : **loadOnScroll** - Loads a new section automatically when the user scrolls into it
*
* ### Example
* This component can be used by the following example:
*
* ```HTML
*
*
*
*
Some content for section 1
*
*
*
*
This content will only be displayed when the section is active or loaded
*
*
*
* ```
* @description
*
* ## PageSections Component
*
* ### Dependencies
*
* #### Directives
* * PageSectionModule : `cmf.core.controls`
* * ElementQuery : `cmf.core.controls`
*
* ### Exports
* * PageSectionModule : `cmf.core.controls`
*/
export declare class PageSections extends CoreComponent implements ng.AfterViewInit, ng.OnDestroy, ng.OnChanges, ng.AfterViewChecked {
private _element;
private _ngZone;
private spyScrollContainer;
/**
* Reference to the Spy element
*/
private _spyElement;
/**
* Reference to the content container
*/
private _contentElement;
/**
* Stores the element query
*/
private _elementQuery;
/**
* Scroll handler
*/
private scrollHandler;
/**
* Scroll container element
*/
private scrollContainer;
/**
* FLEX: ViewContainerRef of the base page where the injection will occur
*/
private _basePageViewContainerRef;
/**
* FLEX: Sections to be used instead of internal when injection occurs
*/
flexOverrideSections: PageSection[];
/**
* Sections to display
* If FLEX injected, use those,
* if not, use override if available,
* if not, use the sections projected into the component
*/
readonly sections: PageSection[];
/**
* Reference to the active section
*/
activeSection: PageSection;
/**
* Input boolean to show or hide margin of page. By default the margin is present.
*/
hideMargin: boolean;
/**
* Automatically loads the sections on scroll
*/
loadOnScroll: boolean;
/**
* Projected sections
*/
childrenSections: ng.QueryList;
/**
* Sections to be used instead of internal
*/
overrideSections: PageSection[];
/**
* Hide scrollspy (when pageSections less than 700px)
*/
hideScrollspy: boolean;
/**
* The defined height for the scroll spy
*/
scrollSpyHeight: string;
constructor(_element: ng.ElementRef, _ngZone: ng.NgZone, _viewContainerRef: ng.ViewContainerRef, spyScrollContainer: ScrollableContainerConfig);
private updateSections;
private subscribeScrollEvent;
private unsubcribeScrollEvent;
private applyCustomization;
/**
* On changes method
* @param changes
*/
ngOnChanges(changes: ng.SimpleChanges): void;
/**
* After content init
*/
ngAfterViewInit(): void;
/**
* On Destroy Angular handler
*/
ngOnDestroy(): void;
/**
* Auto scrolls the scroll spy if the expanded section is not visible there
* @param section The section that was expanded
*/
scrollToScrollSpy(section: PageSection): void;
/**
* Scrolls into a page section.
* @param section Section to scroll to
* @param event The click event
*/
scrollToView(section: PageSection, event?: Event): void;
/**
* Required for manual inspecting flex components
*/
ngAfterViewChecked(): void;
}
export declare class PageSectionsModule {
}