UNPKG

materialize-angular

Version:
180 lines 14.3 kB
/** * @fileoverview added by tsickle * Generated from: app/completed-components/glossary/glossary.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Workylab. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://raw.githubusercontent.com/workylab/materialize-angular/master/LICENSE */ import { Component, ContentChildren, Input, QueryList } from '@angular/core'; import { config } from '../../config'; import { getOffseTop } from '../../utils/get-offset-top.util'; import { GlossaryItemComponent } from './glossary-item/glossary-item.component'; import { Router } from '@angular/router'; export class GlossaryComponent { /** * @param {?} router */ constructor(router) { this.router = router; this.className = GlossaryComponent.defaultProps.className; this.scrollSpy = GlossaryComponent.defaultProps.scrollSpy; this.topSpace = GlossaryComponent.defaultProps.topSpace; this.prefix = config.components.prefix; this.activeReferenceId = ''; this.onClickItem = this.onClickItem.bind(this); this.registerOptions = this.registerOptions.bind(this); this.update = this.update.bind(this); } /** * @return {?} */ ngAfterViewInit() { this.registerOptions(); setTimeout(this.update, 30); if (this.scrollSpy) { this.scrollSpy.onChangeEmitter.subscribe((/** * @param {?} referenceId * @return {?} */ (referenceId) => { this.activeReferenceId = referenceId; this.activeItemByReferenceId(referenceId); })); } } /** * @return {?} */ update() { this.activeReferenceId = this.getActiveReferenceId(); this.activeItemByReferenceId(this.activeReferenceId); this.scrollTo(this.activeReferenceId); } /** * @param {?} referenceId * @return {?} */ scrollTo(referenceId) { /** @type {?} */ const element = document.getElementById(referenceId); if (element) { /** @type {?} */ const elementOffsetTop = getOffseTop(element); /** @type {?} */ const scrollTop = elementOffsetTop - this.topSpace; setTimeout((/** * @return {?} */ () => window.scrollTo(0, scrollTop)), 150); } } /** * @return {?} */ getActiveReferenceId() { /** @type {?} */ const routerTree = this.router.parseUrl(this.router.url); if (routerTree && routerTree.fragment) { return routerTree.fragment; } return ''; } /** * @return {?} */ registerOptions() { this.items.forEach((/** * @param {?} item * @return {?} */ item => { item.onClickEmitter.subscribe(this.onClickItem); })); } /** * @param {?} referenceId * @return {?} */ onClickItem(referenceId) { this.activeReferenceId = referenceId; this.activeItemByReferenceId(referenceId); this.scrollTo(referenceId); /** @type {?} */ const routerTree = this.router.parseUrl(this.router.url); const { primary } = routerTree.root.children; /** @type {?} */ const urlWithoutParams = primary ? primary.segments.map((/** * @param {?} segment * @return {?} */ segment => segment.path)) : routerTree.root.segments.map((/** * @param {?} segment * @return {?} */ segment => segment.path)); this.router.navigate(urlWithoutParams, { fragment: referenceId }); } /** * @param {?} referenceId * @return {?} */ activeItemByReferenceId(referenceId) { this.items.forEach((/** * @param {?} item * @return {?} */ item => { item.isActive = item.referenceId === referenceId; })); } } GlossaryComponent.defaultProps = { className: '', scrollSpy: null, topSpace: 0 }; GlossaryComponent.decorators = [ { type: Component, args: [{ selector: `${config.components.prefix}-glossary`, template: "<ul [ngClass]=\"className\">\n <ng-content></ng-content>\n</ul>\n" }] } ]; /** @nocollapse */ GlossaryComponent.ctorParameters = () => [ { type: Router } ]; GlossaryComponent.propDecorators = { items: [{ type: ContentChildren, args: [GlossaryItemComponent,] }], className: [{ type: Input }], scrollSpy: [{ type: Input }], topSpace: [{ type: Input }] }; if (false) { /** @type {?} */ GlossaryComponent.defaultProps; /** @type {?} */ GlossaryComponent.prototype.items; /** @type {?} */ GlossaryComponent.prototype.className; /** @type {?} */ GlossaryComponent.prototype.scrollSpy; /** @type {?} */ GlossaryComponent.prototype.topSpace; /** @type {?} */ GlossaryComponent.prototype.prefix; /** @type {?} */ GlossaryComponent.prototype.activeReferenceId; /** * @type {?} * @private */ GlossaryComponent.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvc3NhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0ZXJpYWxpemUtYW5ndWxhci8iLCJzb3VyY2VzIjpbImFwcC9jb21wbGV0ZWQtY29tcG9uZW50cy9nbG9zc2FyeS9nbG9zc2FyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTXpDLE1BQU0sT0FBTyxpQkFBaUI7Ozs7SUFpQjVCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUnpCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ3JELGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ3JELGFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXJELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUVsQyxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFHNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1B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LElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUM7UUFDbkQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztBQTNGZSw4QkFBWSxHQUFrQjtJQUM1QyxTQUFTLEVBQUUsRUFBRTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsUUFBUSxFQUFFLENBQUM7Q0FDWixDQUFDOztZQVRILFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsR0FBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU8sV0FBVztnQkFDbEQsOEVBQXdDO2FBQ3pDOzs7O1lBTFEsTUFBTTs7O29CQWFaLGVBQWUsU0FBQyxxQkFBcUI7d0JBRXJDLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzs7O0lBVk4sK0JBSUU7O0lBRUYsa0NBQWdGOztJQUVoRixzQ0FBOEQ7O0lBQzlELHNDQUE4RDs7SUFDOUQscUNBQTREOztJQUU1RCxtQ0FBeUM7O0lBRXpDLDhDQUE4Qjs7Ozs7SUFFbEIsbUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFdvcmt5bGFiLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS93b3JreWxhYi9tYXRlcmlhbGl6ZS1hbmd1bGFyL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIElucHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBnZXRPZmZzZVRvcCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1vZmZzZXQtdG9wLnV0aWwnO1xuaW1wb3J0IHsgR2xvc3NhcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9nbG9zc2FyeS1pdGVtL2dsb3NzYXJ5LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEdsb3NzYXJ5TW9kZWwgfSBmcm9tICcuL2dsb3NzYXJ5Lm1vZGVsJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogYCR7IGNvbmZpZy5jb21wb25lbnRzLnByZWZpeCB9LWdsb3NzYXJ5YCxcbiAgdGVtcGxhdGVVcmw6ICcuL2dsb3NzYXJ5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHbG9zc2FyeUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEdsb3NzYXJ5TW9kZWwge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdFByb3BzOiBHbG9zc2FyeU1vZGVsID0ge1xuICAgIGNsYXNzTmFtZTogJycsXG4gICAgc2Nyb2xsU3B5OiBudWxsLFxuICAgIHRvcFNwYWNlOiAwXG4gIH07XG5cbiAgQENvbnRlbnRDaGlsZHJlbihHbG9zc2FyeUl0ZW1Db21wb25lbnQpIGl0ZW1zOiBRdWVyeUxpc3Q8R2xvc3NhcnlJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBjbGFzc05hbWUgPSBHbG9zc2FyeUNvbXBvbmVudC5kZWZhdWx0UHJvcHMuY2xhc3NOYW1lO1xuICBASW5wdXQoKSBzY3JvbGxTcHkgPSBHbG9zc2FyeUNvbXBvbmVudC5kZWZhdWx0UHJvcHMuc2Nyb2xsU3B5O1xuICBASW5wdXQoKSB0b3BTcGFjZSA9IEdsb3NzYXJ5Q29tcG9uZW50LmRlZmF1bHRQcm9wcy50b3BTcGFjZTtcblxuICBwdWJsaWMgcHJlZml4ID0gY29uZmlnLmNvbXBvbmVudHMucHJlZml4O1xuXG4gIHB1YmxpYyBhY3RpdmVSZWZlcmVuY2VJZCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLm9uQ2xpY2tJdGVtID0gdGhpcy5vbkNsaWNrSXRlbS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVnaXN0ZXJPcHRpb25zID0gdGhpcy5yZWdpc3Rlck9wdGlvbnMuYmluZCh0aGlzKTtcbiAgICB0aGlzLnVwZGF0ZSA9IHRoaXMudXBkYXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWdpc3Rlck9wdGlvbnMoKTtcblxuICAgIHNldFRpbWVvdXQodGhpcy51cGRhdGUsIDMwKTtcblxuICAgIGlmICh0aGlzLnNjcm9sbFNweSkge1xuICAgICAgdGhpcy5zY3JvbGxTcHkub25DaGFuZ2VFbWl0dGVyLnN1YnNjcmliZSgocmVmZXJlbmNlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2ZVJlZmVyZW5jZUlkID0gcmVmZXJlbmNlSWQ7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtQnlSZWZlcmVuY2VJZChyZWZlcmVuY2VJZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy5hY3RpdmVSZWZlcmVuY2VJZCA9IHRoaXMuZ2V0QWN0aXZlUmVmZXJlbmNlSWQoKTtcblxuICAgIHRoaXMuYWN0aXZlSXRlbUJ5UmVmZXJlbmNlSWQodGhpcy5hY3RpdmVSZWZlcmVuY2VJZCk7XG5cbiAgICB0aGlzLnNjcm9sbFRvKHRoaXMuYWN0aXZlUmVmZXJlbmNlSWQpO1xuICB9XG5cbiAgc2Nyb2xsVG8ocmVmZXJlbmNlSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2VJZCk7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudE9mZnNldFRvcCA9IGdldE9mZnNlVG9wKGVsZW1lbnQpO1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gZWxlbWVudE9mZnNldFRvcCAtIHRoaXMudG9wU3BhY2U7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LnNjcm9sbFRvKDAsIHNjcm9sbFRvcCksIDE1MCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWN0aXZlUmVmZXJlbmNlSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCByb3V0ZXJUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcblxuICAgIGlmIChyb3V0ZXJUcmVlICYmIHJvdXRlclRyZWUuZnJhZ21lbnQpIHtcbiAgICAgIHJldHVybiByb3V0ZXJUcmVlLmZyYWdtZW50O1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT3B0aW9ucygpIHtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLm9uQ2xpY2tFbWl0dGVyLnN1YnNjcmliZSh0aGlzLm9uQ2xpY2tJdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2xpY2tJdGVtKHJlZmVyZW5jZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFjdGl2ZVJlZmVyZW5jZUlkID0gcmVmZXJlbmNlSWQ7XG5cbiAgICB0aGlzLmFjdGl2ZUl0ZW1CeVJlZmVyZW5jZUlkKHJlZmVyZW5jZUlkKTtcbiAgICB0aGlzLnNjcm9sbFRvKHJlZmVyZW5jZUlkKTtcblxuICAgIGNvbnN0IHJvdXRlclRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuICAgIGNvbnN0IHsgcHJpbWFyeSB9ID0gcm91dGVyVHJlZS5yb290LmNoaWxkcmVuO1xuXG4gICAgY29uc3QgdXJsV2l0aG91dFBhcmFtcyA9IHByaW1hcnlcbiAgICAgID8gcHJpbWFyeS5zZWdtZW50cy5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpXG4gICAgICA6IHJvdXRlclRyZWUucm9vdC5zZWdtZW50cy5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUodXJsV2l0aG91dFBhcmFtcywgeyBmcmFnbWVudDogcmVmZXJlbmNlSWQgfSk7XG4gIH1cblxuICBhY3RpdmVJdGVtQnlSZWZlcmVuY2VJZChyZWZlcmVuY2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaXRlbS5pc0FjdGl2ZSA9IGl0ZW0ucmVmZXJlbmNlSWQgPT09IHJlZmVyZW5jZUlkO1xuICAgIH0pO1xuICB9XG59XG4iXX0=