materialize-angular
Version:
Material UI Angular library
205 lines • 15.3 kB
JavaScript
/**
* @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==