systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
46 lines • 6.51 kB
JavaScript
import { Component, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class SpyMenuComponent {
constructor() {
}
ngOnInit() {
}
doClick(item) {
if (!this.isItemDisabled(item)) {
document.querySelector('#' + item.id)
.scrollIntoView({
behavior: 'smooth',
block: 'start',
});
setTimeout(() => this.sectionSelected = item.id, 100);
}
}
isItemDisabled(item) {
if (typeof item.disabled === 'function') {
return item.disabled();
}
else {
return item.disabled;
}
}
isItemHidden(item) {
if (typeof item.hidden === 'function') {
return item.hidden();
}
else {
return item.hidden;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpyMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.9", type: SpyMenuComponent, selector: "systelab-spy-menu", inputs: { items: "items", sectionSelected: "sectionSelected" }, ngImport: i0, template: "<div class=\"spy-menu\">\n @for (item of items; track item.id) {\n <ng-container>\n <div *ngIf=\"!isItemHidden(item)\" (click)=\"doClick(item)\" class=\"spy-menu-item\"\n [ngClass]=\"{ 'spy-menu-item--selected': sectionSelected === item.id, 'spy-menu-item--disabled': isItemDisabled(item) }\">\n <span class=\"item-name\">{{ item.text }}</span>\n </div>\n </ng-container>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpyMenuComponent, decorators: [{
type: Component,
args: [{ selector: 'systelab-spy-menu', template: "<div class=\"spy-menu\">\n @for (item of items; track item.id) {\n <ng-container>\n <div *ngIf=\"!isItemHidden(item)\" (click)=\"doClick(item)\" class=\"spy-menu-item\"\n [ngClass]=\"{ 'spy-menu-item--selected': sectionSelected === item.id, 'spy-menu-item--disabled': isItemDisabled(item) }\">\n <span class=\"item-name\">{{ item.text }}</span>\n </div>\n </ng-container>\n }\n</div>\n" }]
}], ctorParameters: () => [], propDecorators: { items: [{
type: Input
}], sectionSelected: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B5LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL3NweS1tZW51L3NweS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9zcHktbWVudS9zcHktbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3pELE1BQU0sT0FBTyxnQkFBZ0I7SUFLNUI7SUFDQSxDQUFDO0lBRU0sUUFBUTtJQUNmLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDbkMsY0FBYyxDQUFDO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixLQUFLLEVBQUssT0FBTzthQUNqQixDQUFDLENBQUM7WUFDSixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3REO0lBQ0YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFpQjtRQUN0QyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkI7YUFBTTtZQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNyQjtJQUNGLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBaUI7UUFDcEMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JCO2FBQU07WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDbkI7SUFDRixDQUFDOzhHQXBDVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5SENQN0IsNGNBVUE7OzJGREhhLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDSSxtQkFBbUI7d0RBS2hCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B5TWVudUl0ZW0gfSBmcm9tICcuL3NweS1tZW51LWl0ZW0nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICAgICdzeXN0ZWxhYi1zcHktbWVudScsXG5cdHRlbXBsYXRlVXJsOiAnLi9zcHktbWVudS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3B5TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0QElucHV0KCkgcHVibGljIGl0ZW1zOiBBcnJheTxTcHlNZW51SXRlbT47XG5cdEBJbnB1dCgpIHB1YmxpYyBzZWN0aW9uU2VsZWN0ZWQ6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0fVxuXG5cdHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblx0fVxuXG5cdHB1YmxpYyBkb0NsaWNrKGl0ZW06IFNweU1lbnVJdGVtKSB7XG5cdFx0aWYgKCF0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSB7XG5cdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIGl0ZW0uaWQpXG5cdFx0XHRcdC5zY3JvbGxJbnRvVmlldyh7XG5cdFx0XHRcdFx0YmVoYXZpb3I6ICdzbW9vdGgnLFxuXHRcdFx0XHRcdGJsb2NrOiAgICAnc3RhcnQnLFxuXHRcdFx0XHR9KTtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZWN0aW9uU2VsZWN0ZWQgPSBpdGVtLmlkLCAxMDApO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBpc0l0ZW1EaXNhYmxlZChpdGVtOiBTcHlNZW51SXRlbSk6IGJvb2xlYW4ge1xuXHRcdGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cmV0dXJuIGl0ZW0uZGlzYWJsZWQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGl0ZW0uZGlzYWJsZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGlzSXRlbUhpZGRlbihpdGVtOiBTcHlNZW51SXRlbSk6IGJvb2xlYW4ge1xuXHRcdGlmICh0eXBlb2YgaXRlbS5oaWRkZW4gPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHJldHVybiBpdGVtLmhpZGRlbigpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gaXRlbS5oaWRkZW47XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3B5LW1lbnVcIj5cbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzSXRlbUhpZGRlbihpdGVtKVwiIChjbGljayk9XCJkb0NsaWNrKGl0ZW0pXCIgY2xhc3M9XCJzcHktbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc3B5LW1lbnUtaXRlbS0tc2VsZWN0ZWQnOiBzZWN0aW9uU2VsZWN0ZWQgPT09IGl0ZW0uaWQsICdzcHktbWVudS1pdGVtLS1kaXNhYmxlZCc6IGlzSXRlbURpc2FibGVkKGl0ZW0pIH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZVwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==