UNPKG

materialize-angular

Version:
205 lines 15.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'; var GlossaryComponent = /** @class */ (function () { function GlossaryComponent(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 {?} */ GlossaryComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; this.registerOptions(); setTimeout(this.update, 30); if (this.scrollSpy) { this.scrollSpy.onChangeEmitter.subscribe((/** * @param {?} referenceId * @return {?} */ function (referenceId) { _this.activeReferenceId = referenceId; _this.activeItemByReferenceId(referenceId); })); } }; /** * @return {?} */ GlossaryComponent.prototype.update = /** * @return {?} */ function () { this.activeReferenceId = this.getActiveReferenceId(); this.activeItemByReferenceId(this.activeReferenceId); this.scrollTo(this.activeReferenceId); }; /** * @param {?} referenceId * @return {?} */ GlossaryComponent.prototype.scrollTo = /** * @param {?} referenceId * @return {?} */ function (referenceId) { /** @type {?} */ var element = document.getElementById(referenceId); if (element) { /** @type {?} */ var elementOffsetTop = getOffseTop(element); /** @type {?} */ var scrollTop_1 = elementOffsetTop - this.topSpace; setTimeout((/** * @return {?} */ function () { return window.scrollTo(0, scrollTop_1); }), 150); } }; /** * @return {?} */ GlossaryComponent.prototype.getActiveReferenceId = /** * @return {?} */ function () { /** @type {?} */ var routerTree = this.router.parseUrl(this.router.url); if (routerTree && routerTree.fragment) { return routerTree.fragment; } return ''; }; /** * @return {?} */ GlossaryComponent.prototype.registerOptions = /** * @return {?} */ function () { var _this = this; this.items.forEach((/** * @param {?} item * @return {?} */ function (item) { item.onClickEmitter.subscribe(_this.onClickItem); })); }; /** * @param {?} referenceId * @return {?} */ GlossaryComponent.prototype.onClickItem = /** * @param {?} referenceId * @return {?} */ function (referenceId) { this.activeReferenceId = referenceId; this.activeItemByReferenceId(referenceId); this.scrollTo(referenceId); /** @type {?} */ var routerTree = this.router.parseUrl(this.router.url); var primary = routerTree.root.children.primary; /** @type {?} */ var urlWithoutParams = primary ? primary.segments.map((/** * @param {?} segment * @return {?} */ function (segment) { return segment.path; })) : routerTree.root.segments.map((/** * @param {?} segment * @return {?} */ function (segment) { return segment.path; })); this.router.navigate(urlWithoutParams, { fragment: referenceId }); }; /** * @param {?} referenceId * @return {?} */ GlossaryComponent.prototype.activeItemByReferenceId = /** * @param {?} referenceId * @return {?} */ function (referenceId) { this.items.forEach((/** * @param {?} item * @return {?} */ function (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 = function () { return [ { type: Router } ]; }; GlossaryComponent.propDecorators = { items: [{ type: ContentChildren, args: [GlossaryItemComponent,] }], className: [{ type: Input }], scrollSpy: [{ type: Input }], topSpace: [{ type: Input }] }; return GlossaryComponent; }()); export { GlossaryComponent }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvc3NhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0ZXJpYWxpemUtYW5ndWxhci8iLCJzb3VyY2VzIjpbImFwcC9jb21wbGV0ZWQtY29tcG9uZW50cy9nbG9zc2FyeS9nbG9zc2FyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDO0lBcUJFLDJCQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJ6QixjQUFTLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUNyRCxjQUFTLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUVyRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFbEMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElB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O0lBRUQsbURBQXVCOzs7O0lBQXZCLFVBQXdCLFdBQW1CO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzs7OztRQUFDLFVBQUEsSUFBSTtZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDO1FBQ25ELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQztJQTNGZSw4QkFBWSxHQUFrQjtRQUM1QyxTQUFTLEVBQUUsRUFBRTtRQUNiLFNBQVMsRUFBRSxJQUFJO1FBQ2YsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFDOztnQkFUSCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxjQUFZO29CQUNsRCw4RUFBd0M7aUJBQ3pDOzs7O2dCQUxRLE1BQU07Ozt3QkFhWixlQUFlLFNBQUMscUJBQXFCOzRCQUVyQyxLQUFLOzRCQUNMLEtBQUs7MkJBQ0wsS0FBSzs7SUFrRlIsd0JBQUM7Q0FBQSxBQWpHRCxJQWlHQztTQTdGWSxpQkFBaUI7OztJQUM1QiwrQkFJRTs7SUFFRixrQ0FBZ0Y7O0lBRWhGLHNDQUE4RDs7SUFDOUQsc0NBQThEOztJQUM5RCxxQ0FBNEQ7O0lBRTVELG1DQUF5Qzs7SUFFekMsOENBQThCOzs7OztJQUVsQixtQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgV29ya3lsYWIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dvcmt5bGFiL21hdGVyaWFsaXplLWFuZ3VsYXIvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IGdldE9mZnNlVG9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LW9mZnNldC10b3AudXRpbCc7XG5pbXBvcnQgeyBHbG9zc2FyeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2dsb3NzYXJ5LWl0ZW0vZ2xvc3NhcnktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2xvc3NhcnlNb2RlbCB9IGZyb20gJy4vZ2xvc3NhcnkubW9kZWwnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBgJHsgY29uZmlnLmNvbXBvbmVudHMucHJlZml4IH0tZ2xvc3NhcnlgLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2xvc3NhcnkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdsb3NzYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgR2xvc3NhcnlNb2RlbCB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0UHJvcHM6IEdsb3NzYXJ5TW9kZWwgPSB7XG4gICAgY2xhc3NOYW1lOiAnJyxcbiAgICBzY3JvbGxTcHk6IG51bGwsXG4gICAgdG9wU3BhY2U6IDBcbiAgfTtcblxuICBAQ29udGVudENoaWxkcmVuKEdsb3NzYXJ5SXRlbUNvbXBvbmVudCkgaXRlbXM6IFF1ZXJ5TGlzdDxHbG9zc2FyeUl0ZW1Db21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9IEdsb3NzYXJ5Q29tcG9uZW50LmRlZmF1bHRQcm9wcy5jbGFzc05hbWU7XG4gIEBJbnB1dCgpIHNjcm9sbFNweSA9IEdsb3NzYXJ5Q29tcG9uZW50LmRlZmF1bHRQcm9wcy5zY3JvbGxTcHk7XG4gIEBJbnB1dCgpIHRvcFNwYWNlID0gR2xvc3NhcnlDb21wb25lbnQuZGVmYXVsdFByb3BzLnRvcFNwYWNlO1xuXG4gIHB1YmxpYyBwcmVmaXggPSBjb25maWcuY29tcG9uZW50cy5wcmVmaXg7XG5cbiAgcHVibGljIGFjdGl2ZVJlZmVyZW5jZUlkID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMub25DbGlja0l0ZW0gPSB0aGlzLm9uQ2xpY2tJdGVtLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZWdpc3Rlck9wdGlvbnMgPSB0aGlzLnJlZ2lzdGVyT3B0aW9ucy5iaW5kKHRoaXMpO1xuICAgIHRoaXMudXBkYXRlID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnJlZ2lzdGVyT3B0aW9ucygpO1xuXG4gICAgc2V0VGltZW91dCh0aGlzLnVwZGF0ZSwgMzApO1xuXG4gICAgaWYgKHRoaXMuc2Nyb2xsU3B5KSB7XG4gICAgICB0aGlzLnNjcm9sbFNweS5vbkNoYW5nZUVtaXR0ZXIuc3Vic2NyaWJlKChyZWZlcmVuY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlUmVmZXJlbmNlSWQgPSByZWZlcmVuY2VJZDtcblxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1CeVJlZmVyZW5jZUlkKHJlZmVyZW5jZUlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICB0aGlzLmFjdGl2ZVJlZmVyZW5jZUlkID0gdGhpcy5nZXRBY3RpdmVSZWZlcmVuY2VJZCgpO1xuXG4gICAgdGhpcy5hY3RpdmVJdGVtQnlSZWZlcmVuY2VJZCh0aGlzLmFjdGl2ZVJlZmVyZW5jZUlkKTtcblxuICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5hY3RpdmVSZWZlcmVuY2VJZCk7XG4gIH1cblxuICBzY3JvbGxUbyhyZWZlcmVuY2VJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlZmVyZW5jZUlkKTtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50T2Zmc2V0VG9wID0gZ2V0T2Zmc2VUb3AoZWxlbWVudCk7XG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSBlbGVtZW50T2Zmc2V0VG9wIC0gdGhpcy50b3BTcGFjZTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cuc2Nyb2xsVG8oMCwgc2Nyb2xsVG9wKSwgMTUwKTtcbiAgICB9XG4gIH1cblxuICBnZXRBY3RpdmVSZWZlcmVuY2VJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlclRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuXG4gICAgaWYgKHJvdXRlclRyZWUgJiYgcm91dGVyVHJlZS5mcmFnbWVudCkge1xuICAgICAgcmV0dXJuIHJvdXRlclRyZWUuZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmVnaXN0ZXJPcHRpb25zKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW0ub25DbGlja0VtaXR0ZXIuc3Vic2NyaWJlKHRoaXMub25DbGlja0l0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgb25DbGlja0l0ZW0ocmVmZXJlbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aXZlUmVmZXJlbmNlSWQgPSByZWZlcmVuY2VJZDtcblxuICAgIHRoaXMuYWN0aXZlSXRlbUJ5UmVmZXJlbmNlSWQocmVmZXJlbmNlSWQpO1xuICAgIHRoaXMuc2Nyb2xsVG8ocmVmZXJlbmNlSWQpO1xuXG4gICAgY29uc3Qgcm91dGVyVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XG4gICAgY29uc3QgeyBwcmltYXJ5IH0gPSByb3V0ZXJUcmVlLnJvb3QuY2hpbGRyZW47XG5cbiAgICBjb25zdCB1cmxXaXRob3V0UGFyYW1zID0gcHJpbWFyeVxuICAgICAgPyBwcmltYXJ5LnNlZ21lbnRzLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aClcbiAgICAgIDogcm91dGVyVHJlZS5yb290LnNlZ21lbnRzLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh1cmxXaXRob3V0UGFyYW1zLCB7IGZyYWdtZW50OiByZWZlcmVuY2VJZCB9KTtcbiAgfVxuXG4gIGFjdGl2ZUl0ZW1CeVJlZmVyZW5jZUlkKHJlZmVyZW5jZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLmlzQWN0aXZlID0gaXRlbS5yZWZlcmVuY2VJZCA9PT0gcmVmZXJlbmNlSWQ7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==